锅炉信息网 > 锅炉知识 > 锅炉资讯

UE4的绒毛与Mikkt

发布时间:

起因是因为UE不支持多pass,而美术自己max去生成模型不直观,于是又开始用一些小技巧去做这个材质效果。为了美术方便制作,能更可视化

起因是因为UE不支持多pass,而美术自己max去生成模型不直观,于是又开始用一些小技巧去做这个材质效果。

为了美术方便制作,能更可视化的调整离线生成的绒毛模型,于是,在UE里面用HDA工具在生成绒毛的同时,已经是给予了绒毛的材质,所以HDA生成的过程可以是最终的整体效果了。

这个时候,就遇到了问题,众所周知,毛发类材质,都是加了各向异性的,于是,在最开始的HDA工具生成绒毛的时候,材质显示的各向异性效果是。。。这样的:

最初的效果
只输出各项异性的结果

很奇怪,HDA工具本身是写有导出模型的功能(方便美术同学能再导出已经调整好整体效果的绒毛模型),我就直接导出模型,然后再导入UE里面,再看却是正确的:

HDA直接生成之后导出模型为FBX
查看切线
单独输出各项异性结果

导出模型fbx再导入UE,就正确了,那么在HDA阶段的切线为什么是错误的呢。。是为什么呢?

于是就看到了Mikkt。

因为UE用的TangentSpace是Mikkt,而我在HDA生成的模型时候,用的默认的tangent,TangentSpace跟UE的不一样,导致计算错误,而导出去fbx再导入UE的话就正确,是因为大家都很熟悉的导入模型的时候,UE会弹出的这个窗口:

默认导入设置

Normalmap的烘培是要跟模型一样使用相同的TangentSpace,但并不能保证计算正确。

引用http://mikktspace.com/

上面MikktSpace网站有说明,当用到了镜像网格,那么这个时候左右的切线空间也可能是不一样的。比如这样的镜像了两边之后的模型:

没有Mikkt的镜像位置会不同步

而Mikkt计算的TangentSpace,可以避免这些问题。

引用http://mikktspace.com/
有Mikkt的镜像位置会同步

解决办法:HDA生成模型时,不用默认的生成切线空间的计算,改用Mikkt,修正之后的结果:

Hda加节点设置Mikkt类型计算
左边HDA的效果是错误的,右边HDA的效果是Mikkt的,是正确的

最终效果:

材质效果参考的是大佬的妲己的尾巴的那篇文章,在这里不做赘述了,材质参考的相关链接:

真香预警!新版“峡谷第一美”妲己尾巴毛发制作分享YOung:Unity的PBR扩展——皮毛材质

Mikkt相关文章和源码git链接:

MikkTSpace.comhttps://github.com/teared/mikktspace-for-houdini/tree/master/source

Mikkelsen大佬的那篇全面解读这种TangentSpace的计算过程的原文章:

http://image.diku.dk/projects/media/morten.mikkelsen.08.pdf


在这里感谢刘汉隆老师和康康大大给我的指点!

如果文章对你们有帮助的话,记得关注一下我呀~

精选推荐

  • 如何正确选择白板供应商
    如何正确选择白板供应商

    目前在无锡想采购一块白板不管是实体店铺,还是网络平台都有很多选择,想要到专业的无锡白板公司采购还需要掌握一定的方式技巧。现

  • 柴油发电机组供应商
    柴油发电机组供应商

      t 扬州华东动力机械有限公司,位于江苏省扬州市江都区仙城工业园,是专业从事发电机、柴油及燃气发电机组研发、制造、销售、服务于

  • 高温辐射炉
    高温辐射炉

    5.2.2高温辐射炉5.2.2.1温度控制★(1)样品温度范围:常温~1400℃。★(2)均温区:长度不小于80mm。★(3)中心区:长度不小于10mm。(4)温度梯度(均

  • 高压锅在什么情况下会爆炸?
    高压锅在什么情况下会爆炸?

    近日,多地发生高压锅爆炸事故,给不少家庭带来了伤害和财产损失。那么,什么情况下会导致高压锅爆炸呢?首先,当高压锅内部压力过高时,如果

0