gpt4 book ai didi

opengl-es-2.0 - 如何在 OpenGL ES 2 中正确绘制球体

转载 作者:行者123 更新时间:2023-12-02 05:29:57 26 4
gpt4 key购买 nike

我想知道 gldrawarraysgldrawelements 之间有什么区别?另外,您会使用哪个以及何时使用?我的另一个问题是如何为 Android 绘制一个球体。假设我在一个圆的周长上有 360 个点,这是否意味着我需要 360 * 360 坐标作为一个球体?这似乎很昂贵,必须有更好的方法。到目前为止我能想到的唯一方法是进行嵌套 for 循环。但这将需要大量的处理器时间。我能想到的另一种方法是绘制它并沿一个方向旋转 360 度。但它并不是真正的球体,只是一个旋转的圆。

最佳答案

“我想知道 gldrawarrays 和 gldrawelements 之间有什么区别?”

当您直接处理顶点流时,使用glDrawArrays;当您使用索引缓冲区时,使用glDrawElements,这会添加额外的间接层并允许您通过索引号引用顶点。您可以查看这篇文章以获取有关 glDrawElements 的更多信息(免责声明:我写了这篇文章):http://www.learnopengles.com/android-lesson-eight-an-introduction-to-index-buffer-objects-ibos/

OpenGL ES 手册也有关于这两个函数的信息:

http://www.khronos.org/opengles/sdk/docs/man/xhtml/glDrawArrays.xml http://www.khronos.org/opengles/sdk/docs/man/xhtml/glDrawElements.xml

“我的另一个问题是如何为 Android 绘制一个球体。”

您基本上只需将其分解为三角形即可。一种简单的方法是使用纬度和经度对球体进行分割,就像地球仪上的线条一样。您可以使用带有 sin 和 cos 的循环来生成点。

Stack Overflow 上的这两个问题有一些示例代码,应该很容易适应 Android:

关于opengl-es-2.0 - 如何在 OpenGL ES 2 中正确绘制球体,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18197936/

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