由于之前的建模方法乱七八糟,现在使用一般的Fresnel方法为材质建模。这是一个处理折射和反射光比率的函数。计算方法如下:
factor=bias+scale(1+I×N)^power,将factor剪裁之[0,1]范围内之后,折射光/反射光比率为factor/(1-factor)。bias、scale与power是材质参数,需直接指定。
添加了锥形之后,使用两个锥形和5个玻璃球进行折射、反射和阴影等计算,得到如下结果:
将整个渲染系统重构到没有虚函数之后,速度得到了一些提升(大概为30%)。整个架构也被重新调整,新的渲染器分成一下几个部分:
Geometry:负责物体求交与diffuse计算(目前不支持贴图)。
Transformation:负责对Geometry进行线性变换。将入射实现逆转换之后,将求交结果(点与法向量)进行线性变换。
Material:负责描述物体的材质(除了diffuse)。
Renderer:负责ray tracing,并将求得的结果进行混合。
接下来的打算是添加更多的矩阵、几何物体(考虑支持三角形)等基本工具,然后实现GI。为GI求解主要需要将发光物体与非发光物体区别对待。发光物体有diffuse和光源颜色的区别。光源颜色将大于1。对一个点进行GI运算的时候,从点开始,法向量方向为向前方向渲染一副小型全景图,其中发光物体产生光源颜色。然后进行统计。统计的结果作为光源对该点的贡献,然后进行一般的计算。
预计GI将是一个无敌慢的运算过程……
将支持的小feature:贴图、散射、透明物体的杂质、更多的矩阵、
更多的几何物体、
天空盒子、
GI和并行渲染。
posted on 2009-01-24 09:55
陈梓瀚(vczh) 阅读(1765)
评论(0) 编辑 收藏 引用 所属分类:
3D