当前位置:网站首页>unity 头发的渲染
unity 头发的渲染
2022-08-05 07:27:00 【暮志未晚Webgl】
光照模型
Kajiya-Kay 一般使用的光照模型
为不透明的完美圆柱体。
只考虑反射,没有考虑透射,没有考虑内部反射,没有考虑吸收。
Marschner 基于物理的渲染
理论模型:头发不是完美的圆柱体,头发是堆叠的圆锥体。每一根头发纤维由角质层cuticle(外面的堆叠)以及内部的皮层cortex组成
R 为反射路径,反射出来的管线颜色为原始光源颜色
TRT 光线进入头发纤维内部,部分能量被吸收,所以最终反射出的光线具有头发纤维的颜色。
TT 透射后然后透射路径你,TT出来的光线也是有色的,但是颜色比TRT的饱和度要抵,只经过一次折射。
Alpha处理 处理头发最麻烦的问题在于对头发的半透明排序的问题处理,所以一般渲染头发不选择使用半透明进行头发渲染。使用AlphaTest然后加上TAA抗锯齿边缘处理。
和物理材质不同的接口:
scatter 替代了物理材质里面的metallic属性。
scatter控制有多少光穿过整个头发。浅色的头发,scatter数值偏高,深色的头发,scatter数值偏低。此处遵循了物理规则,深色的头发会吸收更多的光。
修改头发的颜色,不单单要修改颜色或者漫反射贴图,还需要修改scatter属性。
tangent 替代了normal属性,渲染头发使用的是切线而不是法线。用于代表头发生长的方向。或者使用一张flowmap贴图。不会使用物理材质中的法向。
制作流程:
首先绘制头发发丝的形状贴图,然后烘焙出图集。
生成头发纹理图集
效果最好的使用maya的Xgen + Arnold/xNormal
Fiber Shop
Blender Hair Tool
Hair Stand Designer Tool
Hair&Fur plugin制作头发的面片
面片也可以做成交叉型的,更有立体感
通过引导线去生成,视频可以看到使用Xgen去生成引导线。这种方式不需要手动摆放发型,但是还是需要调整。
查看视频:https://www.bilibili.com/video/BV1sJ411S7xu
- 手动摆放位置和调整 分层叠加
生成的发线的数据,注意头发一般都是从上到下的顺序表现在贴图上面,如果不是,那么需要使用一张FlowMap或者DirectionMap生成。
id代表发丝的位置,比如0.1代表一种发丝 0.2代表另一种通过此修改uv去获取。
flowmap用于纠正头发的方向信息。
ue的头发渲染方案
Albedo贴图 存储头发的颜色
AlpahMap 存储头发面片的透明度
Root Map/Gradient Map 头发根到发梢的渐变信息 可以实现头发变色效果
Depth Map 深度纹理贴图,用于表现当前面片的头发层次。可以以此修改头发颜色和阴影值,镜面反射。
UNique ID Map ID纹理只是为给定头发几何体上的每根头发提供唯一的0-1的值。用于处理头发的细微变化。
flowMap / DirectionMap 主要用于对头发的各向异性高光的纠正。
边栏推荐
- RNote108---Display the running progress of the R program
- 配合屏幕录像专家,又小又清晰!
- Re regular expressions
- 任务流调度工具AirFlow,,220804,,
- 唤醒手腕 - 微信小程序、QQ小程序、抖音小程序学习笔记(更新中)
- RK3568 environment installation
- Illegal key size 报错问题
- Cannot compare or sort text, ntext, and image data types
- 对数据类型而言运算符无效。运算符为 add,类型为 text。
- 微信 小程序 之PC端 不支持 wx.previewMedia 方法 故用自定义轮播图进行 模拟照片视频的播放
猜你喜欢
随机推荐
Modeling of the MAYA ship
browserslist 选项的目的是什么?
唤醒手腕 - 微信小程序、QQ小程序、抖音小程序学习笔记(更新中)
对数据类型而言运算符无效。运算符为 add,类型为 text。
Shiny04---Application of DT and progress bar in shiny
TRACE32——SMP多核调试
protobuf根据有关联的.proto文件进行编译
餐饮大单品「真香」,却没有穿透周期的能力
Does Libpq support read-write separation configuration?
爬虫从入门到入牢
RK3568 environment installation
Game Thinking 19: Multi-dimensional calculation related to games: point product, cross product, point-line-surface distance calculation
Redis常用命令
文本特征化方法总结
2006年星座运势全解-射手
An IP conflict is reported after installing the software on a dedicated computer terminal
每一个女孩曾经都是一个没有泪的天使
【win7】NtWaitForKeyedEvent
Vulnhub target drone: HA_ NARAK
图片地址转为base64