新的毛发渲染功能

有关注过的朋友可能会知道,我的渲染器是基于光线追踪的,虽然以前的版本也有扫描线,但后来嫌同时维护两个渲染核心很辛苦,所以暂时改成纯raytracer了,所以这里新加入的毛发功能是基于后置处理的,方法很简单,就是用Z-BUFFER,然后毛发的光照模型我是直接用3ds max里面的各向异性标准材质,大家可能知道了这是一个3ds max的插件渲染器,所以我暂时没有用别的特别的模型,毛发的自阴影效果是用基于我自己的经验模型的伪阴影,其实原理就是深层的毛发光线接受的更少一些,非常简单,但是效果还可以接受,而且关键是用这种伪的方法渲染速度非常快,不需要shadow map或者deep shadow map或者体渲染技术等额外的计算。但是这种伪技术当然有限制,并不总能近似于真实的物理光照效果。而且因为是后置处理的,我还无法对毛发进行光线追踪,所以不能产生反射和折射效果,对毛发这么细微而数量巨大的物体进行光线追踪确实是一项挑战,我记得我很早以前就提过这个问题,到现在也没找到很好的方法,希望各位知道有什么好的方法能够给予指点,谢谢了先。插件的毛发的生成是采用3ds max里的面片进行造型,然后我的插件会把面片转换为毛发,因为我自己是学画画的,所以我认为用面片造型比用曲线造型更直观,更有体积感,观察起来也更见方便,修改发型也比较精确。我这里对毛发做的是类似REYES的vertex shading,也许做pixel shading会更细腻,但是毛发覆盖率比较大,如果要做pixel shading,先要做消隐才比较有效率,而我这里是先shading后消隐,当然了,可以借助类似REYES的occlusion culling等技术解决shading的浪费,这就有待以后提高了。
 
原文地址:https://www.cnblogs.com/len3d/p/752388.html