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

标签 shader unity-game-engine cg

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

更新

SL-Properties 中给出了一个例子显示水着色器的属性列表,即 _WaveScale_Fresnel_BumpMap 等。了解这些特定属性可以更轻松地找到解决方案。在我发现以下属性之前,我最近尝试编写类似于笔划的内容。

fixed _Stroke;
half4 _StrokeColor;  

最佳答案

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

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

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

例如这些着色器属性:

_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 变量类型:

• 颜色和矢量属性映射到float4half4fixed4 变量。
• 范围和浮点属性映射到浮点固定变量。
• 纹理属性映射到常规 (2D) 纹理的 sampler2D 变量。
• 立方体贴图映射到samplerCUBE
• 3D 纹理映射到 sampler3D

关于shader - 如何获取 Unity 着色器属性的完整列表,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/37747135/

相关文章:

c++ - 为什么我的 GLSL 转换没有渲染?

c++ opengl我如何制作着色器文件并在主cpp中使用它

ios - OpenGL ES2 : syntax error when using "layout" keyword in vertex shader(iOS)

unity-game-engine - Unity自定义天空盒就像Unity天空盒一样

unity3d - 如何编写尊重排序层的 Unity 着色器?

c++ - 在 C++ 中计算切线空间

opengl - 使用 GPU 着色器错误进行失真校正

c# - 在 Unity3D 游戏脚本中使用带有 PIP 包的 Python 脚本

android - Unity AndroidSdkVersions.AndroidApiLevel29 缺失

unity-game-engine - UnityEditor 增加字体大小