游戏开发中,计算机图形学是必不可少的东西。许多人也是从接触图形开始而进入游戏行业的。3D管线导论这本书诠释了3D管线的细节。为大家解开了萦绕已久的迷团。
很多次偶然地看到 《3D pipeline tutorial》(3D管线导论)这本书的推荐。 今天就狠下心来搜索了一下。 下载了一个电子版来瞧瞧。
发现自己曾经百思不得其解的内容就全在里面。
这本书介绍了我们的图形应用程序场景中一些常用的方法。
如:对象遍历,对象移动,摄像机移动,可见对象查询,LOD等。
而本书的重头戏则在于,他详细地讲述了一个三角形和其纹理等信息,从输入到输出到屏幕所经历的过程。
先前我就一直在查找这方面的资料,要是自己当初就下了这本书。那多好哇。
简单列一下3D管线工作流程,这也是许多图形API 如D3D OPENGL大致的工作方式。
顶点处理阶段
普通变换:平移,缩放,旋转。
世界变换:从模型本地坐标系变到世界坐标系。
观察变换:从世界坐标系变到观察坐标系。
观察投影:从观察坐标系变换到投影空间。 投影是一个降维的过程。 也就是说,投影便是从3D到2D的过程。
少量的剔除:(Trivial Accept/Reject Culling)
背面剔除(也可以在稍后的屏幕空间中做)
光照
透视分割(Perspective Divide):转换到裁剪空间中。
裁剪(Clipping)
视口映射:变换到屏幕空间。
三角形构造阶段
背面裁剪(也可以在前面的观察空间中的投影变换之前做)。
Slope/Delta Calculations
扫描线转换:Scan-Line Conversion
渲染和光栅化阶段
着色(Shading)
纹理映射(Texturing)
雾化
ALPHA半透明测试
深度缓冲测试
反走样(可选)
显示
以上便是一个完整的3D管线必须具备的东西。。 至于各个处理阶段的顺序,在实际的实现方法上会存在一定的差异。
有兴趣的朋友可以一起来看这本书。 我也会在看完后,写出自己的感受,大家一起交流。