shaderlab 关键点记录

1.C#获取着色器标签的接口

可以使用 Material.GetTag API 从 C# 脚本中读取子着色器标签,

2.常用的标签

subshader的标签

"RenderPipeline" = "[name]" //向 Unity 告知此子着色器是否与 URP 或 HDRP 兼容。

值:UniversalRenderPipeline //此子着色器仅与 URP 兼容。

值:HighDefinitionRenderPipeline //此子着色器仅与 HDRP 兼容。

标签未声明:此子着色器与 URP 和 HDRP 不兼容。


pass标签

"Queue" = "[queue name]" pass在name这个渲染队列

"Queue" = "[queue name] + [offset]"在相对于命名队列的给定偏移处使用未命名队列。

这种用法十分有用的一种示例情况是透明的水,它应该在不透明对象之后绘制,但是在透明对象之前绘制。

值:Background 背景渲染队列。

Geometry 几何体渲染队列。

AlphaTest AlphaTest 渲染队列。

Transparent 指定透明渲染队列。

Overlay 覆盖渲染队列。

要是需要动态设置渲染队列,可以在C#中使用下面的枚举和api进行设置

在 C# 脚本中,可以通过使用 Rendering.RenderQueue 枚举设置 Material.renderQueue 的值


RenderType标签

"RenderType" = "[renderType]" 渲染类型 这个标签标识具有匹配 RenderType 标签值的子着色器

内置着色器中的着色器替换标签:

Opaque:大部分着色器(法线自发光反射和地形着色器)。

Transparent:大部分半透明着色器(透明、粒子、字体和地形附加通道着色器)。

TransparentCutout:遮罩透明度着色器(透明镂空、两个通道植被着色器)。

Background:天空盒着色器。

Overlay:光环、光晕着色器。

TreeOpaque:地形引擎树皮。

TreeTransparentCutout:地形引擎树叶。

TreeBillboard:地形引擎公告牌树。

Grass:地形引擎草。

GrassBillboard:地形引擎公告牌草。深度

这个标签是子着色器的标签


ForceNoShadowCasting 标签

"ForceNoShadowCasting" = "[state]" 标签阻止子着色器中的几何体投射(有时是接收)阴影。确切行为取决于渲染管线和渲染路径。如果使用着色器替换,但是不希望从其他子着色器继承阴影通道,这可能非常有用。

值: True

Unity 阻止此子着色器中的几何体投射阴影。在内置渲染管线中,对于前向、旧版顶点光照或旧版延迟渲染路径,Unity 还会阻止此子着色器中的几何体接收阴影。在 HDRP 中,这不会阻止几何体投射接触阴影。

False

Unity 不会阻止此子着色器中的几何体投射或接收阴影。这是默认值。


DisableBatching 标签

"DisableBatching" = "[state]" Unity 是否对使用此子着色器的所有几何体阻止动态批处理。

值:

True :Unity 对使用此子着色器的几何体阻止动态批处理。

False :Unity 不会对使用此子着色器的几何体阻止动态批处理。这是默认值。

LODFading:对于属于 Fade Mode 值不为 None 的 LODGroup 一部分的所有几何体,Unity 会阻止动态批处理。否则,Unity 不会阻止动态批处理。


IgnoreProjector 标签

"IgnoreProjector" = "[state]" Unity 在渲染此几何体时是否忽略投影器。

值:

True:Unity 在渲染此几何体时忽略投影器。

False:Unity 在渲染此几何体时不会忽略投影器。这是默认值。


PreviewType 标签

PreviewType 子着色器 Tag 告知 Unity 编辑器如何在材质 Inspector 中显示使用此子着色器的材质。

"PreviewType" = "[shape]" Unity 编辑器用于显示使用此子着色器的材质预览的形状。

值;

球体:在球体上显示材质。这是默认值。

平面 (Plane):在平面上显示材质。

Skybox:在天空盒上显示材质。


CanUseSpriteAtlas 标签

在使用 Legacy Sprite Packer 的项目中使用此子着色器标签可警告用户着色器依赖于原始纹理坐标,因此不应将其纹理打包到图集中。

"CanUseSpriteAtlas" = "[state]"使用此子着色器的精灵是否与 Legacy Sprite Packer 兼容。

值:

True:使用此子着色器的精灵与 Legacy Sprite Packer 兼容。这是默认值。

False:使用此子着色器的精灵与 Legacy Sprite Packer 不兼容。

CanUseSpriteAtlas 值为 False 的子着色器与带有 Legacy Sprite Packer 打包标签的精灵一起使用时,Unity 会在 Inspector 中显示错误消息。

相关推荐
土了个豆子的7 小时前
unity中的动画混合树
unity·游戏引擎
奔跑的犀牛先生10 小时前
unity学习26:用Input接口去监测: 鼠标,键盘,虚拟轴,虚拟按键
unity
Dr.勿忘20 小时前
C#面试常考随笔8:using关键字有哪些用法?
开发语言·unity·面试·c#·游戏引擎
存储服务专家StorageExpert21 小时前
答疑解惑:如何监控EMC unity存储系统磁盘重构rebuild进度
运维·unity·存储维护·emc存储
追逐梦想永不停1 天前
Unity实现按键设置功能代码
unity
我命由我123452 天前
游戏引擎 Unity - Unity 下载与安装
c语言·开发语言·c++·后端·unity·c#·游戏引擎
车载诊断技术2 天前
车载软件架构 --- 基于AUTOSAR软件架构的ECU开发流程小白篇
网络·unity·架构·汽车·电子电器框架·车载充电器(obc)
我命由我123452 天前
游戏引擎 Unity - Unity 启动(下载 Unity Editor、生成 Unity Personal Edition 许可证)
c语言·c++·后端·unity·c#·游戏引擎·ue4
我命由我123452 天前
游戏开发领域 - 游戏引擎 UE 与 Unity
开发语言·c++·unity·c#·游戏引擎·unreal engine·unreal engine 4
一个一定要撑住的学习者2 天前
Day29(补)-【AI思考】-精准突围策略——从“时间贫困“到“效率自由“的逆袭方案
人工智能·unity·游戏引擎