3D图形数学(8) 摘要: 当三角形的顶点转换到裁剪空间后,我们对三角形做两个重要测试。注意,这里讨论的顺序并不一定是硬件执行的顺序。
第一个测试称作背面剔除,其目的是去除背面摄像机的三角形。在标准三角网格中,我们永远看不到三角形背面,除非进入那些多面体内部。去除这些三角形并非必要,画出它们依然得到正确的图像,因为它们会被前方的三角形盖住。但我们不想浪费时间去绘制任何看不见的物体,所以我们常做背面剔除,特别是在理论上有一半的三角形为背向的。
3D图形数学(7) 摘要: 一旦知道哪些物体可见(或至少潜在可见),即可将其生成并提交到图形处理器。该阶段完成以下任务:
(1)细节层次(LOD)选择
(2)渐进式生成几何体
(3)向图形API提交数据
3D图形数学(6) 摘要: 若渲染速度并不重要,我们可以逐像素地计算光照和雾化。(对于光照,这项技术称作Phong着色模型----不要和镜面反射的Phong模型混淆。)然而这样做计算量过于巨大,所以我们折中并减少计算的频率。有两个选择:逐多边形或逐顶点计算,这两项技术分别称作flat着色和Gourand着色。
使用flat着色,对整个三角形只计算一次光照值。通常计算光照的位置为三角形中心,表面法向量为三角形法向量。如图15.17所示,使用flat着色,物体由多边形构成的本质表露无遗,没有任何光泽可言。
3D图形数学(5) 摘要: 光随距离衰减,所以远离光源的物体会变暗一些。现实世界里,光强度反比于物体和光源距离的平方。
i1 / i2 = d22 / d12
公式15.12 实际光线衰减反比于距离的平方
此处i为光强,d为距离。
3D图形数学(4) 摘要: 标准光照方程的镜面反射分量指由光源直接经物体表面反射入眼睛的光线,如图 15.10:
n为表面法向量
v指向观察者
l指向光源,对方向光源,l为定值
r为镜像向量,即l对n镜像之结果
θ为r和v的夹角,由r.v给出,描述镜像的方向性。
3D图形数学(3) 摘要:
标准光照模型是局部模型中的一种----即当处理一个物体时,不考虑其他物体的影响。物体也不向别的物体投下影子,实际上,物体自身无法生成影子,影子是使用全局光照模型生成的。
计算机中的色彩常用RGB色彩模型表示,这里R表示红,G表示绿,B表示蓝,其精度因平台与渲染状态而异。我们视RGB为0至1间的值,并且也不考虑其中各分量到底占用多少二进制位。在计算机图形学中,色彩常被视为数学实体。我们用黑体的小写罗马字母表示色彩符号,如c,与向量符号相同,但由于二者上下文不同,所以不会混淆。
3D图形数学(2) 摘要:
物体最开始由物体空间(和物体相连的坐标空间)来描述,其中常见的信息包括顶点位置和表面法向量。物体空间又称作模型空间或局部空间。
可将坐标从模型空间中转换到世界空间中,此过程称作模型变换。通常,光照计算使用世界空间,但其实使用什么坐标空间无所谓,只要确保几何体与光线在同一空间即可。
3D图形数学(1) 摘要: 我们将讨论渲染一幅带有基本光照的单个图像的大体过程,这里不考虑动画和全局光照,如阴影和辐射度。
此外,注意这里只从概念上讲解通过图形管道的数据流,其顺序并不是固定的。实践中,我们也许会为了性能的优化而并行或乱序执行一些任务。比如,考虑到不同的渲染API,我们可能首先变换和照明所有顶点,然后才进一步的处理(进行裁剪和剔除),或者会并行处理二者,也可能在背面剔除之后再进行光照会得到更高效率。