自学内容网 自学内容网

Unity-Shader-Properties

属性简介

Unity-Shader简介中有提到,在Properties中定义属性,代码后无需加分号

属性类型

1、非图片型

1)Color

格式:

_Color ("Color", Color) = (1,1,1,1)

无需多言 

2)Int

格式:

_Int ("Int", Int) = 1

这里的Int类型i为大写 

3)Float

格式:

_Float ("Float", Float) = 3.4

F为大写,shader代码中并没有double类型,所以并不需要在值后面加f以示区别 

4)Vector

格式:

_Vector ("Vector", Vector) = (1,1,2,4)

V为大写,默认为四维向量 

5)Range

格式:

_Range ("Range", Range(0,4)) = 2.1

本质上为Float,通过Range(min,max)限定范围,左闭右闭。

在SubShader的CG代码块中统一用float,float2,float3,float4进行初始化(实例化)

float均可用half,fixed进行替换(只有所用空间大小不同)

float:32位

half:16位   值大致为: -6万~6万

fixed:11位  值: -2~2(一般用于Color,Color的每一位范围都是0~1,用fixed可以节约显存)

例如_Color变量的初始化:(在代码块中需要添加分号)

float4 _Color;

2、图片类型

2D、Cube、3D格式均相同,下面以2D为例:

 _2D("2D", 2D) = "white" {}

初值中“颜色”表示如果没有在unity面板中选择相应的图片,则默认为该颜色的纯色图片。

2D为2维平面纹理贴图,Cube为立方体贴图,3D为3维立体纹理贴图,这里不详细介绍

在SubShader的CG代码块中统一用sampler2D,samplerCube,sampler3D进行初始化(实例化)

例如_2D变量的初始化:(在代码块中需要添加分号)

sampler2D _2D;


原文地址:https://blog.csdn.net/2303_76262050/article/details/142851475

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