自学内容网 自学内容网

第三章 Unity Shader基础

Unity Shader 概述

材质和Unity Shader

一个最常见的流程是:
(1)创建一个材质

(2)创建一个Unity Shader,并把它赋给上一步中创建的材质

(3)把材质赋给要渲染的对象

(4)在材质面板中调整Unity Shader 的属性,以得到满意的效果

Unity Shader 定义了渲染所需的各种代码、属性、指令,而材质则允许我们调节这些属性,并将其最终赋给相应的模型。

Unity 中的材质

unity中的材质需要结合一个GameObject 的 Mesh 或者 Particle Systems 组件来工作。它决定了我们的游戏对象看起来是什么样子的(需要Unity Shader配合)。

Unity 中的Shader

本质是一个文本文件。

Unity Shader 的基础:ShaderLab

ShaderLab 定义了要显示一个材质所需的所有东西,而不仅仅是着色器代码。

Unity Shader基础结构:

Shader"ShaderName"{
  Properties{
  //属性
  }
  SubShader{
    //显卡A使用的子着色器
  }
  SubShader{
    //显卡B使用的子着色器
  }
  Fallback"VertexLit"
}
  

Unity Shader的结构

给 Shader 起个名字

每个Unity Shader 文件的第一行都需要通过Shader语义来指定该Unity Shader的名字。通过在字符串中添加斜杠("/"),可以控制Unity Shader 在材质面板中出现的位置。

Properties:材质和Unity Shader的桥梁

Properties 语义块中包含了一系列属性,这些属性将会出现在材质面板中。

Properties{
  Name("display name", PropertyType) = DefaultValue
  }

声明这些属性是为了在材质面板中能够方便地调整各种材质属性。如果我们需要在Shader中访问他们,就需要使用每个属性的名字(Name)。这些属性名字由一个下划线开始显示的名字(display name)是出现在材质面板上的名字。需要为每个属性指定它的类型(PropertyType)。我们还需要为每个属性指定一个默认值

对于 IntFloatRange


原文地址:https://blog.csdn.net/s178435865/article/details/137800409

免责声明:本站文章内容转载自网络资源,如本站内容侵犯了原著者的合法权益,可联系本站删除。更多内容请关注自学内容网(zxcms.com)!