gpt4 book ai didi

iphone - OpenGL 到 OpenGL-ES - glBegin();

转载 作者:行者123 更新时间:2023-12-03 21:14:06 24 4
gpt4 key购买 nike

我正在尝试学习为 iPhone 编写 OpenGL 应用程序。如何移植以下代码以与 OpenGL-ES 一起使用?我知道我必须将顶点存储在数组中,然后调用 glDrawArrays(),但是有没有最佳方法来做到这一点?我的想法是创建一个非常大的数组,并简单地记录填充了多少空间。这还有更好的办法吗?使用 NSArray 然后转换回 c 数组怎么样?

glBegin(GL_LINE_STRIP);

z = -50.0f;
for(angle = 0.0f; angle <= (2.0f*3.1415f)*3.0f; angle += 0.1f)
{
x = 50.0f*sin(angle);
y = 50.0f*cos(angle);

// Specify the point and move the Z value up a little
glVertex3f(x, y, z);
z += 0.5f;
}

// Done drawing points
glEnd();

最佳答案

如果您有足够的空间并且知道数组的最大大小,最简单的方法是使用一个大的静态分配数组并跟踪其当前的逻辑大小。

如果内存不足但处理器资源充足,则动态打包数组,然后注册数组并调用 glDrawArrays()。

混合方法是使用可以更新(如果需要)的动态分配的数组。您可以通过在动态数组接近满时重新分配动态数组或使用某种 NSMutableArray 来手动执行此操作。 (注意,NSArray 用于静态数组;NSMutableArrays(子类)是动态的。 See here. )

希望这有帮助:)

关于iphone - OpenGL 到 OpenGL-ES - glBegin();,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/826307/

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