【翻(xue)译(xi)】3D Game Programming With DirectX11 - 5.1

来源:互联网 发布:阿里云域名 跳转 编辑:程序博客网 时间:2024/04/29 00:04

第五章 渲染管线

本章的主要主题是渲染管线。给定一个3D的场景和一个有方向和位置的虚拟的摄像机,渲染管线会执行一系列的步骤来生成这个摄像机看到的2D图像。这章主要还是理论——下一章我们会学怎么画。为了学渲染管线,我们首先有两个任务:第一,讨论3D影像里边的一些要素,亦即如何通过2D显示器看到3D效果;第二,讨论颜色如何在代码里边表示以及如何作用。

目标:
1. 讨论几个用于模拟真实场景用的关键标志,和2D图像的空间深度。
2. 懂得我们如何用Direct3D来表达一个3D物件。
3. 学习如何模拟一个虚拟摄像机
4. 理解渲染管线——把几何描述带入3D场景然后生成2D图像的过程。

5.1 3D幻觉

在我们开始3D之旅之前,先来考虑一个简单却重要的问题:我们如何用一个平面2D显示器显示一个有深度的3D世界?幸运的是,这个问题已经被研究过了,艺术家们已经在帆布上画3D场景画好几个世纪了。在本节,我们突出以下几个让图像像3D的关键技术,即时它实际上是被画在2D平面上。
假设你邂逅了一条直着到天荒地老的铁路。不论何时两条铁轨总是平行的,但是当你站在铁轨上看的时候,你会看到他们离的越来越近在无限远处汇聚到一起了。这是人类的观测特征之一:视线里的平行线会交汇到消失的一个点。
另一个简单的观察是,我们看事物的时候越远的地方物体的大小会越小。亦即近大远小。比如山上的房子看起来很小但是我们旁边的树相对而言就大。
我们都见过对象重叠,也就是不透明的物体会遮挡住它后边的物体。这件事很重要,因为它意味着场景中的深度排序关系。我们已经讨论过Direct3D如何使用深度缓存来判断哪些像素应该被看到哪些被遮挡了。
看图5.5中的两个球。左边那个没有被照亮,右边那个被照亮了。你看左边那个看起来是不是超级平——或许它根本就不是个球而是个圆!所以说,灯光和阴影在描述固体形态物体中也扮演者重要角色。
最后,图5.6展示了一个空间飞船和它的阴影。阴影有两个重要作用。第一,它告诉我们灯光的来源,第二,它告诉我们飞船飞得有多高。
以上讨论的这几点毫无疑问使我们日常体验中很直观的观察。尽管如此,明确的声明这几点并且记住对于我们之后的3D学习大有帮助。

翻译存疑:

depth ordering relationship: 深度排序关系

0 0
原创粉丝点击