头发的生成以及渲染方案
来源:互联网 发布:网络架构师 真题 编辑:程序博客网 时间:2024/06/02 14:16
搁笔良久,今起复耕
本文主要涉及头发的生长方案,光照模型,阴影效果,透明效果以及多次采样抗锯齿。
一. 头发的生长:
定义根节点以及头发长度参数
头发从头皮生长,根据mesh的UV展开图,编辑头部头发生长区域以及利用颜色控制头发的长度。 鉴于头发后期仿真模拟的需要,此处使用tessellation shader,可以生长更加细密的头发。
对头部头发生长区域mesh着色(头发颜色),消除头发和头皮颜色误差
vec3 color = mix(texture2D(texcolor), hairColor, texture2D(glowmap).r); 其中 glowmap 即上面编辑得到头皮的颜色部分, texcolor 为头部mesh 本来的颜色。
控制后续头发走向,形成发型
得到头发的生长根节点之后,需要控制后面节点的生长。利用向量,控制每根头发的点的走向。
二、 头发的光照模型
Kajiaya 光照模型: 主要特点即 tangent 方向为沿头发方向; 使用该模型,得到的头发渲染效果,会有较逼真的光圈效果
Kajiya & Kay. “Rendering furwith Three Dimensional Textures.” Computer Graphics (Proceedings of ACMSIGGRAPH 89), 1989.
diffuse = sqrt(1. - abs(dot(tangent_N.xyz, light_N.xyz))); specular = pow(sqrt(1. - abs(dot(tangent_N, h_N))), shinness); 其中h_N = normalize(eye + light)
三、自阴影效果
DOP shadow
Yuskel & Keyser. “DeepOpacity Maps.” Proceedings of EUROGRAPHICS, 2008.
简述下“Deep Opacity Maps” 的方法。根据光源距离深度划分为几个深度层(即Deep opacity map), 计算occlusion并求和,然后 transmittance= exp(-occlusion * shadowIntensity);头发的系数 hairColor * Transmittance 得到不同头发的阴影效果。
四、Transparency 效果
Everitt, Cass. “InteractiveOrder-Independent Transparency.” Technical Report, NVIDIA Corporation. 2001.
可以查阅 深度剥离 的透明方法;
五、superSampling- 4XSSAA
关于SSAA, 定义2*width 以及 2* heighth 的render texture, 然后 renderFullScreen
Reference:
文中已经配有;
- 头发的生成以及渲染方案
- 游戏中各向异性头发的渲染
- Digital Mike头发制作及渲染的深度揭秘
- unity实时头发渲染汇总
- 撕裂我的头发
- 小女生的头发
- 头发的功用
- 头发
- PDF的生成方案
- PDF的生成方案
- unity3d Hair real time rendering 真实头发实时渲染
- 如何护理自己的头发!
- [POJ3250]头发糟糕的日子
- 超美的头发编发
- 女生做完头发和男生做完头发的区别
- BIRT的文档生成,渲染技术
- 渲染管线以及directx的发展过程
- ios-渲染的方式以及填充规则
- Hello Kotlin第一篇
- always电平触发
- springmvc的执行过程的源码分析
- Latex个人认为比较优秀网站及其写作时的帮助。
- 周末训练笔记(10.1)
- 头发的生成以及渲染方案
- iOS开发之cell中self和self.contentview的区别
- IndentationError: unindent does not match any outer indentation level
- # 数据和C
- [LeetCode-Algorithms-14] "Longest Common Prefix" (2017.10.2-WEEK5)
- 六、(三)服务器
- Linux查找和筛选工具
- include<list>下含函数
- Java for Web学习笔记(七八):Validation(2)验证标记