随笔-341  评论-2670  文章-0  trackbacks-0
    由于之前的建模方法乱七八糟,现在使用一般的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) 阅读(1707) 评论(0)  编辑 收藏 引用 所属分类: 3D

只有注册用户登录后才能发表评论。
【推荐】超50万行VC++源码: 大型组态工控、电力仿真CAD与GIS源码库
网站导航: 博客园   IT新闻   BlogJava   知识库   博问   管理