基于Vulkan三维渲染引擎的设计和实现
发布时间:2021-08-07 00:11
21世纪以来,计算机图形学得到迅猛发展,从固定管线时代演变到可编程管线时代。可编程管线给图形学带来了巨大的变化,它能不断提高图形的渲染画质,但同时也增加了图形程序开发的复杂度。图形程序开发涉及到很多底层技术的应用,但是对于很多开发者来说,只需关注应用层的相关技术,并不需要关注底层技术,因此就需要一个工具集来封装这些底层技术。三维渲染引擎封装跨平台、图像渲染、内存管理、资源管理等相关技术,提供给开发者简单易用的接口来开发图形程序,大大地提高了开发者的工作效率。本文通过对新型图形开发库Vulkan进行研究,分析Vulkan的工作流程和接口设计,同时对一些主流的三维渲染引擎架构和模块进行分析,设计和开发一套适合本引擎的架构。在引擎架构的基础上,集成了目前比较先进的渲染算法。本文设计的三维渲染引擎按照不同的功能划分为多个模块,主要有ECS模块、渲染模块、内存管理模块、场景管理模块和资源管理模块等,并对其一一进行设计和实现。本引擎使用了最新的工业标准Vulkan作为底层图形API,Vulkan作为新型的图形API优化了CPU上操作图形驱动的性能,并且容易支持多线程,对此本引擎使用了多线程模型,充...
【文章来源】:北京林业大学北京市 211工程院校 教育部直属院校
【文章页数】:71 页
【学位级别】:硕士
【部分图文】:
渲染管线
基于Vulkan三维渲染引擎的设计和实现6图中每个矩形框都是渲染管线需要执行的步骤,其中红色矩形框表示可编程管线,可编程是指开发者可以编写程序来控制这个阶段(李贝贝,2017),绿色矩形框表示固定管线,开发者不能够对其编程,只能够设置一些参数,下面对渲染管线中几个主要流程进行介绍。2.2.1顶点着色器渲染管线的第一部分为顶点着色器,这个阶段处理从应用程序发送过来的模型数据,模型数据可能包含顶点坐标,法向量,纹理坐标等信息。由于数据刚开始是位于不同的空间下,不能直接被渲染管线所使用,需要顶点着色器对数据进行相应的空间变换,变换之后才能够被后续的渲染流程所使用。空间变换具体分为三个步骤。(1)世界空间变换:最初所有的模型数据都位于各自模型空间下,为了能够统一处理,需要对数据执行空间变换,转化到统一的世界空间,把相对于模型空间的数据转变为相对于世界空间的数据。图2.2展示就是世界空间变换。图2.2世界空间变换Figure2.2Worldspacetransformation(2)视角空间变换:位于世界空间下的模型,想要渲染到屏幕上,就需要被摄像机所看见。摄像机最初也是位于世界空间下,它有一个位置和朝向,为了方便后续对模型进行投影和裁剪,需要对摄像机和模型进行一次空间转化,目的是将摄像机放置到原点的位置上,同时使得摄像机的朝向为负Z轴,其上边为Y轴,右边为X轴。本次转化称为视角空间变换,转化后的空间叫视角空间。图2.3展示的就是视角空间变换。图2.3视角空间变换Figure2.3Viewspacetransformation
基于Vulkan三维渲染引擎的设计和实现6图中每个矩形框都是渲染管线需要执行的步骤,其中红色矩形框表示可编程管线,可编程是指开发者可以编写程序来控制这个阶段(李贝贝,2017),绿色矩形框表示固定管线,开发者不能够对其编程,只能够设置一些参数,下面对渲染管线中几个主要流程进行介绍。2.2.1顶点着色器渲染管线的第一部分为顶点着色器,这个阶段处理从应用程序发送过来的模型数据,模型数据可能包含顶点坐标,法向量,纹理坐标等信息。由于数据刚开始是位于不同的空间下,不能直接被渲染管线所使用,需要顶点着色器对数据进行相应的空间变换,变换之后才能够被后续的渲染流程所使用。空间变换具体分为三个步骤。(1)世界空间变换:最初所有的模型数据都位于各自模型空间下,为了能够统一处理,需要对数据执行空间变换,转化到统一的世界空间,把相对于模型空间的数据转变为相对于世界空间的数据。图2.2展示就是世界空间变换。图2.2世界空间变换Figure2.2Worldspacetransformation(2)视角空间变换:位于世界空间下的模型,想要渲染到屏幕上,就需要被摄像机所看见。摄像机最初也是位于世界空间下,它有一个位置和朝向,为了方便后续对模型进行投影和裁剪,需要对摄像机和模型进行一次空间转化,目的是将摄像机放置到原点的位置上,同时使得摄像机的朝向为负Z轴,其上边为Y轴,右边为X轴。本次转化称为视角空间变换,转化后的空间叫视角空间。图2.3展示的就是视角空间变换。图2.3视角空间变换Figure2.3Viewspacetransformation
本文编号:3326758
【文章来源】:北京林业大学北京市 211工程院校 教育部直属院校
【文章页数】:71 页
【学位级别】:硕士
【部分图文】:
渲染管线
基于Vulkan三维渲染引擎的设计和实现6图中每个矩形框都是渲染管线需要执行的步骤,其中红色矩形框表示可编程管线,可编程是指开发者可以编写程序来控制这个阶段(李贝贝,2017),绿色矩形框表示固定管线,开发者不能够对其编程,只能够设置一些参数,下面对渲染管线中几个主要流程进行介绍。2.2.1顶点着色器渲染管线的第一部分为顶点着色器,这个阶段处理从应用程序发送过来的模型数据,模型数据可能包含顶点坐标,法向量,纹理坐标等信息。由于数据刚开始是位于不同的空间下,不能直接被渲染管线所使用,需要顶点着色器对数据进行相应的空间变换,变换之后才能够被后续的渲染流程所使用。空间变换具体分为三个步骤。(1)世界空间变换:最初所有的模型数据都位于各自模型空间下,为了能够统一处理,需要对数据执行空间变换,转化到统一的世界空间,把相对于模型空间的数据转变为相对于世界空间的数据。图2.2展示就是世界空间变换。图2.2世界空间变换Figure2.2Worldspacetransformation(2)视角空间变换:位于世界空间下的模型,想要渲染到屏幕上,就需要被摄像机所看见。摄像机最初也是位于世界空间下,它有一个位置和朝向,为了方便后续对模型进行投影和裁剪,需要对摄像机和模型进行一次空间转化,目的是将摄像机放置到原点的位置上,同时使得摄像机的朝向为负Z轴,其上边为Y轴,右边为X轴。本次转化称为视角空间变换,转化后的空间叫视角空间。图2.3展示的就是视角空间变换。图2.3视角空间变换Figure2.3Viewspacetransformation
基于Vulkan三维渲染引擎的设计和实现6图中每个矩形框都是渲染管线需要执行的步骤,其中红色矩形框表示可编程管线,可编程是指开发者可以编写程序来控制这个阶段(李贝贝,2017),绿色矩形框表示固定管线,开发者不能够对其编程,只能够设置一些参数,下面对渲染管线中几个主要流程进行介绍。2.2.1顶点着色器渲染管线的第一部分为顶点着色器,这个阶段处理从应用程序发送过来的模型数据,模型数据可能包含顶点坐标,法向量,纹理坐标等信息。由于数据刚开始是位于不同的空间下,不能直接被渲染管线所使用,需要顶点着色器对数据进行相应的空间变换,变换之后才能够被后续的渲染流程所使用。空间变换具体分为三个步骤。(1)世界空间变换:最初所有的模型数据都位于各自模型空间下,为了能够统一处理,需要对数据执行空间变换,转化到统一的世界空间,把相对于模型空间的数据转变为相对于世界空间的数据。图2.2展示就是世界空间变换。图2.2世界空间变换Figure2.2Worldspacetransformation(2)视角空间变换:位于世界空间下的模型,想要渲染到屏幕上,就需要被摄像机所看见。摄像机最初也是位于世界空间下,它有一个位置和朝向,为了方便后续对模型进行投影和裁剪,需要对摄像机和模型进行一次空间转化,目的是将摄像机放置到原点的位置上,同时使得摄像机的朝向为负Z轴,其上边为Y轴,右边为X轴。本次转化称为视角空间变换,转化后的空间叫视角空间。图2.3展示的就是视角空间变换。图2.3视角空间变换Figure2.3Viewspacetransformation
本文编号:3326758
本文链接:https://www.wllwen.com/kejilunwen/shengwushengchang/3326758.html
最近更新
教材专著