c - OpenGL 存储每个形状的变量,没有任何重复

标签 c opengl vertex vertex-buffer

我一直在研究 sprite 渲染器,我有正确渲染的矩形,但现在我想旋转它们并可能添加纹理。但是,我不知道如何在不复制数据的情况下存储角度。目前,每个顶点都有其位置,如果为每个矩形网格重复每个角度、textureatlas_index 等 4 次,将是一种浪费。所以这里的问题是,是否有一种有效的方法来存储变量,例如每个形状的角度或 textureatlas_indexes,而不是每个顶点?

编辑:还有一件事,我的 Sprite 渲染器确实有最大容量,所以它不是动态大小的,但我无法在运行前访问那个最大容量,所以静态数组不是一个真正的选择。

我的目标是 3.3 核心

最佳答案

我选择了流式纹理缓冲区和 gl_VertexId/4 来获取当前矩形的索引

关于c - OpenGL 存储每个形状的变量,没有任何重复,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/48038773/

相关文章:

c - opengl:如何在调整大小时将对象保留在窗口中

c++ - 使用 -funwind-tables 编译时究竟会发生什么?

c - 为什么 OR 逻辑运算符 ( || ) 不起作用?

c++ - std::copy 的限制是否比 std::memcpy 更宽松?

opengl - 在 OpenGL 中绘制对象 X 秒

R igraph : Coloring nodes based on their vertex ID or name

C: EXC_BAD_ACCESS 错误

opengl - 无法使用 OpenGL 中的某些函数 (glGenBuffers)

3d - Xna 4.0 3D 顶点示例

javascript - WebGL 顶点空间坐标