VR移植畸变后,视口大小异同,表象为显示内容效果不一致

在将A SDK的畸变移植到B SDK后,发现B的显示效果视口显著缩小。通过分析B SDK的Shader和WarpThread部分,确定问题源于OpenGL shader的伸缩矩阵。调整eyeProjectionMatrix以匹配A SDK的伸缩矩阵后,修正了显示效果,达到与原A SDK基本一致的结果。
摘要由CSDN通过智能技术生成

1. 问题引入

文章中,约定如下:A的SDK畸变;B的SDK畸变。需求是:A的SDK畸变移植到B的SDK中。
移植完后,发现移植畸变后的B显示内容效果 视口明显比A的小。具体效果图如下:
在这里插入图片描述
此20200827-01图是A的效果。

在这里插入图片描述
此20200827-02图是B的效果(使用A的畸变参数公式)。

2. 问题分析

引起如上问题的原因,从理论上讲,应该是 OpenGL shader上屏时对R\G\B 值进行了伸缩。具体分析如下:

2.1 B SDK的Shader部分

char warpShaderVs[] =
"\n"
"// Version, Precision, and conditional compiles will be added above\n"
"\n"
"in vec4 position;      // Position\n"
"in vec4 normal;        // Red\n"
"in vec4 color;         // Green\n"
"in vec4 texcoord0;     // Blue\n"
"\n"
"layout(location = 1) uniform vec4 posScaleOffset;\n"
"\n"
"#ifdef PROJECTION_SUPPORT\n"
"    #ifdef COLOR_PLANE_SUPPORT\n"
"        layout(location = 2) uniform mat4 textureMtx[3];\n"
"    #else\n"
"        layout(location = 2) uniform mat4 textureM
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值