如何使用实例化渲染将每个实例的数据(如定位)传递给 OpenGL 3.2 中的着色器
How to pass per-instance data (such as positioning) to shader in OpenGL 3.2 with instanced rendering?
我正在尝试使用实例化渲染来渲染立方体。我让它工作,我用glDrawArraysInstanced渲染。
但是,我现在想将每个实例的数据(在本例中为定位和颜色)传递给着色器,并且我已经理解我打算使用函数glVertexAttribDivisor来实现这一点。问题是该功能仅在 OpenGL 3.3 及更高版本中可用,而我使用的是 3.2
如何在OpenGL 3.2中以正确的方式实现这一目标?
可选解决方案:
使用几何着色器渲染点并发出立方体。然后,您可以将所有内容打包到一个 VBO 中,避免实例化渲染。
如果需要,使用转换反馈来修改多维数据集属性。
我在 3.2 中没有找到一种很好的方法来做我想做的事情,所以我更新到 OpenGL 3.3 而不是能够使用 glVertexAttribDivisor 在属性中发送实例数据。
相关文章:
- 从C++实例化QML
- 设计一个只能由特定类实例化的类(如果可能的话,通过make_unique)
- 如何创建一个空的全局类并在启动时实例化它
- 在两个类中共享相同的函数调用,并在不需要时避免空实例化
- 约束和显式模板实例化
- 为什么包含windows.h会产生语法错误,从而阻止类的实例化?(C2146,C2065)
- 对象实例化调用构造函数的次数太多
- 如何使用非默认构造函数实例化模板化类
- 静态数据成员模板专用化的实例化点在哪里
- 错误的cv::face FacemarkLBF实例化
- C++的解析器在可以区分比较和模板实例化之前会做什么?
- 为什么 gcc 和 clang 为函数模板的实例化生成不同的符号名称?
- 检查某些类型是否是模板类 std::optional 的实例化
- 我有一个对象,它将在整个程序的持续时间内实例化,但一个类成员不会,我应该动态分配它吗?
- 如何使实例化在我的 OpenGL 程序中工作?
- OpenGL:使用实例化绘图与我正在绘制的帧缓冲进行绘制
- 将 OpenGL 实例化图形与移动对象一起使用
- 如何使用实例化渲染将每个实例的数据(如定位)传递给 OpenGL 3.2 中的着色器
- 使用OpenGL 3.3实例化似乎很慢
- OpenGl 实例化渲染在 Qt5 中