Dex*_*Dex 4 textures opengl-es
我的输入纹理是852x640,输出纹理是612x612.我通过着色器传递输入,并希望缩放输出并正确裁剪.我遇到麻烦squareCoordinates,textureCoordinates并viewPorts以适当的共同努力.
我不想只裁剪,我想缩放它以获得尽可能多的图像.如果我使用Photoshop,我会分两步完成这个步骤(在OpenGL中,我试图一步完成):
我正在使用标准的方形顶点和纹理顶点:
static const GLfloat squareVertices[] = {
-1.0f, -1.0f,
1.0f, -1.0f,
-1.0f, 1.0f,
1.0f, 1.0f,
};
static const GLfloat squareTextureVertices[] = {
0.0f, 0.0f,
1.0f, 0.0f,
0.0f, 1.0f,
1.0f, 1.0f
}
Run Code Online (Sandbox Code Playgroud)
我不确切知道viewPort应该是什么.
视口将是612x612像素.
要缩放和裁剪原始四边形,最简单的方法是将顶点设置为覆盖612x612 rect(在您的情况下我们squareVertices保持不变),但设置纹理坐标以便裁剪出左右两侧:
static const GLfloat squareTextureVertices[] = {
(852.0f-640.0f)/852.0f*0.5f, 0.0f,
1.0f - (852.0f-640.0f)/852.0f*0.5f, 0.0f,
(852.0f-640.0f)/852.0f*0.5f, 1.0f,
1.0f - (852.0f-640.0f)/852.0f*0.5f, 1.0f
}
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
6115 次 |
| 最近记录: |