学习Unity shader不久,最近在实现texture mask的功能,简单地说就是:用一张mask texture将其他四张textures混叠在一起。
原理简单描述如下:
shader property输入5张贴图分别是:
Mask Texture,表面上也是一张贴图,但实际上是用于采样的数据结构,类似Dictionary<Vector2, Vector3>,Vector2(row, column),Vector3(r, g, b)。
Main Texture,底图,使用mask alpha通道;
Sub Texture1、Sub Texture2、Sub Texture3,混叠的贴图,分别使用mask R,G,B通道。
只要能在shader中动态变换mask的数据,就可以根据要求实时地显示所需要的贴图内容。