平移以前绘制的元素(OpenGL)
Translate Previously Drawn Elements (OpenGL)
如何转换以前绘制的元素?我已经在屏幕上绘制了大约400万个顶点,我想在绘制后对它们进行平移。每次我想翻译它们时,我宁愿不重新绘制它们(400万!)
这是相关代码。
glOrtho(0, 1024, 0, 576, 0, -4096);
glTranslatef(-512, -288, 512);
glRotatef(45, 1, 0, 0);
glTranslatef(512, 0, -512);
glClear(GL_COLOR_BUFFER_BIT | GL_DEPTH_BUFFER_BIT);
glColor3f(1.F, 1.F, 1.F);
glEnableClientState(GL_VERTEX_ARRAY);
glVertexPointer(3, GL_INT, 0, &vertices[0]);
glDrawElements(GL_QUADS, vertexIndex.size(), GL_UNSIGNED_INT, &vertexIndex[0]);
glDisableClientState(GL_VERTEX_ARRAY);
// I would like to translate here
这是不可能的,您的顶点位置在内部乘以变换矩阵来获得在屏幕上绘制的最终位置。
因此,如果你在绘制后试图更改矩阵,它对绘制的顶点没有任何影响,而且它的粘性是这样的。
要解决您的问题,只需在绘图前对其进行转换。。。这是标准的方法,没有其他方法可以做到。
相关文章:
- Mongodb c++驱动程序:如何查询元素的数组
- 将数组作为参数传递给函数安全吗?作为第三方职能部门,可以探索他们想要的之外的其他元素
- OpenGL - 在抛出"__gnu_cxx::recursive_init_error"实例后终止调用?
- 使用strcpy将char数组的元素复制到另一个数组
- 使用不带参数的函数访问结构元素
- 给定n个元素的m个集合.在C++中找到出现在最大集合数中的元素
- C++如何通过用户输入删除列表元素
- lower_bound()返回最后一个元素
- 基于多个条件处理地图中的所有元素
- 调整大小后指向元素值的指针unordered_map有效?
- 了解 GLM- openGL 中的相机转换
- 使用std::transform将一个范围的元素添加到另一个范围中
- 许多立方体对象的 OpenGL 绘图元素
- 使用 openGL 为元素添加纹理
- OpenGL:在两个元素之间画一条线
- c++Opengl处理绘制的元素
- OpenGL- glDrawElements只绘制第一个元素
- 平移以前绘制的元素(OpenGL)
- 选择OpenGL范围元素GL_ELEMENT_ARRAY_BUFFER
- OpenGL ES 2D场景,不同元素的多个场景图树