gpt4 book ai didi

更改示例中的 OpenGL 顶点属性

转载 作者:太空宇宙 更新时间:2023-11-04 03:05:16 27 4
gpt4 key购买 nike

我正在使用 this tutorial / sample在 iPhone 上做一些基本的对象跟踪。一切正常,我什至对性能进行了很多调整,但我仍然遇到一个问题。

基本问题是我对 OpenGL 的理解不够好,我应该因为可耻地获取示例代码并将其变成适合我的东西而受到惩罚。事实上,我正在受到惩罚;

该示例展示了如何将 iPhone 的摄像头渲染(使用着色器)到屏幕外纹理中,以便能够对其进行处理并将其显示在屏幕上。现在我已经弄清楚它使用顶点属性数组绘制纹理/图层(尽管我进行了谷歌搜索,但我几乎不了解这个原理)。

顶点数组如下:

static const GLfloat squareVertices[] = {
-1.0f, -1.0f,
1.0f, -1.0f,
-1.0f, 1.0f,
1.0f, 1.0f,
};

static const GLfloat textureVertices[] = {
1.0f, 1.0f,
1.0f, 0.0f,
0.0f, 1.0f,
0.0f, 0.0f,
};

我还发现这些顶点属性可以改变绘制纹理的方向。纹理现在以纵向绘制,这意味着如果我将 iPhone 保持横向(我希望如此),并让 View 一起旋转,我在屏幕上看到的一切都是一个 90 度角的相机。

我认为我已将问题缩小到足以归咎于这些顶点的程度,并且我一直在搞乱它们的值,但没有任何可接受的结果。

有没有人可以帮我画风景的纹理?

P.S:如果我反转“squareVerticles”的值,我可以获得 180 度旋转的图片。但我希望纹理旋转 90 度,而不是 180 度。

最佳答案

假设您的屏幕具有从 -1.0,-1.0(左下)到 1.0, 1.0 的标准化坐标。第一个数组指定正方形顶点的坐标(可能是三角形带,因为它们以“Z”形式给出)。

第二个数组指定纹理坐标。相同,只是它们在 0.0, 1.0 范围内。

因此,顺时针旋转 90 度:

1.0f, 0.0f
0.0f, 0.0f
1.0f, 1.0f
0.0f, 1.0f

逆时针方向:

0.0f, 1.0f
1.0f, 1.0f
0.0f, 0.0f
1.0f, 0.0f

希望有用!

关于更改示例中的 OpenGL 顶点属性,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6141015/

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