地形材质总结

来源:互联网 发布:支付宝源码 编辑:程序博客网 时间:2024/05/16 12:28

我简单做了一下地形材质,我在这里混了12种不同的材质,才开始做,可能具体效果还需要调整。

首先由于寄存器限制,一个材质里面最多使用16张不同的贴图,我们可以把信息集中化,比如专门拿一张贴图保存草,石头,泥土,沙子的高光或者光滑度什么的,分别把这些信息存在RGB几个通道里面。尽量复用,这样就可以给地形做很多个weight层。算法尽量节省干净,不然地形材质会无法显示。

从4.6开始增加了shared Texture samplers,你可以把它理解成把多张贴图做了atlas,从而变相增加了单个材质中可以使用的贴图的数量。目前在DX11上可以支持最多128张贴图。但手机,包括走OpenGL渲染的Win或Mac不支持。

地形以component为渲染单位,即在这个单位上超过16张贴图就无法显示了(如果不shared samplers);地形每个component目前在PC上没有层数的限制,只有sampler的限制;如果很少的层但很多贴图有可能会不显示;同样如果很多层,但很少贴图,也有可能仍然可显示。材质中的sampler数量不仅仅是实际用到的贴图,还有地形层与层间的mask,还有灯光计算本身也需要占用sampler,所以实际使用贴图数量限制都小于16.