斜坡岩石自动分配理论分析
要做的效果是: 在做好的地貌场景中,抬高或者挖洞的时候,在斜坡上会自动显示岩石的材质,并且在交界处有过渡的碎石、稀疏的草的材质
技术原理:结合实际效果,我们应该在一定的角度上来区分材质,比如斜面在15度以下显示植被,在15到90度显示岩石(坑也是对应一个角度范围),这里就需要一个根据斜率变化的遮罩。
平整的地面的法线为(0,0,1),而斜坡上表面法线是有各种各样的,所以二者点积结果范围是[-1,1],然后把这个结果映射到[0,1],再通过lerp映射到[min,max]这里的min和max是设置最小和最大的高度值,再用clamp控制到[0,1]这样就保证了一定角度范围内都是一个材质。最后通过改变遮罩的对比度来控制交界的过渡范围。
材质优化算法函数
效果:对于置换贴图的优化,在近距离内开启曲面细分和置换贴图,在远距离无效果,在中间有过渡效果。
技术实现:
对于曲面细分:曲面细分乘数控制细分程度,在近距离内曲面细分为曲面细分乘数multiplier,在远处为0。[multiplier,0]下图输出曲面细分乘数
对于置换贴图,也是类似,要实现[maxHeight,0]
最后通过静态开关控制效果开关
全局一致纹理制作地貌裸露岩石
对于斜坡大概为90度的地方uv扭曲严重,材质效果不好,可以通过全局一致纹理来改善效果,也就是材质是基于世界位置投影的不受模型本身影响。
材质通道混合成一张图片
工具ps:
创建一个相应尺寸的黑色图片,分离通道,把相应材质贴图转换成灰度图后直接拖入,合并当前通道的图层。最后再合并通道。如果有A图层,ctrl+shift+S 另存为tiff,tga等带有A通道的图片。