GLubyte 与 GLshort 指数

发布于 2024-10-03 05:45:02 字数 132 浏览 2 评论 0原文

查看 OpenGL 中顶点数组的文档,我发现用于索引的两种最常见的内存类型是 GLubyte (GL_UNSIGNED_BYTE) 和 GLshort (GL_SHORT)。 我想知道使用两者作为索引是否有任何实际区别

谢谢, 龙鹩莺

Looking through documentation for vertex arrays in OpenGL, two of the most common memory types used for indices I found were GLubyte (GL_UNSIGNED_BYTE) and GLshort (GL_SHORT).
I was wondering if there was any actual difference between using the two for indices

Thanks,
Dragonwrenn

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(3

羁客 2024-10-10 05:45:02

GL_UNSIGNED_BYTE 对于最多有 256 个顶点的模型来说是可以的 - 这实际上并不多。

GL_UNSIGNED_SHORT,占用 2 个字节,会将您限制为 65536 个顶点 - 但仍然很少。

我想说最常见的变体是 GL_UNSIGNED_INT,因为对于中多边形和高多边形模型来说,即使 2 个字节也可能不够。

GL_UNSIGNED_BYTE is OK for models which have at most 256 vertices - that's really not many.

GL_UNSIGNED_SHORT, taking 2 bytes, would limit you to 65536 vertices - still that's kind of few.

I'd say the most common variant is GL_UNSIGNED_INT, as even 2 bytes may not be enough for mid-poly and high-poly models.

人疚 2024-10-10 05:45:02

GL_UNSIGNED_BYTE 为 1 个字节,GL_SHORT 为 2 个字节。字节的唯一优点是它们更小,因此存储所需的内存更少,传输到图形内存的时间也更少(假设顶点数组或 VBO)。

请注意,并非所有类型都可用于所有用途:例如,您不能拥有 GL_UNSIGNED_BYTE 顶点。

GL_UNSIGNED_BYTE is 1 byte, GL_SHORT is 2 bytes. The only advantage of bytes is that they're smaller so they take less memory to store and less time to transfer to the graphics memory (assuming vertex arrays or VBOs).

Beware that not all types are available for all uses: You can't have GL_UNSIGNED_BYTE vertices, for example.

吹梦到西洲 2024-10-10 05:45:02

GPU 只能处理 16 或 32 位索引,因此使用 GL_UNSIGNED_BYTE 时会产生额外的开销,并且不会节省内存。

GPUs only can handle 16 or 32 bit indices, so there is additional overhead when using GL_UNSIGNED_BYTE and no memory saving.

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文