当前位置: 代码迷 >> 综合 >> ComputeScreenPos的bug
  详细解决方案

ComputeScreenPos的bug

热度:96   发布时间:2024-01-22 06:24:53.0

这个不是真的bug,是在使用的时候需要注意下。在进行基于Grab或者blit的全屏RenderTexture的时候需要使用ComputeGrabScreenPos 代替,里面做了平台处理 UNITY_UV_STARTS_AT_TOP, 否则会出现采样的贴图是反着的情况。

inline float4 ComputeGrabScreenPos (float4 pos) {#if UNITY_UV_STARTS_AT_TOPfloat scale = -1.0;#elsefloat scale = 1.0;#endiffloat4 o = pos * 0.5f;    o.xy = float2(o.x, o.y*scale) + o.w;
#ifdef UNITY_SINGLE_PASS_STEREOo.xy = TransformStereoScreenSpaceTex(o.xy, pos.w);
#endifo.zw = pos.zw;return o;
}
  相关解决方案