unity游戏引擎-将纹理添加到Unlet Transparent Color Shader



如何将Texture添加到Oculus API提供的下列着色器中以进行渐变:

Shader "Oculus/Unlit Transparent Color" {
Properties {
    _Color ("Main Color", Color) = (1,1,1,1)
    _MainTex ("Texture", 2D) = "white" {} //  I added this property to apply Texture. Where can I use it?
}
SubShader {
    Tags {"Queue"="Transparent" "IgnoreProjector"="True" "RenderType"="Transparent"}
    LOD 100
    Fog {Mode Off}
    Cull Off
    ZWrite Off
    Blend SrcAlpha OneMinusSrcAlpha
    Color [_Color]
    Pass {}
}
}

您可以使用在Pass {}中添加的属性,该属性应至少包含一个顶点和一个片段着色器(或曲面着色器)。

在过程中,您定义了一个与属性同名的sampler2D,因此可以在着色器函数中使用它。

unitys文档中有一些着色器示例:https://docs.unity3d.com/Manual/ShaderTut2.html
https://docs.unity3d.com/Manual/SL-SurfaceShaderExamples.html

编辑
还有一个结构类似于您的着色器的示例:
https://docs.unity3d.com/Manual/ShaderTut1.html
根据这个,你可以添加一些类似的东西

SetTexture [_MainTex] {
    // some properties
}

所以以类似的方式设置颜色。(很抱歉,我还没有使用这样结构的着色器,只有顶点/片段着色器,所以你必须尝试它是否有效和/或阅读unity提供的示例,或者等待更有专业知识的人的另一个答案:)

正如xyLe_在他的帖子中所建议的,在Pass{}块中,我添加了以下代码,它起了作用:

  SetTexture [_MainTex] {
            constantColor [_Color]
            Combine texture * primary DOUBLE, texture * constant
        }

相关内容

  • 没有找到相关文章

最新更新