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 中显示错误消息。

相关推荐
小贺儿开发10 小时前
Unity3D 智慧城市管理平台
数据库·人工智能·unity·智慧城市·数据可视化
June bug1 天前
【领域知识】休闲游戏一次发版全流程:Google Play + Apple App Store
unity
星夜泊客1 天前
C# 基础:为什么类可以在静态方法中创建自己的实例?
开发语言·经验分享·笔记·unity·c#·游戏引擎
dzj20211 天前
PointerEnter、PointerExit、PointerDown、PointerUp——鼠标点击物体,则开始旋转,鼠标离开或者松开物体,则停止旋转
unity·pointerdown·pointerup
心前阳光1 天前
Unity 模拟父子关系
android·unity·游戏引擎
在路上看风景1 天前
26. Mipmap
unity
咸鱼永不翻身1 天前
Unity视频资源压缩详解
unity·游戏引擎·音视频
在路上看风景1 天前
4.2 OverDraw
unity
在路上看风景1 天前
1.10 CDN缓存
unity
ellis19702 天前
Unity插件SafeArea Helper适配异形屏详解
unity