如何获取Unity着色器属性的完整列表

Nul*_*ess 8 shader cg unity-game-engine unity5

我是着色器的新手,并一直在寻找Unity着色器属性的完整列表.我还没有找到任何此类文件.我发现的是SL-Properties.我在哪里可以找到完整的属性列表及其功能?

UPDATE

一个例子中给出SL-属性示出用于水着色即,属性的列表_WaveScale,_Fresnel,_BumpMap等.了解这些特定属性可以更容易地找到解决方案.在我发现以下属性之前,我最近尝试编写类似于笔画的东西.

fixed _Stroke;
half4 _StrokeColor;  
Run Code Online (Sandbox Code Playgroud)

Ham*_*mid 4

Unity 有自己的着色器语法,称为ShaderLab

\n\n

有关它的所有必要信息都可以在此网站上找到。\n
至于属性,请查看此链接

\n\n

由于 nvidia不再支持CG,因此最新的 Unity 版本实际上使用HLSL编译器编译着色器,并将生成的字节码转换为 GLSL。\nCG 着色器代码继续工作,基本保持不变。现在,您可以使用 HLSL 语法来利用 CG 不支持的现代着色器功能,例如计算着色器和曲面细分。

\n\n

例如这些着色器属性:

\n\n
_MyColor ("Some Color", Color) = (1,1,1,1) \n_MyVector ("Some Vector", Vector) = (0,0,0,0)\n_MyRange ("My Range", Range (0, 1)) = 1\n_MyFloat ("My float", Float) = 0.5 \n_MyInt ("My Int", int) = 1 \n_MyTexture2D ("Texture2D", 2D) = "white" {} \n_MyTexture3D ("Texture3D", 3D) = "white" {}\n_MyCubemap ("Cubemap", CUBE) = "" {}\n
Run Code Online (Sandbox Code Playgroud)\n\n

将在 Cg/HLSL 代码中声明为访问:

\n\n
fixed4 _MyColor;\nfloat4 _MyVector;\nfloat _MyRange;\nfloat _MyFloat; \nint _MyInt;\nsampler2D _MyTexture2D;\nsampler3D _MyTexture3D;\nsamplerCUBE _MyCubemap;\n
Run Code Online (Sandbox Code Playgroud)\n\n


ShaderLab 中的属性类型以这种方式映射到 Cg/HLSL 变量类型:

\n\n

\xe2\x80\xa2 Color 和 Vector 属性映射到float4half4fixed4变量。\n
\xe2\x80\xa2 Range 和 Float 属性映射到floathalffixed变量。\n
\xe2\x80\xa2 纹理属性映射到常规(2D)纹理的sampler2D
变量。\n \xe2\x80\xa2 立方体贴图映射到samplerCUBE。\n
\xe2\x80\xa2 3D纹理映射到sampler3D

\n

  • 您还没有真正回答这个问题:在哪里可以找到着色器属性的完整列表? (3认同)