第三章 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

  • 19
    点赞
  • 25
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值