这个不是真的bug,是在使用的时候需要注意下。在进行基于Grab或者blit的全屏RenderTexture的时候需要使用ComputeGrabScreenPos 代替,里面做了平台处理 UNITY_UV_STARTS_AT_TOP, 否则会出现采样的贴图是反着的情况。
inline float4 ComputeGrabScreenPos (float4 pos) {
#if UNITY_UV_STARTS_AT_TOP
float scale = -1.0;
#else
float scale = 1.0;
#endif
float4 o = pos * 0.5f;
o.xy = float2(o.x, o.y*scale) + o.w;
#ifdef UNITY_SINGLE_PASS_STEREO
o.xy = TransformStereoScreenSpaceTex(o.xy, pos.w);
#endif
o.zw = pos.zw;
return o;
}
在Unity中,使用Grab或blit实现全屏RenderTexture时,需要注意图像反转问题。文章提到应当使用ComputeGrabScreenPos函数,该函数内部处理了UNITY_UV_STARTS_AT_TOP平台差异,以确保正确的纹理采样方向。在某些平台上,不使用此函数会导致贴图上下颠倒。解决方案包括在Shader中应用相应调整,并在立体声渲染时考虑TransformStereoScreenSpaceTex的转换。
6501

被折叠的 条评论
为什么被折叠?



