softcore - why&the basic

多数初学者往往陷入3D API细节。认为绘制带有各种效果的三角形就是在做引擎。或者疲于把各种NV SDK或者D3D SDK的sample code加入自己的工程。当然,用orge3d这样的开源渲染器也可以做出《天龙八部》,《巨人》等商业产品,不过,想快速开发符合要求的次世代渲染器,需要大量实际工程方面的工作。针对范围很狭窄的渲染器而言,对渲染效果质量的调整,以及自行开发美术需要的效果,不是照抄fx composer或者render monkey那么简单。由于对GPU工作原理认识不深,对某些效果优化实现背后的理论基础认识不深,都会直接带来在实际工程中开发的障碍。或者导致质量下降。

按说做为图形程序员应该对3D光栅渲染的整条流水线做到倒背如流。不过3D硬件厂商加速了应用的进程。使得在屏幕上绘制三角形这件工作变得容易。也许会忽略人们对实时三维渲染的系统知识体系建立。在高级图形渲染逐渐进入更复杂光照,全局光,基于物理或模拟基于物理的技术层面之后,不对GPU工作机理做到透彻了解,在工作中会举步为艰。因为所有渲染工作逐渐移到GPU寄存器中用可编程代码进行。整条管道,从Geometry transform,clipping,vertex lighting,到pixel的shading都由程序员控制。但GPU仍然自动进行了screen space的一些工作。包括clipping,扫描线线性插值,texture sampler等。这是光栅器能够数百倍快于raytracing渲染的本质。但如果图形程序员不了解被GPU自动进行的工作,也会象C++程序员不了解缺省构造函数一样盲目。

举例,众所周知普通的shadowmap 完全不具备工程实用性。最重要的是因为出于内存限制,shadowmap texture尺寸不可能满足实际渲染精度需要。并且收到三角形在camera space中斜率影响巨大。Depth Bias问题的本质是什么。与何参数相关。目前采用的各种调节depthmap渲染精度的方法背后理论依据是什么。Perspective shadowmap,light space shadowmap等各自优化方法会遇到什么问题,各自优缺点,以及工程中如何tunning,尤其用于self-shadow的问题。基于PCF(percentage closer filter)的各种软阴影算法的应用。

在对bumpmap技术改进过程中,在tangent space使用ray-tracing的reliefmap以及relaxed cone stepping relief map,以及带有凹凸轮廓的releif map技术。以及parallax map,和其变种dynamic parallax occlusion map。如何在pixel级别用bilinear gouraud 和这些象素级别lighting进行LOD,如何改进parallax map随视角变化而产生纹理浮动的问题,如何调整线性迭代和2分查找对效率和效果的影响。甚至从本质上了解tangent space,phong shading,都要从软件光栅机理开始。

posted @ 2008-07-22 10:35  puzzy3d  阅读(1540)  评论(9编辑  收藏  举报