UNITY3D shader学习心得<二> subShader

关键字类型对应Cg类型
Float浮点数float_MyFloat (“My float”, Float) = 0.5
Range浮点数 (在指定范围内)float_MyRange (“My Range”, Range(0.01, 0.5)) = 0.1
Color浮点四元组float4_MyColor (“Some Color”, Color) = (1,1,1,1)
Vector浮点四元组float4_MyVector(“Some Vector”,Vector) = (1,1,1,1)
2D2的阶数大小的贴图sampler2D_MyTexture (“Texture”, 2D) = “white” {}
Rect非2的阶数大小的贴图sampler2D_MyRect(“My Rect”, Rect) = “white” {}
CUBECubeMapsamplerCUBE_MyCubemap (“Cubemap”, CUBE) = “” {}

在CG里面类型必须要小写


Shader至少要包含一个subShader子着色器,多个子着色器,会从上往下匹配显卡性能,只执行其中一个,如果显卡很差,则会FallBack回滚执行指定的shader



标签:硬件将通过判定这些标签来决定什么时候调用该着色器

Tags { "RenderType"="Opaque"  "Queue"="Transparent" "ForceNoShadowCasting"="True"  "IgnoreProjector"="True"


ForceNoShadowCasting 标签    是否不产生阴影   默认False

IgnoreProjector标签   是否不被Projectors影 响   默认False


RenderType 标签  渲染类型

Opaque :不透明

Transparent :含有透明的  粒子,字体

TransparentCutout:透明遮罩

Background:天空

Overlay :GUI 太阳光晕等效果

TreeOpaque:树干不透明

TreeTransparentCutout:树叶透明

TreeBillboard:树的Billboard 用2D的贴图替代三维物体来渲染

Grass:草

GrassBillboard:草的Billboard




Queue 标签     渲染顺序队列(预定义的值本质上是整数,数值越小越早渲染)


Background(1000) : 最早被调用的渲染,用来渲染天空盒或者背景  

Geometry (2000):(默认值)用来渲染非透明物体

AlphaTest (2450): 用来渲染经过Alpha Test的像素,单独为AlphaTest设定一个Queue是出于对效率的考虑

Transparent(3000) : 以从后往前的顺序渲染透明物体

Overlay(4000) :用来渲染叠加的效果,是渲染的最后阶段(比如镜头光晕等特效)


设置剔除模式 

 Cull   Back  (默认背面剔除)

 Cull   Front  正面剔除

 Cull   Off      不剔除

设置颜色遮罩    

ColorMask  RGBA    保留全部通道

ColorMask  RGB      保留RGB

ColorMask  R            保留R

R红色 G绿色 B蓝色 A Alpha通道



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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

我是重阳

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值