尧图建网站 尧图建网站 YAOTU WEB BUILD 免费咨询
ARTICLE DETAIL

资讯详情

深耕网站建设与建站编程的一线实战洞察。

用Shader Graph定制Driven Decals:子图与12个Shader属性的贴花着色器开发完全手册

用Shader Graph定制Driven Decals:子图与12个Shader属性的贴花着色器开发完全手册 用Shader Graph定制Driven Decals子图与12个Shader属性的贴花着色器开发完全手册【免费下载链接】driven-decalsA mesh-based PBR decal system for Unitys universal render pipeline.项目地址: https://gitcode.com/gh_mirrors/dr/driven-decalsDriven Decals是一款面向 Unity 通用渲染管线URP的PBR 贴花系统它把贴图投影到场景网格上生成一块真正的投影网格再交给Shader Graph自定义着色器来渲染。本文带你读懂项目中 8 个贴花着色器与 5 个子图SubGraph的职责并给出 12 个 Shader 属性的完整速查表帮助你快速定制属于自己的 Driven Decals 贴花材质 。为什么贴花系统离不开 Shader GraphDriven Decals 的工作方式是两步走MeshProjection 投影把贴花的 UV 信息打到目标网格上生成投影网格MeshProjection.cs着色器渲染由材质上的 Shader Graph 着色器消费这些 UV、边界、淡出等参数完成最终的 PBR 渲染。因此只要你的自定义着色器能正确处理这套参数就能自由控制贴花的最终外观。下面是官方演示贴花让圆柱体呈现出开裂混凝土的效果裂缝下还露出亮色图案。快速安装获取 Driven Decals 资产包打开 Unity2019.3.0f6 / URP 7.2.1进入Window → Package Manager点击左上角选择Add package from git URL...粘贴仓库地址并添加git clone https://gitcode.com/gh_mirrors/dr/driven-decals安装完成后即可在项目窗口看到 Driven Decals。全部内置着色器位于 Runtime/Shaders/随包免费使用MIT 协议详见 package.json。资产清单8 个贴花 Shader 与 5 个子图打开 Runtime/Shaders/ 目录你会看到按光照复杂度分层的一组成品着色器都可以直接复制到 Inspector 的 Shader 下拉框中使用输入decal可过滤着色器适用场景文件Decal Diffuse仅漫反射 全局 Metallic/Smoothness/AmbientDecal Diffuse.shadergraphDecal Diffuse Normal漫反射 法线贴图Decal Diffuse Normal.shadergraphDecal Diffuse Emissive漫反射 自发光Decal Diffuse Emissive.shadergraphDecal Diffuse Unlit无光照、纯贴图Decal Diffuse Unlit.shadergraphDecal Full PBR完整 PBRMSO 法线Decal Full PBR.shadergraphDecal PBR Metallic Unity StyleUnity 风格 Metallic 工作流Decal PBR Metallic Unity Style.shadergraphDecal PBR Specular Unity StyleUnity 风格 Specular 工作流Decal PBR Specular Unity Style.shadergraphDecal Untextured Unlit纯色贴花Decal Untextured Unlit.shadergraph配合它们工作的还有5 个子图.shadersubgraph这是定制时的核心积木Decal UV.shadersubgraph—— 处理 UV 的第一关按_Bounds采样正确的纹贴区域并自动完成_FlipU/_FlipV翻转。切记不要直接使用网格自带的 UV0 通道必须先经过它。Fade near z bounds.shadersubgraph—— 根据_ZFadeStart让贴花在接近自身 z 边界时柔和淡出避免生硬截断。Fade by angle.shadersubgraph—— 根据_MinAngleFadeRadians/_MaxAngleFadeRadians对大角度变形的区域做淡出。Flip normal.shadersubgraph—— 翻转法线用于修正贴花在特定朝向下的光照异常。Offset in viewspace.shadersubgraph—— 按_OffsetViewZ把贴花顶点向相机方向偏移一小段距离防止 z-fighting所有内置着色器都使用了它。官方示例贴花紧固件就是一套完整的 PBR 纹理组DiffuseAlpha MSO Normal可直接观察各贴图通道的渲染效果![Driven Decals 贴花纹理组示例紧固件 DiffuseAlpha 漫反射贴图](https://raw.gitcode.com/gh_mirrors/dr/driven-decals/raw/d334d4b6aa4e080a9cf911eab591cbcebd59e0e7/Runtime/Sample Decals/Fasteners/Material/fasteners - DiffuseAlpha.png?utm_sourcegitcode_repo_files)5 个子图的实际效果z 淡出与角度淡出角度淡出Angle Fade是最能体现子图价值的功能——当贴花投影到与视角夹角很大的曲面时边缘会严重拉伸变形Fade by angle 会按角度区间把它淡掉。两个参数差得越多过渡越柔和核心速查表12 个 Shader 属性定制着色器时Driven Decals 会按名称在材质上查找以下属性DecalAsset.cs 的 Inspector 会实时提示缺失项。所有内置着色器都包含这 12 个属性#属性类型级别作用1_DiffuseAlphaTexture✅ 必需漫反射Alpha用于 DecalAsset 预览图与缩略图生成2_BoundsVector4✅ 必需定义贴花在纹理上的矩形区域uMin, vMin, uMax, vMax3_OpacityFloat 0–1推荐整体不透明度运行时可经 PropertyBlock 修改4_FlipUBool推荐水平翻转纹理区域Decal UV 子图可直接消费5_FlipVBool推荐垂直翻转纹理区域6_ZFadeStartFloat 0–1推荐靠近 z 边界时的淡出强度由 Fade near z bounds 实现7_MinAngleFadeRadiansFloat推荐角度淡出下限弧度8_MaxAngleFadeRadiansFloat推荐角度淡出上限与下限之差决定过渡软硬9_OffsetViewZFloat推荐视空间向相机的偏移量防 z-fighting10_MetallicFloat可选金属度PBR 着色器11_SmoothnessFloat可选光滑度PBR 着色器12_AmbientFloat可选环境遮蔽强度PBR 着色器⚠️ 必需属性缺失时贴花系统无法工作推荐属性缺失时对应功能淡出、翻转会失效但整体仍可运行。高级着色器还会扩展更多属性例如 Decal Full PBR 增加了_MetallicSmoothnessOcclusion合并贴图与三个 MultiplierDecal PBR Specular Unity Style 则引入_SpecularSmoothness、_EmissionMap、_OcclusionMap等按需参考即可。三步上手复制、改造、验证第 1 步复制模板。打开 Decal Diffuse Normal.shadergraph官方推荐的定制起点另存为自定义 Shader Graph。第 2 步保留关键节点。确认图中包含Decal UV子图接在 UV 采样前与Offset in viewspace子图接在顶点位移上再按需要挂接 Fade 类子图、增删贴图与光照节点。第 3 步用 DecalAsset 验证。创建材质并指定新着色器然后在 DecalAsset Inspector 中拖入材质——若属性缺失会列出清单贴图预览正常即代表兼容 ✅。最后把贴花对象Hierarchy 右键3D Object → Driven Decal的灰色包围盒对准目标网格点击Project mesh即可看到投影结果例如把贴花精确打到模板场景的安全帽上常见问题与最佳实践不要用 Legacy 的Decal着色器Legacy Shaders/Decal与本系统不兼容DecalOverlayBounds、DecalThumbnail仅供编辑器 Inspector 使用Editor/Resources/Shaders/。远距离/掠射角出现闪烁调大_OffsetViewZ或修改Offset in viewspace子图的偏移算法。运行时切换外观修改_Opacity、切换 DecalAsset 都很廉价改动后调用贴花上的SetupMaterialPropertyBlock()生效参考 DecalSpawner.cs 示例脚本。投影完成后贴花即成普通网格不会跟随目标变形不适合骨骼动画目标运行时动态投影会造成掉帧适合静态场景细节。完整属性说明与进阶技巧见官方文档 Documentation~/DrivenDecals.md 的Custom Shaders章节。小结Driven Decals 把投影与渲染解耦网格投影负责形状Shader Graph 着色器负责外观。吃透 5 个子图Decal UV、两个 Fade、Flip normal、Offset in viewspace和 12 个属性后你就可以复制任意内置着色器几分钟内造出专属的 PBR 贴花材质 。【免费下载链接】driven-decalsA mesh-based PBR decal system for Unitys universal render pipeline.项目地址: https://gitcode.com/gh_mirrors/dr/driven-decals创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考
返回列表