Shader 笔记(Shader Lab框架+Subshader相关)

本文介绍了Unity Shader中关于纹理属性、渲染顺序、混合模式及雾效的基本概念和使用技巧,帮助开发者理解如何通过Shader调整游戏画面效果。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

  • 属性类型:


2D纹理属性默认值一般定义为white,因为white值为1,与其他效果叠加时不会改变其他效果。

纹理属性后的大括号包括:


2D纹理属性和长方形纹理属性的区别:2D纹理属性在导出打包时会把贴图变成正方形,2的次方,长方形不会,可以是任何比例的贴图。

立方体贴图:做反射、高光

  • 属性代码举例:


  • 多个Subshader的作用是为了应对不同的硬件。每一个Subshader至少要有一个Pass,Pass里是一个完整的渲染流水线。

多个Pass的作用?每一个Pass都会执行

FallBack语法格式:


子着色器定义了一个渲染通道的列表,并可选是否为所有通道初始化所需要的通用状态。

  • Tags:

  1. Queue tag:渲染顺序


叠加效果比如镜头光晕等。  上面四种选择对应渲染顺序。

"Queue"="Transparent+1"  指的是渲染顺序在透明物体之后(数值越小越早渲染?)

2.RenderType tag  渲染类型 便于shader切换,


半透明:云彩 水  树叶  地形附加通道  地上的草地 半透明

透明遮罩:与阿尔法通道联系

TreeBillboard :用2D面片替换3维物体,面片始终对着摄像机,节省资源

ForceNoShadowCasting tag  是否产生阴影

IgnoreProjector tag 忽略投影  (和上一个区别是啥?)

(这两个一般不写 写了的话值都是true)

Tags示例:


  • CommonState 公共状态:针对所有Pass所能产生的作用


  1. Cull Back  背面剔除  Cull  Front 正面剔除    off   双面显示
  2. Ztest   来测试几何体远近来判断是否渲染    

Less 当前像素Z值小于缓存区Z值时,被渲染。

Greater     大于缓存区Z值时,被渲染

LEqual(默认)    小于等于

GEqual            大于等于

Equal              等于

NotEqual        不等

Always        一直被显示

AlphaTest  用来判断是否开启alpha测试  暂时的理解是根据像素的z值来判断是否开启alpha

(没有blend混合时 速度会比较快)

3.Blend  


alpha混合原理:


比如一个小朋友站在玻璃后的效果,原理是小朋友的像素颜色值先渲染出来存在buffer中,然后再透过玻璃  根据上述公式来计算混合后的结果。

4.fog  雾参数

以上都是写在公共状态 Common里(Pass里也可以写)。

Offset 当两个物体完全重叠时。     当Z深度小于一定深度时  进行偏移。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值