当前位置:   article > 正文

Unity中ShaderLab的基本代码结构与常用语法的归纳整理_shader category

shader category

Unity中ShaderLab的基本代码结构与常用语法的归纳整理

Shader 是着色器文件的根命令,每个shader文件有且只有一个 Shader
Shader 指定当对象的材质使用此着色器时如何渲染此类对象。

Shader整体结构

Shader "<name>"
{
   
    <optional: Material properties>
    <One or more SubShader definitions>
    <optional: custom editor>
    <optional: fallback>
}
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8

示例

Shader "Examples/ShaderSyntax"
{
   
    CustomEditor = "ExampleCustomEditor"

    Properties
    {
   
        // 此处是材质属性声明
    }
    SubShader
    {
   
        // 此处是定义子着色器的其余代码

        Pass
        {
   
           // 此处是定义通道的代码
        }
    }

    Fallback "ExampleFallbackShader"
}
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
  • 13
  • 14
  • 15
  • 16
  • 17
  • 18
  • 19
  • 20
  • 21
  • 22
  • 23
  • 24

此示例代码演示 Shader 对象的基本语法和结构。示例 Shader 对象有一个包含单个通道的 SubShader。它定义材质属性和一个 Fallback。
而Properties、SubShader、Pass、CustomEditor和Fallback在后文会解释。


属性/Properties

典型的属性包括对象颜色、纹理或者着色器要使用的任意值。

着色器中声明的所有属性都会显示在 Unity 中的材质检视面板中。

属性的代码块:

Properties
{
   
    <Material property declaration>
    <Material property declaration>
}
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6

定义属性代码块,Properties 代码块可以包含任意数量的材质属性声明。

材质属性声明

所有材质属性声明都遵循以下基本格式:

[optional: attribute] _name("display text in Inspector", type name) = default value
  • 1
数字和滑动条
_name ("display name", Range (min, max)) = number
_name ("display name", Float) = number
_name 
  • 1
  • 2
声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/2023面试高手/article/detail/107643
推荐阅读
相关标签
  

闽ICP备14008679号