0

OpenGLes 2.0 不支持称为gl_PrimitiveID的特殊内置片段着色器变量。我试图通过将一个独特的属性与形成三角形的每个顶点相关联来模拟这个变量。但是当两个或多个三角形之间共享顶点时,这会导致问题。为了使这种技术有效地增加复杂场景的内存使用量,它实际上需要复制共享顶点。

我正在考虑对 openGLes 库本身进行更改,以便能够在内部维护gl_PrimitiveID变量。我正在使用 mesa 3d 库来编辑 openGLes 2.0 的源代码。但是我无法找到glDrawElements的实现来满足我的目的。此函数具有与其声明关联的GL_APIENTRY标志。

有什么建议么?

4

1 回答 1

1

OpenGL 或 OpenGL-ES 不是库。它们是系统级 API,其实现深藏在 GPU 的驱动程序中。你不能对它们进行更改,而不会弄乱 GPU 驱动程序的代码。然后每个使用您的程序的人都必须使用该驱动程序。这在 OpenGL-ES 的情况下是不可能实现的,因为大多数 OpenGL-ES 实现都存在于围绕应用程序构建围墙花园的设备中。此外,驱动程序的源代码通常是保密的。

于 2013-09-25T10:32:47.803 回答