我用绘制了一个具有不同颜色点的点云
glEnableClientState(GL_VERTEX_ARRAY);
glEnableClientState(GL_COLOR_ARRAY);
glVertexPointer(3, GL_FLOAT, 0, vertices.get());
glColorPointer(3, GL_FLOAT, 0, colors.get());
glDrawArrays(GL_POINTS, 0, n);
glDisableClientState(GL_VERTEX_ARRAY);
glDisableClientState(GL_COLOR_ARRAY);
有没有办法告诉glDrawArrays(或默认着色器(对每个点的大小使用另一个客户端状态?
如果有的话,效率会非常低!
- 在核心上下文=>OpenGL 3.3及以上版本中使用可编程管道
- 使用所有顶点(点(创建缓冲区
- 使用每个点的大小创建缓冲区
- 将缓冲区2和3传递到顶点着色器。将大小指定给全局gl_PointSize
如果你没有得到我的建议,你必须从学习现代OpenGL渲染方式开始:(