重新使用Fresnel为材质建模并增加锥形

重新使用Fresnel为材质建模并增加锥形
    由于之前的建模方法乱七八糟,现在使用一般的Fresnel方法为材质建模。这是一个处理折射和反射光比率的函数。计算方法如下: factor=bias+scale(1+I×N)^power,将factor剪裁之[0,1]范围内之后,折射光/反射光比率为factor/(1-factor)。bias、scale与power是材质参数,需直接指定。

    添加了锥形之后,使用两个锥形和5个玻璃球进行折射、反射和阴影等计算,得到如下结果:
重新使用Fresnel为材质建模并增加锥形_第1张图片
重新使用Fresnel为材质建模并增加锥形_第2张图片

    将整个渲染系统重构到没有虚函数之后,速度得到了一些提升(大概为30%)。整个架构也被重新调整,新的渲染器分成一下几个部分:

    Geometry:负责物体求交与diffuse计算(目前不支持贴图)。
    Transformation:负责对Geometry进行线性变换。将入射实现逆转换之后,将求交结果(点与法向量)进行线性变换。
    Material:负责描述物体的材质(除了diffuse)。
    Renderer:负责ray tracing,并将求得的结果进行混合。

    接下来的打算是添加更多的矩阵、几何物体(考虑支持三角形)等基本工具,然后实现GI。为GI求解主要需要将发光物体与非发光物体区别对待。发光物体有diffuse和光源颜色的区别。光源颜色将大于1。对一个点进行GI运算的时候,从点开始,法向量方向为向前方向渲染一副小型全景图,其中发光物体产生光源颜色。然后进行统计。统计的结果作为光源对该点的贡献,然后进行一般的计算。

    预计GI将是一个无敌慢的运算过程……

    将支持的小feature:贴图、散射、透明物体的杂质、更多的矩阵、 更多的几何物体天空盒子GI和并行渲染。

你可能感兴趣的:(重新使用Fresnel为材质建模并增加锥形)