opengl instanced drawing - 3D Arrows
opengl instanced drawing - 3D Arrows
我必须绘制数百万箭头。我所拥有的信息如下。
-
每个箭头的位置
-
每个箭头的方向(向量方向)
-
长度如果每个箭头
有了这些信息,我可以使用OpenGL Inthanced Drawing绘制箭头。
我已经完成了实例示例。在所有这些示例中,他们都解释了每个实例等的矩阵转换...。
但是,我尚不清楚上述数据,无论是否有可能。
鉴于箭头是向量,您只需将所有向量数据插入统一数组** **,然后使用gl_instanceid将它们查找在您的顶点着色器中,然后将它们传递给gl_position。
如果您需要将转换应用于箭头(通过查看数据:位置的转换,方向的旋转和长度的缩放),您将在一组顶点上发出当前的绘图语句(您的基本箭头),使用统一的矩阵进行转换,并以类似的方式在顶点着色器中查看这些矩阵。
**根据您的实例数量,数据可能不适合统一数组。因此,您可以考虑使用一个统一块(该块可以存储比简单统一变量更多的数据),如果这也不够,则GL_TEXTURE_BUFFER将可以解决问题。不要让这个名字欺骗您,gl_texture_buffer可以持有任意数据,而不仅仅是纹理数据。
统一块由https://www.khronos.org/opengl/wiki/uniform_buffer_object
对于纹理缓冲区,读出https://www.khronos.org/opengl/wiki/wiki/buffer_texture
相关文章:
- 无法将结构注册为增强几何体3D点
- OpenGL大的3D纹理(>2GB)非常慢
- 是什么导致了Unity 3D中的"错误线程异常"?
- 如何声明一个可以在整个程序中使用的全局 2d 3d 4d .. 数组(堆版本)变量?
- CPU 瓶颈;处理具有许多非静态对象的 3D 场景渲染的简单方法
- 如何使用Qt 3D库加载和显示搅拌机.obj源文件场景
- 如何从 3D 曲面网格中删除自相交三角形?
- CUDA 使用共享内存平铺 3D 卷积实现
- 检查框内的 3D 点
- 如何在 3D OpenGL 场景上绘制 SDL 2D 矩形?
- Frank Luna 在他的书"使用 DirectX12 进行 3D 游戏编程"的介绍中盒子示例的问题
- 使用 C++在 OpenGL 中对 3D 多边形进行纹理处理
- 使用 C++在 OpenGL 中移动自动旋转的 3D 多边形
- 是否可以使用 DirectX 3D 11 绘制由三角形组成的圆?
- 如何使用条件计算 3D 网格中从一个点到另一个点的所有路径
- 在 OpenGL 中使用键盘移动 3D 形状,C++
- 是否可以制作没有内部分割的cgal 3d多多马因网格?
- 我想通过OpenGL创建3D金字塔
- 如何在C++中仅使用迭代器正确迭代 3D 向量?
- opengl instanced drawing - 3D Arrows