Unity Shader

Unity5中的Shader:

Standard Suface Shader,标准光照类型

Unlit Shader,不包含光照(但包含雾效)的顶点/片元着色器

Image Effect Shader,屏幕后期处理效果

Compute Shader,用Gpu的并行性来计算一些Cpu较为吃力的运算

 

Shader结构

名字: Shader “Custom/MyShader”

属性: Properties{

            Name(“display name”,PropertyType)=DefaultValue

             //更多属性

}

Name通常用下滑线开始

Display出现在材质面板上的名字

PropertyType指定类型

属性类型

默认值的定义语法

例子

Int

number

_Int(“Int”,Int)=2

Float

number

_Float(“Float”,Float)=1.5

Range(min max)

number

_Range(“Range”,Range(0.0,5.0))=3.0

Color

(number,number,number,number)

_Color(“Color”,Color)=(1,1,1,1)

Vector

(number,number,number,number)

_Vector(“Vector”,Vector)=(2,3,6,1)

2D

“defaulttexture”{}

_2D(“2D”,2D)=“”{}

Cube

“defaulttexture”{}

_Cube(“Cube”,Cube)=”white”{}

3D

“defaulttexture”{}

_3D(“3D”,3D)=”black”{}

SubShader

 SubShader{

           //可选的

[Tags]

//可选的

[RenderSetup]

Pass{

}

//Other Passes

}

状态名称

设置指令

解释

Cull

Cull Back|Front|Off

设置剔除模式:剔除背面/正面/关闭剔除

ZTest

ZTest Less Greater|LEual|GEqual|Equal|NotEqual|Always

设置深度测试时使用的函数

ZWrite

ZWrite On|Off

开启/关闭深度写入

Blend

Blend SrcFactor DstFactor

开启并设置混合模式

Tags{“TagName1”=”Value1””TagName2”=”Value2”}

标签类型

说明

例子

Queue

控制渲染顺序

Tags{“Queue”=”Transparent”}

RenderType

对着色器进行分类,可用于着色器替换

Tags{“RenderType”=”Opaque”}

DisableBatching

指明SubShader是否使用批处理

Tags{“DisableBatching”=”True”}

ForceNoShaderCasting

是否投射阴影

Tags{“ForceNoShaderCasting”=”True”}

IgoreProjecotor

是否受Projector的影响

Tags{“IgoreProjector”=”True”}

CanUseSpriteAtlas

当SubShader用于Sprite时false

Tags{“CanUseSprteAtlas”=”False”}

PreviewType

预览该材质,默认为球形

Tags{“PreviewType”=“Plane”}

Pass语义块:

Pass{

[Name]

[Tags]

[RenderSetup]

}

Name“MyPassName”

标签

标签类型

说明

例子

LightMode

定义Pass在流水线中的角色

Tags{“LightMode”=“ForwardBase”}

RequireOptions

指定满足条件时渲染Pass

Tags{“RequireOptions”=”SoftVegetation”}

UsePass 调用其它UnityShader中的Pass

Grapass 抓取屏幕并存储在一张纹理中

 

Fallback

 Fallback “name”

//或者

Fallback Off

 

表面着色器

实际上就是顶点/片元着色器,只不过时unity对其进行了更高层次的抽象

顶点/片元着色器

顶点/偏远着色器是写在Pass语义块内,而非SubSubder

固定函数着色器

对于老式设备不支持可编程管线着色器

  • 1
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值