当前位置:网站首页>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 主要用于对头发的各向异性高光的纠正。
边栏推荐
- In the anaconda Promat interface, import torch is passed, and the error is reported in the jupyter notebook (only provide ideas and understanding!)
- 图片地址转为base64
- Vulnhub target drone: HA_ NARAK
- Cannot compare or sort text, ntext, and image data types
- 每一个女孩曾经都是一个没有泪的天使
- U++ UE4官方文档课后作业
- C语言制作-QQ聊天室
- 双向循环带头链表
- Summary of Text Characterization Methods
- TRACE32——外设寄存器查看与修改
猜你喜欢

Flink学习11:flink程序并行度

TRACE32——通用寄存器查看与修改

TRACE32——Go.direct

Falsely bamboo brother today and found a localization of API to use tools

MySQL: order by sorting query, group by grouping query

Task flow scheduling tool AirFlow,, 220804,,

In the anaconda Promat interface, import torch is passed, and the error is reported in the jupyter notebook (only provide ideas and understanding!)

U++ UE4官方文档课后作业

2022 Fusion Welding and Thermal Cutting Operation Certificate Exam Questions and Mock Exams

性能提升400倍丨外汇掉期估值计算优化案例
随机推荐
2022.8.2 模拟赛
After working for 3 years, I recalled the comparison between the past and the present when I first started, and joked about my testing career
算法拾遗十五补链表相关面试题
691. 立方体IV
Hash these knowledge you should also know
SVG星球大战样式Toggle切换开关按钮
Vulnhub靶机:HA_ NARAK
TRACE32——通用寄存器查看与修改
RNote108---Display the running progress of the R program
[Shanghai] Hiring .Net Senior Software Engineer & BI Data Warehouse Engineer (Urgent)
【深度学习实践(一)】安装TensorFlow
二叉搜索树问题
MySQL: join query | inner join, outer join
2022 crane driver (limited bridge crane) exam question bank and simulation test
TCP sticky packet unpacking problem + solution
IO process thread -> communication between processes -> day7
Illegal key size 报错问题
Algorithm Supplements Fifteen Complementary Linked List Related Interview Questions
Bluetooth gap protocol
【instancetype类型 Objective-C】