gpt4 book ai didi

opengl-es - 如何在 OpenGL 中裁剪和缩放纹理

转载 作者:行者123 更新时间:2023-12-02 22:44:07 42 4
gpt4 key购买 nike

我的输入纹理为 852x640,输出纹理为 612x612。我通过着色器传递输入,并希望正确缩放和裁剪输出。我无法让 squareCooperativestextureCooperativesviewPorts 正常协同工作。

我不想只是裁剪,我还想缩放它以获得尽可能多的图像。如果我使用 Photoshop,我会分两步完成此操作(在 OpenGL 中,我尝试一步完成此操作):

  1. 将图像缩放至 612x814
  2. 剪掉每边多余的 101 像素

我使用标准方形顶点和纹理顶点:

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
}

我不太清楚 viewPort 应该是什么。

最佳答案

视口(viewport)将为 612x612 像素。

要缩放和裁剪原始四边形,最简单的方法是将顶点设置为覆盖 612x612 矩形(在您的情况下,我们保持 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
}

关于opengl-es - 如何在 OpenGL 中裁剪和缩放纹理,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9355780/

42 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com