当前位置: 首页 > news >正文

【URP】Unity[视差贴图]原理剖析实践

【从UnityURP开始探索游戏渲染】专栏-直达

Unity URP 视差贴图介绍与分类

视差贴图(Parallax Mapping)是一种通过动态偏移纹理坐标来模拟表面凹凸效果的渲染技术,主要用于增强低多边形模型的细节表现。在Unity URP(Universal Render Pipeline)中,它通过高度图(Height Map)和视角方向计算UV偏移,实现更真实的深度感,而无需增加模型顶点数量‌。

‌视差贴图的核心分类‌

‌标准视差贴图(Parallax Mapping)

  • 原理‌:基于单次高度采样计算UV偏移,性能消耗低但效果有限,适合移动端或性能敏感场景‌。
  • 实现‌:通过高度图的灰度值(黑色为低点,白色为高点)和视角方向,在切线空间内偏移UV坐标,模拟遮挡效果‌。
  • 示例‌:URP中通过ParallaxOffset1Step函数实现单步偏移计算‌。
    • 关键参数

      • _HeightMap:存储高度信息的纹理(R通道)
      • _Parallax:控制凹凸强度的缩放系数(建议0.02-0.05)
    • 切线空间转换

      • 使用URP内置函数GetVertexNormalInputs构建TBN矩阵,将视角方向转换到切线空间
    • 性能优化

      • 单步偏移计算(ParallaxOffset)相比多步光线步进(如POM)性能更高,适合移动端
    • ParallaxLit.shader

      Shader "Universal Render Pipeline/ParallaxLit"
      {Properties{_MainTex("Albedo", 2D) = "white" {}_NormalMap("Normal Map", 2D) = "bump" {}_HeightMap("Height Map", 2D) = "white" {}_Parallax("Height Scale", Range(0, 0.1)) = 0.02}SubShader{Tags { "RenderPipeline"="UniversalPipeline" }HLSLINCLUDE#include "Packages/com.unity.render-pipelines.universal/ShaderLibrary/Core.hlsl"TEXTURE2D(_MainTex);    SAMPLER(sampler_MainTex);TEXTURE2D(_NormalMap);  SAMPLER(sampler_NormalMap);TEXTURE2D(_HeightMap);  SAMPLER(sampler_HeightMap);float _Parallax;float2 ParallaxOffset(float3 viewDirTS, float height){height = height * _Parallax - _Parallax * 0.5;return height * (viewDirTS.xy / (viewDirTS.z + 0.42));}ENDHLSLPass{HLSLPROGRAM#pragma vertex vert#pragma fragment fragstruct Attributes{float4 positionOS : POSITION;float2 uv : TEXCOORD0;float3 normalOS : NORMAL;float4 tangentOS : TANGENT;};struct Varyings{float4 positionCS : SV_POSITION;float2 uv : TEXCOORD0;float3 viewDirTS : TEXCOORD1;};Varyings vert(Attributes IN){Varyings OUT;VertexPositionInputs posInput = GetVertexPositionInputs(IN.positionOS.xyz);OUT.positionCS = posInput.positionCS;// 计算切线空间视角方向VertexNormalInputs normInput = GetVertexNormalInputs(IN.normalOS, IN.tangentOS);float3 viewDirWS = GetWorldSpaceViewDir(posInput.positionWS);OUT.viewDirTS = TransformWorldToTangent(viewDirWS, normInput.tangentWS, normInput.bitangentWS, normInput.normalWS);OUT.uv = IN.uv;return OUT;}half4 frag(Varyings IN) : SV_Target{// 采样高度图并计算UV偏移float height = SAMPLE_TEXTURE2D(_HeightMap, sampler_HeightMap, IN.uv).r;float2 offset = ParallaxOffset(normalize(IN.viewDirTS), height);// 应用偏移后采样纹理float2 parallaxUV = IN.uv + offset;half4 albedo = SAMPLE_TEXTURE2D(_MainTex, sampler_MainTex, parallaxUV);half3 normalTS = UnpackNormal(SAMPLE_TEXTURE2D(_NormalMap, sampler_NormalMap, parallaxUV));return half4(albedo.rgb, 1);}ENDHLSL}}
      }
      

‌陡峭视差贴图(Steep Parallax Mapping)

  • 特点‌:针对陡峭地形优化,通过多次采样(如二分法)减少失真,适合高落差表面(如岩石、冰缝)‌。
  • 实现‌:在URP中结合光线步进(Raymarching)算法,逐层检测高度图以确定最终UV偏移‌。

‌视差遮挡贴图(Parallax Occlusion Mapping, POM)

  • 优势‌:在标准视差基础上增加遮挡计算,通过多次采样模拟更精确的深度感,但性能开销较高‌。
  • 应用‌:常用于风格化材质(如风化岩石、冰面裂缝),需配合高度图和法线贴图使用‌。

‌技术实现细节‌

核心原理

  • 高度图采样
    • 使用灰度图(通常存储在法线贴图的Alpha通道)表示表面深度,黑色(0)为最低点,白色(1)为最高点。
  • 切线空间转换
    • 将视角方向从世界空间转换到切线空间(通过TBN矩阵),确保偏移方向与模型表面法线对齐。
  • UV偏移计算
    • 根据高度值和视角方向动态调整UV坐标,核心公式为‌ $offset=\frac{height \cdot viewDir_{xy}}{viewDir_z}$
    • 其中viewDir需归一化,且需避免除零(通常添加小偏移量如viewDir.z + 0.42

URP中的Shader实现

  • 核心函数:ParallaxOffset1Step(单步偏移)或自定义光线步进算法‌。

  • 示例代码(HLSL):

    hlsl
    float2 ParallaxOffset(half3 viewDirTS, half height, half scale) {return height * (viewDirTS.xy / viewDirTS.z) * scale;
    }
    

性能优化

  • 使用_Parallax参数控制强度,避免过度偏移导致穿帮‌。
  • 移动端建议采用标准视差贴图,PC端可尝试POM‌。

‌与其他贴图技术的对比‌

技术 原理差异 性能开销 适用场景 优势 局限性
法线贴图 仅改变光照计算 通用细节增强 性能最优 平视视角易穿帮
视差贴图 动态UV偏移模拟深度 风格化材质、地形 真实遮挡效果 陡峭边缘可能失真
置换贴图 实际修改顶点位置 高精度模型(如地形) 几何级精度 需要曲面细分支持

‌总结‌

视差贴图在URP中通过动态UV偏移和高度图采样,有效平衡了性能与视觉效果。根据需求选择标准、陡峭或POM变种,可适配不同场景的细节要求‌


【从UnityURP开始探索游戏渲染】专栏-直达
(欢迎点赞留言探讨,更多人加入进来能更加完善这个探索的过程,🙏)

http://www.jsqmd.com/news/19136/

相关文章:

  • 2025 年防撞桥梁护栏厂家最新推荐排行榜:铝合金 / 景观 / 灯光 / 不锈钢复合管等类型护栏及立柱厂家精选
  • 2025 年轻质抹灰石膏厂家最新推荐排行榜:实力企业全方位评测,含砂浆 / 耐水 / 高强耐水 / 底层 / 找平 / 抗裂 / 隔音类型产品优质厂家
  • 2025 年石膏基自流平厂家最新推荐排行榜:涵盖水泥 / 无机 / 高强 / 快干 / 无收缩 / 环保型等类型,权威解析优质厂家创新实力与市场口碑
  • 2025年润滑油厂家权威推荐榜单:工业齿轮油、液压油、发动机润滑油优质供应商深度解析
  • 2025年10月中国遗产继承律师排行:五强实战案例全评价
  • 2025.10.22——1紫
  • ptz2023Winter Day7 tourist Contest 7
  • 2025年北京市盈科律所:全球规模蝉联第一深度解析
  • 2025 铅板源头厂家最新推荐排行榜:聚焦防辐射铅门 / 高纯度铅板 / 多场景适配,深挖性价比与品牌实力
  • 2025 年褐藻寡糖厂家最新推荐排行榜:农业级 / 食品级 / 化妆品级等多品类覆盖,从技术到服务全维度精选
  • FishAudio 推出 S1 模型:2 万开发者,500 万美元 ARR;蛐蛐开源桌面语音输入工具,优化编程术语识别丨日报
  • 2025年防静电/劳保/国网/餐厅/工厂/电工/防酸碱/电力/车间/航空/员工广告衫厂家推荐排行榜,文化衫/t恤/polo衫/冲锋衣定制公司精选
  • 数据表示
  • 2025 年丝杆升降机厂家最新推荐榜单:聚焦行业优质企业,深度解析各品牌核心优势与选择要点滚珠/螺旋/伞齿轮/蜗轮丝杆升降机厂家推荐
  • 2025年烘干机厂家权威推荐榜:印染烘干机专业制造商,高效节能与稳定性能深度解析
  • 2025 年通风天窗厂家最新推荐排行榜:聚焦一字型 / 圆拱形 / 电动排烟 / 薄型 / 消防电动类型,精选实力企业
  • 2025年工业吸尘器厂家权威推荐榜:大功率吸尘设备、防爆型工业吸尘器、车间除尘系统源头厂家综合评测与采购指南
  • 数据处理:取两位有效数字,运算,焦点事件,只允许填写数字(2025.10.12)
  • 2025年市面上碳晶板品牌口碑排行榜前十名推荐
  • 2025 年防撞护栏生产厂家最新推荐排行榜:聚焦铝合金 / Q235/Q355B 桥梁 / 景观 / 灯光 / 河道 / 公路 / 喷塑 / 道路护栏,精选优质企业
  • 2025 年最新推荐!国内冷库厂家实力排行榜揭晓,含冷冻 / 保鲜 / 超低温等多类型冷库优质企业
  • 想做测开,是学Java还是Python?
  • 2025 年电缆桥架源头厂家最新推荐排行榜,聚焦规模、技术与市场影响力精选优质企业涵盖多类型桥架
  • 2025 中空锚杆厂家最新推荐排行榜:自进式 / 注浆型等全类型覆盖,聚焦标杆与新锐企业选购指南自进式注浆/预应力注浆/边坡注浆/涨壳式注浆中空锚杆厂家推荐
  • 2025 年最新推荐铅门源头厂家排行榜:甄选质优价廉可靠供应商,覆盖医疗工业多场景需求
  • 2025年鼓风机厂家推荐排行榜,工业鼓风机、高压鼓风机、离心鼓风机、罗茨鼓风机优质供应商精选与选购指南
  • 2025年市面上高杆灯品牌前十强终极选购指南
  • 2025年市面上高杆灯品牌排行榜前十名及选购指南
  • 2025年移动泵车厂家推荐排行榜,防汛泵车,水泵机组,应急排水泵车,柴油机水泵机组公司精选
  • 2025 年桥梁护栏厂家最新推荐排行榜:聚焦安全防护与耐用性能的优质企业实力甄选指南立柱式 / 网式 / 板式 / 景观 / 不锈钢桥梁护栏厂家推荐