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

相关推荐
小拉达不是臭老鼠1 小时前
Unity数据持久化_Json
学习·unity
heimeiyingwang1 小时前
【架构实战】订单系统架构设计:电商核心系统的演进
unity·架构·系统架构
元气少女小圆丶1 小时前
SenseGlove Nova 2+Unity开发笔记3
笔记·unity·游戏引擎
WMX10122 小时前
Unity-shader学习记录
学习·unity·游戏引擎
WMX10122 小时前
Hololens 2 上部署 Unity+MRTK 项目_模型着色
unity·游戏引擎·hololens
游乐码2 小时前
unity基础(八)协程
游戏·unity·c#·游戏引擎
玉夏18 小时前
【Shader基础】ShaderLab 语法
unity·游戏引擎
WarPigs1 天前
Unity部署MessagePack
unity·游戏引擎
☆平常心☆1 天前
Unity插件MagicLightmapSwitcher修改灯光强度大于100
unity·游戏引擎
平行云1 天前
实时云渲染预启动技术解析:UE数字孪生应用的延迟优化机制(二)
linux·unity·ue5·webgl·实时云渲染·云桌面·像素流