近期专门去了解了一下头发渲染方面的东西。写一下来总结一下。
参考文献:
- KAJIYA, J. and KAY, T. 1989. Rendering Fur With Three Dimensional Textures. InComputer Graphics (Proceedings of ACM SIGGRAPH 89),23, 3, ACM, 271-280.
- MARSCHNER, S.R., JENSEN, H.W., CAMMARANO, M., WORLEY, S. and HANRAHAN, P. 2003. Light Scattering from Human Hair Fibers.ACM Transactions on Graphics,22, 3, 780-791.
具体实践参考:
- Thorsten Scheuermann 的Practical Real-Time Hair Rendering and Shading 以及所做的PPT hair rendering and shading
- 同时参考了 CSDN 上谁允许你直视本大叔的 的相关文章 http://blog.csdn.net/noahzuo/article/details/51162472
在Unity上实现的源码参考
- unity 官网上给出 The Blacksmith Hair Shader 的shader源码
- 以及asset store 里Advanced Hair Shader Pack
这两个源码实现上有所不同的地方就是控制高光偏移的贴图上,在Practical Real-Time Hair Rendering and Shading中提到,可以采用两种方式,一种是产生一个随机变化的偏移值,促使高光看起来有所不同,另一种是产生一个tangent map 的贴图,可以从这个贴图中获取切线向量,类似法线贴图一样(如何生成,不太明白)。其中The Blacksmith Hair Shader 采用后者,Advanced Hair Shader Pack采用了前者,而且光照模型部分代码和Thorsten Scheuermann的PPT上基本相同,不过在具体套用上有点问题。感觉几个pass渲染上有一点问题。
注:Thorsten Scheuermann只是采用了近似的方法去实现Light Scattering from Human Hair Fibers
关于这方面的最近的一些算法,参考wolf96 的文章unity3d Hair real time rendering 真实头发实时渲染 http://blog.csdn.net/wolf96/article/details/45823761
版权声明:本文为yingtan原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接和本声明。