2016-06-10 299 views
7

我对着色器相当陌生,并且一直在寻找Unity着色器属性的完整列表。我还没有找到任何这样的文件。我发现的是SL-Properties。我在哪里可以找到属性及其功能的完整列表?如何获取Unity着色器属性的完整列表

UPDATE

一个示例在SL-Properties给出示出了用于水着色器即_WaveScale_Fresnel_BumpMap等属性的列表。了解这些特定属性可以更容易地找到解决方案。我最近尝试编写类似于笔画的东西,然后才发现以下属性。

fixed _Stroke; 
half4 _StrokeColor; 
+0

我找不到获取特定Shader属性列表的方法......拼命改变我的素材的BlendOp ... – Domi

回答

2

Unity拥有自己的着色语法ShaderLab

关于它的所有必要信息都可以在website上找到。
至于属性,看看这个link

由于nvidia是not supporting CG,最新的统一版本使用HLSL编译器实际编译着色器,并将结果字节码转换为GLSL。 CG着色器代码继续工作大部分不变。如今,您可以利用现代着色器功能,如计算着色器和曲面细分,CG不支持,使用HLSL语法。

例如,这些着色器属性:

_MyColor ("Some Color", Color) = (1,1,1,1) 
_MyVector ("Some Vector", Vector) = (0,0,0,0) 
_MyRange ("My Range", Range (0, 1)) = 1 
_MyFloat ("My float", Float) = 0.5 
_MyInt ("My Int", int) = 1 
_MyTexture2D ("Texture2D", 2D) = "white" {} 
_MyTexture3D ("Texture3D", 3D) = "white" {} 
_MyCubemap ("Cubemap", CUBE) = "" {} 

将被宣布为在CG/HLSL代码访问为:

fixed4 _MyColor; 
float4 _MyVector; 
float _MyRange; 
float _MyFloat; 
int _MyInt; 
sampler2D _MyTexture2D; 
sampler3D _MyTexture3D; 
samplerCUBE _MyCubemap; 


属性类型ShaderLab地图到CG/HLSL可变类型如下:

•颜色和矢量属性映射到float4,half4fixed4变量。
•范围和浮动属性映射到浮动,一半固定变量。
•纹理属性映射到sampler2D用于规则(2D)纹理的变量。
•立方图映射到samplerCUBE
•三维纹理映射到sampler3D

+0

我刚更新了问题 – Nullititiousness

+0

刚刚添加了更多信息。 – Hamid

2

Unity中着色器的属性只是引擎可见的公共变量,因为Cg着色器被包装到ShaderLab程序中。

你可以看到在统一着色器的结构本演示Andy Touchhttps://www.youtube.com/watch?v=zr1zQpdYG1Q&t=7m36s

所以,当你看到 fixed _Stroke; half4 _StrokeColor; 在后面的代码,它只是被使用CG程序和绑定的实际变量到这些属性。

检查相邻的Unity docs section以了解这些属性如何映射到着色器变量。

+0

我刚更新了问题 – Nullititiousness

+0

我刚更新了答案:) – Skyblade