opengl - 以顶点为向量的 VBO
问题描述
尝试从类似于 CUDA float4(具有 x、y、z、w 的对象)的std::vector<float4>
位置传递 VBO 顶点和颜色数据。float4
int createVertexArrayObject(std::vector<float4> vertex_buffer_data,
std::vector<unsigned int> index_buffer_data,
std::vector<float4> color_buffer_data){
float* vertex_data = reinterpret_cast<float*>(&vertex_buffer_data[0]);
unsigned int vertexArrayID;
glGenVertexArrays(1, &vertexArrayID);
glBindVertexArray(vertexArrayID);
unsigned int vertexBufferID;
glGenBuffers(1, &vertexBufferID);
glBindBuffer(GL_ARRAY_BUFFER, vertexBufferID);
glBufferData(
GL_ARRAY_BUFFER,
vertex_buffer_data.size()*sizeof(float4),
vertex_data,
GL_STATIC_DRAW
);
(...)
}
这就是我正在处理的将数据传递给 VBO 的工作。但是,没有任何渲染。我是否正确计算了大小,是否提供了对结构中第一个元素的正确引用?
解决方案
推荐阅读
- python - 将 pandas Dataframe 转换为 int32 numpy 矩阵
- python-3.x - 返回 API Gateway AWS 的有效负载
- javascript - 用 ramda 合并三个数组
- d3.js - d3.js:在图表缩放/拖动时获取每个条形的新 (x,y) 坐标
- c# - 从子列表c#中获取对象
- mysql - SQL 价格调度,选择最后一个时间戳 <= UTC_TIMESTAMP()
- python - 在django 2.0中,编写删除模型的脚本
- android - 当键盘在android中显示时视图被覆盖
- python - 迭代字典中的字典,字典对象变成字符串?
- c++ - DevIL/OpenIL 没有加载 alpha 通道