当前位置:网站首页>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 主要用于对头发的各向异性高光的纠正。
边栏推荐
- 2022熔化焊接与热切割操作证考试题及模拟考试
- window.open 全屏展示
- 学习机赛道加速:请“卷”产品,不要“卷”营销
- Antdesign a-select 下拉框超出长度换行显示
- Summary of Text Characterization Methods
- 线程池的创建及参数设置详解
- Flink Learning 11: Flink Program Parallelism
- RK3568 environment installation
- Falsely bamboo brother today and found a localization of API to use tools
- Shiny02---Shiny异常解决
猜你喜欢

TRACE32——C源码关联1

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

Task flow scheduling tool AirFlow,, 220804,,

关于MP3文件中找不到TAG标签的问题

RNote108---Display the running progress of the R program

2022 crane driver (limited bridge crane) exam question bank and simulation test

Vulnhub靶机:HA_ NARAK

二叉树进阶复习1

binary search tree problem

It turns out that Maya Arnold can also render high-quality works!Awesome Tips
随机推荐
Flink学习10:使用idea编写WordCount,并打包运行
专用机终端安装软件后报IP冲突
Vulnhub靶机:HA_ NARAK
400 times performance improvement 丨 swap valuation optimization case calculation
微信 小程序 之PC端 不支持 wx.previewMedia 方法 故用自定义轮播图进行 模拟照片视频的播放
小本创业者的致胜法宝!
Qt编写自定义控件:文字聚光灯效果之一
环网冗余式CAN/光纤转换器 CAN总线转光纤转换器中继集线器hub光端机
在anaconda Promat界面import torch通过,在jupyter notebook中报错的问题(仅提供思路理解!)
Task flow scheduling tool AirFlow,, 220804,,
C-Eighty seven(背包+bitset)
青苹果论坛重新开放
YOLOv3 SPP理论详解(包括CIoU及Focal loss)
Takeda Fiscal 2022 First Quarter Results Strong; On Track to Achieve Full-Year Management Guidance
存储过程编写经验和优化措施
browserslist 选项的目的是什么?
SVG星球大战样式Toggle切换开关按钮
学习机赛道加速:请“卷”产品,不要“卷”营销
TRACE32——加载符号表信息用于调试
利用Jenkins的持续集成