unity 头发的渲染

光照模型
Kajiya-Kay 一般使用的光照模型
为不透明的完美圆柱体。
只考虑反射,没有考虑透射,没有考虑内部反射,没有考虑吸收。
在这里插入图片描述

Marschner 基于物理的渲染
理论模型:头发不是完美的圆柱体,头发是堆叠的圆锥体。每一根头发纤维由角质层cuticle(外面的堆叠)以及内部的皮层cortex组成
R 为反射路径,反射出来的管线颜色为原始光源颜色
TRT 光线进入头发纤维内部,部分能量被吸收,所以最终反射出的光线具有头发纤维的颜色。
TT 透射后然后透射路径你,TT出来的光线也是有色的,但是颜色比TRT的饱和度要抵,只经过一次折射。
在这里插入图片描述

Alpha处理 处理头发最麻烦的问题在于对头发的半透明排序的问题处理,所以一般渲染头发不选择使用半透明进行头发渲染。使用AlphaTest然后加上TAA抗锯齿边缘处理。

和物理材质不同的接口:
scatter 替代了物理材质里面的metallic属性。
scatter控制有多少光穿过整个头发。浅色的头发,scatter数值偏高,深色的头发,scatter数值偏低。此处遵循了物理规则,深色的头发会吸收更多的光。
修改头发的颜色,不单单要修改颜色或者漫反射贴图,还需要修改scatter属性。

tangent 替代了normal属性,渲染头发使用的是切线而不是法线。用于代表头发生长的方向。或者使用一张flowmap贴图。不会使用物理材质中的法向。

制作流程:
首先绘制头发发丝的形状贴图,然后烘焙出图集。

  1. 生成头发纹理图集
    效果最好的使用maya的Xgen + Arnold/xNormal
    Fiber Shop
    Blender Hair Tool
    Hair Stand Designer Tool
    Hair&Fur plugin

  2. 制作头发的面片
    在这里插入图片描述

在这里插入图片描述
在这里插入图片描述
面片也可以做成交叉型的,更有立体感
在这里插入图片描述
通过引导线去生成,视频可以看到使用Xgen去生成引导线。这种方式不需要手动摆放发型,但是还是需要调整。
查看视频:https://www.bilibili.com/video/BV1sJ411S7xu

  1. 手动摆放位置和调整 分层叠加

生成的发线的数据,注意头发一般都是从上到下的顺序表现在贴图上面,如果不是,那么需要使用一张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 主要用于对头发的各向异性高光的纠正。

  • 2
    点赞
  • 6
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
Unity头发渲染使用了分层layer的方法,每一层层次渲染不同长度的毛发,通过设置不同的alpha值来控制显示。为了实现这个效果,可以使用多个pass进行渲染,其中每个pass表示一层。在渲染每一层时,使用法线将顶点位置挤出模型表面。此外,根据噪音贴图可以随机控制毛发的长度,并根据不同层次调整毛发的UV位置偏移,使其更加自然。还可以设置偏移量来模拟外力对毛发的影响,比如风。最后,根据环境光、反射和漫反射光等影响来设置颜色。 在Unity中实现头发渲染可以使用多个pass,这样可以避免重复的代码。不同的层次需要传递参数来控制长度,可以使用1/总的层数来表示每一层毛发所对应的长度。具体实现时,可以在表面皮肤渲染pass和毛发渲染pass中引用相应的shader,其中通过设置FURSTEP参数来控制皮毛的长度。 如果你正在寻找Unity中用于头发渲染的工具,可以考虑使用"Fur Tool Unity Asset for 3D Character Modelling Artists",这是由Coldface Interactive开发的一个Unity插件,可以帮助艺术家进行头发建模。<span class="em">1</span><span class="em">2</span><span class="em">3</span> #### 引用[.reference_title] - *1* *2* *3* [unity shader - 毛发渲染,飘逸的毛发](https://blog.csdn.net/alla_Candy/article/details/121439493)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v93^chatsearchT3_1"}}] [.reference_item style="max-width: 100%"] [ .reference_list ]
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值