You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Unity CGIM Shader转URP HLSL:求COMPUTE_EYEDEPTH宏等效实现

COMPUTE_EYEDEPTH的URP HLSL等效实现

核心等效代码

在URP的HLSL Shader中,你可以用以下代码直接替代CG中的COMPUTE_EYEDEPTH宏:

// 直接计算眼睛空间深度值
float eyeDepth = -UnityObjectToViewPos(input.vertex).z;

// 或者自定义宏,完全匹配原宏的使用方式
#define COMPUTE_EYEDEPTH(o) o = -UnityObjectToViewPos(input.vertex).z;

说明

  • 原CG宏COMPUTE_EYEDEPTH的本质是计算眼睛空间(视图空间)下的线性深度,即相机到物体表面的实际距离(透视相机场景)。
  • Unity的视图空间中,相机前向为-z方向,因此视图空间顶点的z分量为负值,取反后得到的就是正向的深度值,和原宏的计算逻辑完全一致。
  • 该实现同时兼容透视相机与正交相机场景,正交相机下视图空间z值的绝对值对应物体在相机视锥中的深度位置,行为与原宏保持一致。

内容的提问来源于stack exchange,提问作者Prateek Panwar

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.18 20:15:44