问题:游戏里常用法线外扩的方式描边,但是由于模型法线不连续导致描边断开的情况,一般可以通过调整法线来解决,但是直接调整法线又会影响光照的计算。
思路:把圆滑的法线存到顶点色里,然后通过这套圆滑过的法线进行顶点外拓,在Houdini实现也是十分简单。
1.先通过normal节点给与box法线(本身带法线的模型不需要这一步)
2.通过normal节点圆滑模型的法线
3.这里通过一个point节点,把圆滑过的法线(N)写进顶点色(Cd),(因为Houdini和Unity的x轴相反所以乘以一个负值,法线[-1,1]映射到颜色[0,1] 需要*0.5 + 0.5)
4.attribcopy节点,把顶点色(Cd)复制到没修改法线模型,可以看出法线还是原来的法线,但是圆滑的法线已经写入了顶点颜色,最后通过rop_fbx导出模型
5.切到Unity写一个简单的描边Shader(顶点色需要 *2 -1把[0,1]映射回法线[-1,1]区间)
6.打开开关效果