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