三维场景转化为一幅二维图像的过程.doc
《三维场景转化为一幅二维图像的过程.doc》由会员分享,可在线阅读,更多相关《三维场景转化为一幅二维图像的过程.doc(7页珍藏版)》请在三一文库上搜索。
1、三维场景转化为一幅二维图像的过程三维图形渲染管线就是将三维场景转化为一幅二维图像的过程。图像中物体所处位置及外形由其几何数据和摄像机的位置共同决定,物体外表是受到其材质属性、光源、纹理及着色模型所影响。管线过程由3个大的阶段组成:Application(应用程序阶段):运行在CPU上,能被开发者完全控制,该过程所做操作包括: 准备场景数据加载模型:Mesh、Material、Shader、Texture(硬盘 - 内存 - 显存)摄像机(位置、朝向、视锥体)光源(位置、类型等参数信息) 裁剪和剔除 :视锥裁剪、背面剔除、遮挡剔除 (Occlusion Culling) 计算模型视图矩阵 设置渲
2、染状态(RenderState)渲染管线内部维护着一些状态值。在我们调用渲染API函数进行绘制之前我们需要设置这些状态值。这些状态值指导GPU如何渲染我们传递到显存的模型和纹理数据。我们称这些状态值为“渲染状态(Render States) ”。渲染状态包括Shader、Texture、Material、Light内部定义的各种状态等最后,发起DrawCall调用Geometry(几何阶段):负责与每个渲染图元打交道,进行逐顶点、逐多边形的操作。其重要任务是把顶点坐标变换到带有深度的屏幕空间中,再交给光栅器进行处理。可进一步分割成:模型视图变换,顶点着色,曲面细分,几何着色,投影,裁剪及屏幕映
3、射模型变换:将模型从模型空间变换到世界空间视图变换:将各个模型从世界空间变换到眼空间(摄像机处于原点)通常会把这两个变换矩阵结合成modelview矩阵,并将这个过程称之为模型视图变换顶点着色器:主要功能是修改顶点属性。如:通过传入模型视图矩阵(MVP)进行顶点空间变换(位置属性)、逐顶点光照(颜色属性)、纹理坐标变换(uv属性)等顶点着色器的处理单元是顶点,也就是说,输入进来的每个顶点都会调用一次顶点着色器。顶点着色器只能对输入顶点的相关属性进行修改、创建和忽略,不可以创建或销毁任何顶点,而且无法得到顶点与顶点间的关系。输入一般是一个变换矩阵和一个相对坐标;输出为眼空间中的坐标及每个顶点所附
4、带的其他属性,如颜色、纹理坐标曲面细分着色器:用于细分图元,分为3个阶段。Control Shader,负责把控后续阶段的初始化操作,例如细化程度(可编程)处理Control阶段的输出,细化Patch数据(不可编程)Evaluation Shader的输入为Patch数据;输出数据为顶点着色器所应输出的数据,但是是批量的(可编程)几何着色器:输入是1个图元,输出是N个图元(N=0)通过Shader程序可以指定Geometry Shader对顶点信息进行增减。还有,因为实际增减的是图元顶点,所以对各种的线段、多边形、粒子等图元也可以进行增减。利用Geometry Shader的各种方法被创造出来
5、,因为可以自由的生成多边形,那么就可以在地面上生长出草的多边形,或者让3D角色生长出毛发等是最基本的使用方法。在游戏中,还可以把不需要做逻辑交互处理的例如火花等特效的表现,使用Geometry Shader来生成。注:Geometry Shader通常是在display driver中实现的,也就是说其实是由CPU负责计算,当重新返回GPU的VS时,对流水线的影响很大,所以Geometry Shader的实际效能并不高,甚至是非常低投影:分为透视投影与正交投影;在眼空间将模型从三维空间投影到二维平面(D3D投影平面为z=1.0,OpenGL为z=-1.0;为了便于理解,可将其定义为视景体近裁截
6、面)注:上图为眼空间,D3D为左手系,OpenGL为右手系投影完成后,会得到归一化的设备坐标(Normalized Device Coordinates,NDC),方便下一步进行硬件裁剪归一化x、y分量到-1.0, 1.0归一化z深度值(D3D:0.0, 1.0 OpenGL:-1.0, 1.0)注:近裁截面为最小深度、远裁截面为最大深度;裁剪:将那些不在摄像机视野内的顶点裁剪掉,并剔除某些三角图元面片屏幕映射:将每个图元的x、y坐标从NDC转换到屏幕空间注:D3D将屏幕左上角作为原点,x轴向右,y轴向下;OpenGL将屏幕左下角作为原点,x轴向右,y轴向上Rasterizer(光栅化):对上
7、个阶段得到的图元各顶点进行插值(z深度值、法线方向、纹理坐标、颜色等)来产生屏幕上的像素,并渲染出最终的图像。光栅化的任务主要是决定每个渲染图元中的哪些像素应该被绘制在屏幕上三角形设置:对三个顶点插值计算三角形边上的像素三角形遍历:扫描三角形边上的像素来插值计算整个三角形内的像素片元着色器:逐片元的进行着色计算(即逐像素光照)。该阶段可以完成很多重要的渲染技术 如:纹理采样逐像素、逐顶点光照差异性主要体现在对于非精细模型,在执行逐顶点光照时,由于点距较大,在进行颜色线性插值的过程中,无法精细平滑过渡,导致效果变差。另外逐像素光照可以在渲染时添加并不存在的表面细节。如通过bump贴图或norma
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 三维 场景 转化 二维 图像 过程
链接地址:https://www.31doc.com/p-3365977.html