Unity 将多个纹理(数组)传递给着色器?
Unity Pass multiple textures(array) into shader?
现在在我的着色器中,我有 5 个纹理,
Properties
{
_MainTex ("Texture", 2D) = "white" {}
_MainTex2("Texture2", 2D) = "white" {}
_MainTex3 ("Texture3", 2D) = "white" {}
_MainTex4 ("Texture4", 2D) = "white" {}
_MainTex5 ("Texture5", 2D) = "white" {}
}
有没有可能我可以把它变成一个数组,这样我就不需要声明那么多纹理了?
您可以使用允许您这样做的 2DArray
类型。
Properties
{
_TheTextureArray ("Tex", 2DArray) = "" {}
}
您可以在这里找到更多相关信息:https://docs.unity3d.com/Manual/SL-TextureArrays.html
请注意技术限制(例如,DX11/12),因此默认情况下它不会在所有环境中工作,当然也不是网络(当前)。
现在在我的着色器中,我有 5 个纹理,
Properties
{
_MainTex ("Texture", 2D) = "white" {}
_MainTex2("Texture2", 2D) = "white" {}
_MainTex3 ("Texture3", 2D) = "white" {}
_MainTex4 ("Texture4", 2D) = "white" {}
_MainTex5 ("Texture5", 2D) = "white" {}
}
有没有可能我可以把它变成一个数组,这样我就不需要声明那么多纹理了?
您可以使用允许您这样做的 2DArray
类型。
Properties
{
_TheTextureArray ("Tex", 2DArray) = "" {}
}
您可以在这里找到更多相关信息:https://docs.unity3d.com/Manual/SL-TextureArrays.html
请注意技术限制(例如,DX11/12),因此默认情况下它不会在所有环境中工作,当然也不是网络(当前)。