arnold 渲染曲面fracture破碎置换和uv校正
关键字:arnold,houdini,渲染,置换,displacement,破碎,扭曲,uv,校正,曲面
先上图:
能看到的裂缝是故意加的缝隙,不是置换精度问题!眼睛没问题应该能看出来!
Arnold渲染曲面物体fracture破碎遇到的问题:
1.user_data_vector哪去了?自动桌子自己吃啦?
2.曲面碎块置换后接缝处不在原模型上了(离开了元表面),需要找到真正的置换后在表面上的位置P。
3.要完美的在动态碎块上匹配接缝,这个置换只能在rest空间评估,再去做矩阵变换到世界空间。
4.置换后uv扭曲了,需要跨物体读取uv,对arnold来说......你懂得!
5.巴拉巴拉还有啥!!!
实现思路数据流梳理:
1、arnold要获取两块数据,一个是动态的碎块简模,他需要有rest、depth、rmatrix信息。另一个是用于读取uv的拓扑结构一样的静态模型,需要包含nv,uv和rest属性。
2、用rest搭桥动静态两个模型,利用静态的nv评估rest空间的置换,再去拿静态模型做穿插校正,将置换后不在表面的点进行归位,再通过rmatrix转到world空间。
3、根据rest读取静态的uv,进行uv校正
要实现这些需要4个节点,两个arnold节点2个hda资产:
1、crushdispvector.so用来生成disp vector
2、crushdispreaduv.so用来校正扭曲的uv
3、hda资产crush_static用来生成静态模型所需属性
4、hda资产crush_dynamic用来生成动态模型所需属性
安装方法:
1、持续关注qq群,获取最新版下载链接
2、将dll文件放到arnold的安装路径的plugins下面,重启houdini
3、hda资产放到otls下面
4、需要匹配houdini版本
5、欢迎bug反馈!!
6、如果测试过程中遇到疑问请参看群里配套的hip工程文件的详细参数设置!
使用方法:
1、打开群里配套的的hip自行查看节点连接和设置
2、houdini里数据进crush_static节点前需要有rest和uv属性,并且需要有inside和outside组
3、houdini里数据进crush_dynamic节点前需要有orient属性
4、碎块的obj上要这样设置