<?xml version="1.0" encoding="utf-8" ?><rss version="2.0"><channel><title><![CDATA[mxwin的博客]]></title><description><![CDATA[]]></description><link>https://blog.youkuaiyun.com/mxwin</link><language>zh-cn</language><generator>https://blog.youkuaiyun.com/</generator><copyright><![CDATA[Copyright &copy; mxwin]]></copyright><item><title><![CDATA[Unity Shader 光线追踪原理与实战案例]]></title><link>https://blog.youkuaiyun.com/mxwin/article/details/167700003</link><guid>https://blog.youkuaiyun.com/mxwin/article/details/167700003</guid><author>mxwin</author><pubDate>Mon, 12 Oct 2026 17:39:37 +0800</pubDate><description><![CDATA[URP17+通过集成DXR/VulkanRT，实现硬件加速光线追踪，支持RTAO、RTR、RTGI、RTS及路径追踪等5大生产级应用。其核心为BVH加速结构与分阶段嵌入式渲染管线，结合半分辨率追踪与NRD去噪，兼顾性能与质量。关键在于灵活选择渲染模式（如Hybrid反射、PathTracing全局光照），并遵循Deferred模式、动体增量更新、去噪必开等最佳实践，使光线追踪成为光栅化的高效视觉补强，显著提升真实感与动态光影表现。]]></description><category></category></item><item><title><![CDATA[Unity Shader 水面 Shader 教程 从 Gerstner 波浪到屏幕折射、焦散、泡沫的完整实现]]></title><link>https://blog.youkuaiyun.com/mxwin/article/details/163413535</link><guid>https://blog.youkuaiyun.com/mxwin/article/details/163413535</guid><author>mxwin</author><pubDate>Sun, 02 Aug 2026 12:10:41 +0800</pubDate><description><![CDATA[本文详细介绍了基于Unity URP的高质量水面Shader实现方案，采用屏幕空间技术实现真实水面效果。Shader包含30+参数，通过7大模块构建完整水面渲染管线： 核心技术： 使用3层Gerstner波算法实现动态波浪效果 屏幕空间折射配合RefractionMask防穿帮 平面反射与Fresnel效果 双纹理Min混合焦散效果 关键设计： 法线贴图双滚动混合产生细腻波纹 深度驱动的水色过渡与吸收效果 岸边特殊着色与高光处理 Simplex噪声+正弦波生成泡沫效果 创新点： 折射后坐标重建确保焦散同步 ]]></description><category></category></item><item><title><![CDATA[Unity Shader exp 函数的算法与渲染应用]]></title><link>https://blog.youkuaiyun.com/mxwin/article/details/162545861</link><guid>https://blog.youkuaiyun.com/mxwin/article/details/162545861</guid><author>mxwin</author><pubDate>Fri, 03 Jul 2026 11:34:23 +0800</pubDate><description><![CDATA[本文深入探讨了指数函数在URP渲染管线中的数学本质与六大实战应用。首先解析了指数函数的数学特性（恒正性、导函数不变性等）及其物理意义，接着分析了GPU上exp指令的实现差异与性能优化建议。重点介绍了指数函数在六个渲染场景中的应用：1）基于物理的指数雾效；2）HDR色调映射的自然衰减；3）Bloom效果的指数模糊优化；4）菲涅尔效果的exp替代方案；5）SDF平滑融合的LogSumExp技巧；6）物理准确的光照衰减模型。文章提供了详细的shader代码实现，并总结出性能优化四原则：优先exp2、钳位输入、查表]]></description><category></category></item><item><title><![CDATA[在 URP 中驾驭 GPU 并行计算之力 Compute Shader ]]></title><link>https://blog.youkuaiyun.com/mxwin/article/details/162541579</link><guid>https://blog.youkuaiyun.com/mxwin/article/details/162541579</guid><author>mxwin</author><pubDate>Fri, 03 Jul 2026 10:18:50 +0800</pubDate><description><![CDATA[更优雅的做法是将 Compute Shader 封装成一个，作为 URP 的渲染 Pass 插入。= null)Compute Shader 是现代 Unity 图形开发中不可或缺的工具。它不是某种"优化技巧"，而是一种架构选择——当你需要处理大规模数据并行计算时，把工作搬到 GPU 上往往是最优解。Compute Shader 的学习曲线确实比普通 Shader 稍陡——你需要理解线程模型、内存层级、同步机制。但一旦掌握，]]></description><category></category></item><item><title><![CDATA[Unity URP Exposure曝光原理与实战应用]]></title><link>https://blog.youkuaiyun.com/mxwin/article/details/162540644</link><guid>https://blog.youkuaiyun.com/mxwin/article/details/162540644</guid><author>mxwin</author><pubDate>Fri, 03 Jul 2026 10:05:43 +0800</pubDate><description><![CDATA[文章摘要： 本文深入解析URP（通用渲染管线）中的曝光控制机制，从人眼仿生原理到逐帧自动适配技术。URP提供三种曝光模式（Fixed/Automatic/AutomaticHistogram），分别适用于固定光照、常规场景和高动态范围场景。重点剖析直方图模式的百分位阈值控制，以及人眼适应（EyeAdaptation）的生理模拟逻辑。结合Volume系统，给出室内外过渡、UI场景等实战配置方案，并分析ACES与Neutral色调映射的差异。最后通过性能数据对比，提出移动端优化建议，强调曝光是画面亮度的&quo]]></description><category></category></item><item><title><![CDATA[Unity URP 平面反射原理详解 Planar Reflection]]></title><link>https://blog.youkuaiyun.com/mxwin/article/details/162144424</link><guid>https://blog.youkuaiyun.com/mxwin/article/details/162144424</guid><author>mxwin</author><pubDate>Sat, 20 Jun 2026 12:26:33 +0800</pubDate><description><![CDATA[平面反射（Planar Reflection）是计算机图形学中模拟光滑平面（如水面、镜面、抛光地面）反射效果的核心技术。它能够实时生成倒影，让场景更加真实和生动。反射矩阵计算：将世界空间中的物体沿反射平面进行镜像翻转反射相机：从镜像视角渲染场景到RenderTexture斜截视锥体：优化反射相机的裁剪平面，避免渲染不必要的区域Shader投影：将反射纹理正确投影到反射平面上平面反射广泛应用于水面效果、镜面反射、抛光地面、冰面反射等需要真实倒影的场景中。]]></description><category></category></item><item><title><![CDATA[Unity Shader 使用裁减空间结合Reversed Z 实现天空盒在NDC远裁面]]></title><link>https://blog.youkuaiyun.com/mxwin/article/details/162142223</link><guid>https://blog.youkuaiyun.com/mxwin/article/details/162142223</guid><author>mxwin</author><pubDate>Sat, 20 Jun 2026 11:24:56 +0800</pubDate><description><![CDATA[因为非 Reversed：想要z/w ≈ 1→Reversed Z：想要z/w ≈ 0→为什么不直接写z = 0或z = w？因为w是动态变化的（每个顶点的w不一样），写固定值z=0会导致z/w = 0，在非 Reversed 模式下反而是最近处，完全反了。必须用w × factor才能正确映射到 NDC 深度。还有哪个环节想深入追问？比如「为什么 Reversed Z 能提高深度精度」或者「透视投影矩阵的 w 分量到底是怎么算出来的」？NDC 是顶点在经过透视除法之后、真正变成屏幕上像素之前的坐标空间。]]></description><category></category></item><item><title><![CDATA[Unity Shader / TA 能力分级清单（初/中/高），对标游戏行业岗位要求]]></title><link>https://blog.youkuaiyun.com/mxwin/article/details/162092660</link><guid>https://blog.youkuaiyun.com/mxwin/article/details/162092660</guid><author>mxwin</author><pubDate>Thu, 18 Jun 2026 11:24:31 +0800</pubDate><description><![CDATA[额外补充，方便你长期规划：光线追踪、PBR体积渲染、流体仿真Shader、全局光照烘焙系统自研、引擎层级渲染改造、移动端极致功耗优化、影视级风格化渲染。配套能力：懂图形管线底层逻辑，能分析GPU瓶颈，编写Shader变体、SRP Batcher适配，能对接美术制定贴图规范、烘焙工作流。掌握贴图烘焙基础（法线、AO、曲率贴图）Alpha Test（镂空树叶）、Alpha Blend（玻璃、粒子）、Alpha Clip。2. 基础贴图应用：固有色、法线贴图、高光贴图、UV平移/缩放旋转动画。]]></description><category></category></item><item><title><![CDATA[Unity Shader 动态森林效果的幕后—— 地面球面化弧度]]></title><link>https://blog.youkuaiyun.com/mxwin/article/details/162065629</link><guid>https://blog.youkuaiyun.com/mxwin/article/details/162065629</guid><author>mxwin</author><pubDate>Wed, 17 Jun 2026 13:04:00 +0800</pubDate><description><![CDATA[球面化弧度效果看似只改了一个 Y 偏移，但它给玩家带来的空间感提升是立竿见影的。配合风场摆动与 LOD 体系，一个看似简单的公式Δy ≈ d²/2R就能撑起整个动态森林的氛围基础。球面化在施加，先转世界坐标再偏移用smoothstep做近处零弯曲的衰减，避免脚下地面"融化"风场在施加，先风场再转世界坐标顶点色蒙版让美术精确控制哪些部位摆动、摆多少性能瓶颈在植被数量，不在球面化——优先优化 LOD 和 Instancing。]]></description><category></category></item><item><title><![CDATA[Unity Shader URP 什么是early-z 什么是hi-z 什么是层级深度缓冲]]></title><link>https://blog.youkuaiyun.com/mxwin/article/details/162059525</link><guid>https://blog.youkuaiyun.com/mxwin/article/details/162059525</guid><author>mxwin</author><pubDate>Wed, 17 Jun 2026 10:35:41 +0800</pubDate><description><![CDATA[本文介绍了三种深度测试优化技术：Early-Z（硬件自动提前深度测试，避免无效像素着色，但discard会破坏优化）、Hi-Z（基于深度金字塔数据在光栅化前整体剔除三角形）和层级深度缓冲（Hi-Z的数据结构）。URP Shader实现时需保持ZWrite On、禁用discard并使用不透明队列以兼容所有优化。重点解析了Hi-Z的四步剔除逻辑：通过三角形包围盒匹配Mip层，对比最大深度值实现高效剔除。文末对比表显示，Hi-Z能节省光栅化+着色计算，内存增加约33%，在URP中默认开启（取决于GPU）。]]></description><category></category></item><item><title><![CDATA[Unity Shader 深入理解 深度冲突]]></title><link>https://blog.youkuaiyun.com/mxwin/article/details/162058995</link><guid>https://blog.youkuaiyun.com/mxwin/article/details/162058995</guid><author>mxwin</author><pubDate>Wed, 17 Jun 2026 10:23:58 +0800</pubDate><description><![CDATA[《深度冲突(Z-Fighting)原理与URP解决方案》摘要：深度冲突(Z-Fighting)是3D渲染中因深度缓冲精度不足导致两个重叠面随机闪烁的现象。本文系统解析了其成因：1）透视投影下深度值的非线性分布，使远处精度骤降；2）24位深度缓冲在远距离时相邻深度值可能相差数米。针对URP项目提出五大解决方案：1）使用Offset命令施加微小深度偏移；2）调整近/远裁面比例优化精度分布；3）启用Reverse-Z技术提升远处精度；4）通过RenderQueue控制渲染顺序；5）在Shader中使用顶点/片元级]]></description><category></category></item><item><title><![CDATA[Unity CommandBuffer 如何告诉 GPU“这块内存不用读/不用写”]]></title><link>https://blog.youkuaiyun.com/mxwin/article/details/162058212</link><guid>https://blog.youkuaiyun.com/mxwin/article/details/162058212</guid><author>mxwin</author><pubDate>Wed, 17 Jun 2026 10:08:08 +0800</pubDate><description><![CDATA[下面是一个完整的示例——一个模糊后处理 Pass，它使用DontCare// 后处理不需要 Depth// 非 MSAA// ═══ 水平模糊 ═══// 告诉 GPU：不要加载 tempRT 的旧内容（全屏 Quad 会覆盖它）tempRT,loadAction: RenderBufferLoadAction.DontCare, // ← 关键！storeAction: RenderBufferStoreAction.Store // 需要保留给下一步。]]></description><category></category></item><item><title><![CDATA[Unity Shader 深入理解 LinearEyeDepth 与 DepthTexture]]></title><link>https://blog.youkuaiyun.com/mxwin/article/details/161996491</link><guid>https://blog.youkuaiyun.com/mxwin/article/details/161996491</guid><author>mxwin</author><pubDate>Mon, 15 Jun 2026 10:16:59 +0800</pubDate><description><![CDATA[从透视投影的数学本质出发，拆解深度缓冲区的非线性编码原理，掌握 LinearEyeDepth 的完整变换链路与实战技巧。]]></description><category></category></item><item><title><![CDATA[次世代角色 PBR 贴图制作 + Unity URP 接入 极简流程图]]></title><link>https://blog.youkuaiyun.com/mxwin/article/details/161925619</link><guid>https://blog.youkuaiyun.com/mxwin/article/details/161925619</guid><author>mxwin</author><pubDate>Fri, 12 Jun 2026 13:58:39 +0800</pubDate><description><![CDATA[本文提供了次世代角色PBR贴图制作及Unity URP接入的完整流程指南。主要步骤包括：1）模型准备（低模拓扑、UV拆分、高模雕刻）；2）烘焙贴图（法线/AO）；3）SP材质绘制（BaseColor/Metallic/Roughness等）；4）Unity导入设置（贴图类型、sRGB开关）；5）URP材质配置。关键注意事项包括：法线贴图需翻转绿通道，非颜色贴图关闭sRGB，烘焙时设置足够Padding防接缝问题。附有高频问题速查表和极简口诀，方便开发者快速对照操作，实现高质量PBR角色效果。]]></description><category></category></item><item><title><![CDATA[Unity URP 法线贴图如何生成 用什么工具创建]]></title><link>https://blog.youkuaiyun.com/mxwin/article/details/161923744</link><guid>https://blog.youkuaiyun.com/mxwin/article/details/161923744</guid><author>mxwin</author><pubDate>Fri, 12 Jun 2026 12:55:08 +0800</pubDate><description><![CDATA[文章摘要：法线贴图是一种通过编码表面法线方向来模拟凹凸细节的纹理技术，能在不增加模型面数的情况下提升视觉真实感。文章详解了切线空间原理，对比了Photoshop、Blender、Substance等主流生成工具的操作流程，并重点演示了URP管线中的实现方法，包括Shader编写、纹理导入设置和常见问题解决方案。最佳实践包括使用UnpackNormal解码、关闭sRGB、匹配Y轴方向等关键要点，为游戏开发提供了一套完整的法线贴图应用指南。]]></description><category></category></item><item><title><![CDATA[Unity URP 切线空间详解]]></title><link>https://blog.youkuaiyun.com/mxwin/article/details/161900856</link><guid>https://blog.youkuaiyun.com/mxwin/article/details/161900856</guid><author>mxwin</author><pubDate>Thu, 11 Jun 2026 19:07:37 +0800</pubDate><description><![CDATA[本文深入解析了切线空间（Tangent Space）在3D图形渲染中的原理与应用。切线空间作为跟随模型表面的局部坐标系，其TBN矩阵由切线（Tangent）、副切线（Bitangent）和法线（Normal）构成，用于实现法线贴图的空间转换。文章详细介绍了Unity URP中TBN矩阵的构建方法、法线贴图的解码过程，并提供了完整的Shader实现代码示例。特别强调了关键注意事项：必须重新归一化插值后的法线、正确处理切线空间的手性问题（tangent.w符号）、正确设置纹理类型等最佳实践。通过理解切线空间原理]]></description><category></category></item><item><title><![CDATA[Unity URP 法线贴图色彩空间、编码与解码]]></title><link>https://blog.youkuaiyun.com/mxwin/article/details/161900684</link><guid>https://blog.youkuaiyun.com/mxwin/article/details/161900684</guid><author>mxwin</author><pubDate>Thu, 11 Jun 2026 18:51:00 +0800</pubDate><description><![CDATA[文章摘要：本文系统解析了法线贴图（NormalMap）的工作原理与实现流程，从切线空间定义到纹理编码/解码的全过程。法线贴图通过RGB通道存储三维法线向量（[-1,1]→[0,1]映射），使低模呈现高模细节。重点剖析了两种编码格式（RGB/DXT5nm）的差异，强调DXT5nm利用Alpha通道精度优势存储X分量，并通过单位向量约束推导Z值。文章详解Unity的UnpackNormal解码逻辑，指出sRGB伽马校正对法线数据的破坏性，给出纹理标记为NormalMap的关键设置。最后归纳了绿通道反转、Z值重建]]></description><category></category></item><item><title><![CDATA[Unity Shader 法线贴图的七种错误用法]]></title><link>https://blog.youkuaiyun.com/mxwin/article/details/161900551</link><guid>https://blog.youkuaiyun.com/mxwin/article/details/161900551</guid><author>mxwin</author><pubDate>Thu, 11 Jun 2026 18:36:42 +0800</pubDate><description><![CDATA[本文总结了Unity URP管线中法线贴图的7个常见错误及修复方法：1）未设置NormalMap类型导致法线信息错误；2）在sRGB色彩空间中错误采样法线；3）忘记切线空间到世界空间的转换；4）未归一化法线向量；5）压缩格式Z分量重建错误；6）缩放法线强度后未重新归一化；7）混用Built-in和URP的UnpackNormal宏。文章详细分析了每个错误的症状和具体修复方案，并提供了错误速查表，帮助开发者快速排查问题。]]></description><category></category></item><item><title><![CDATA[Unity Shader URP：法线在空间变换上的特殊性]]></title><link>https://blog.youkuaiyun.com/mxwin/article/details/161897748</link><guid>https://blog.youkuaiyun.com/mxwin/article/details/161897748</guid><author>mxwin</author><pubDate>Thu, 11 Jun 2026 16:25:48 +0800</pubDate><description><![CDATA[文章摘要：法线向量在渲染中具有特殊性，其变换规则与普通位置和方向向量不同。由于法线必须始终保持与表面垂直的几何约束，在非均匀缩放时需使用转置逆矩阵（Mᵀ）⁻¹进行变换。URP管线中，法线在多个坐标空间流转，处理NormalMap时需要构建切线空间TBN矩阵进行正确转换。文章详细解释了法线变换原理、URP内置函数使用方法，并提供了完整的Shader实现示例，强调要使用TransformObjectToWorldNormal()等封装函数而非手动矩阵运算。同时指出了常见错误及排查方法，帮助开发者正确处理法线以实]]></description><category></category></item><item><title><![CDATA[Unity Shader URP：法线如何进行光照计算]]></title><link>https://blog.youkuaiyun.com/mxwin/article/details/161860284</link><guid>https://blog.youkuaiyun.com/mxwin/article/details/161860284</guid><author>mxwin</author><pubDate>Wed, 10 Jun 2026 13:48:40 +0800</pubDate><description><![CDATA[本文摘要： 文章详细解析了URP（Universal Render Pipeline）中法线在光照计算中的核心作用。法线是表面朝向的单位向量，通过与光线方向（L）和视线方向（V）的点乘运算决定光照强度。关键点包括：法线需从模型空间转换到世界空间（如使用TransformObjectToWorldNormal），漫反射通过dot(N,L)计算，高光则依赖半角向量H=normalize(L+V)。法线贴图通过切线空间（TBN矩阵）增强细节表现，但需注意缩放和UV问题。调试时可用法线可视化（normalWS*0.]]></description><category></category></item></channel></rss>