3

我有一个(预制的)Opengl 顶点缓冲区对象(VBO)
,但我不知道GLuint 在 opencl 中提交它的价值 ..

是否在任何opengl库(如glew)中进行检查,以向我提供当前在gpu上的现有VBO及其相应的GLuint(或任何类似的东西......因为我只知道数据输入是数组和数组中的元素数量尺寸)

编辑:为什么我不知道 GLuint ...

这是cinema4d opengl api中的一个函数(必须使用这个函数来访问cinema4d VBO)..这个函数(或者我应该说很多类函数)会自动做这样的事情

allocSubBuffer ...与 *pBuffer(面向对象的 C++)mapBuffer ..返回 void *pData 然后将此 *pData 转换为向量 *pvData 然后将数组值传递给该 *pvData 然后 unmapbuffer ...在此之后有一个叫做 pFactory 的东西。 ..它自动分配一个新的VBO ...

4

2 回答 2

1

但我不知道它的 GLuint 值

那么你如何使用OpenGL的VBO呢?您也必须glBindBuffer在 OpenGL 中使用它。OpenGL 对象 ID 很宝贵,请妥善保管它们并确保它们安全。

创建一个 OpenGL 对象而不记住它的名字就像用newor分配一些内存malloc然后扔掉指针:浪费内存。

于 2012-11-22T09:57:59.247 回答
0

也许 glGetIntegerv(GL_ARRAY_BUFFER_BINDING, &buf) 会为您解决问题。即你以某种方式强制cinema4d 绑定缓冲区,然后查询当前绑定的缓冲区ID。

于 2012-11-22T13:16:32.090 回答