C++ 如何管理和组织动态和静态几何图形
我需要一些关于如何在opengl中处理不同几何图形(静态、动态)的指南 我试图开发一个图形引擎(作为学习),我对opengl有一些想法(我做了一些事情),我需要问一些google没有回答的问题: 1-在vbo中存储所有几何图形数据的正确方法是什么,以便以后绘制。如何将这些数据组织到vbo中?我认为: 一分为二 ->静态和动态数据 2-请记住,世界上有不同类型的3d几何图形,静态、动态等,哪种是处理它们的最佳方式?每个动态元素都应该有自己的vbo和ibo,因为它们在每一帧都会更新,但是静态元素应该被处理吗 想象一下,游戏世界由3个静态立方体(具有相同的纹理)、5个静态圆锥体(每个圆锥体具有不同的纹理)、5个动态角色(3d模型都不同,并且在每个帧中都会发生变化)和8个静态3d模型(所有模型都不同)组成。如何使用vbo组织这些几何图形 我不提及顶点缓冲区对象的使用(我知道),我喜欢使用vbo对每个元素进行分组: Ie:3个立方体放在同一个vbo中,5个锥体放在其他分离的vbo中,等等C++ 如何管理和组织动态和静态几何图形,c++,opengl,vbo,C++,Opengl,Vbo,我需要一些关于如何在opengl中处理不同几何图形(静态、动态)的指南 我试图开发一个图形引擎(作为学习),我对opengl有一些想法(我做了一些事情),我需要问一些google没有回答的问题: 1-在vbo中存储所有几何图形数据的正确方法是什么,以便以后绘制。如何将这些数据组织到vbo中?我认为: 一分为二 ->静态和动态数据 2-请记住,世界上有不同类型的3d几何图形,静态、动态等,哪种是处理它们的最佳方式?每个动态元素都应该有自己的vbo和ibo,因为它们在每一帧都会更新,但是静态元素应该
GL\u STATIC\u DRAW
和GL\u dynamic\u DRAW
数据提示,每个缓冲区)GL\u三角形\u条带
获得最佳顶点吞吐量GL\u TRIANGLE\u STRIP\u adjancy
。这可以节省内存带宽和/或GPU时间(顶点着色器阶段可能只处理一次共享顶点)- 静态拉伸模型
- 动态拉伸模型
组织几何图形有什么帮助或想法吗?谢谢Sam,我帮了大忙!我只需要提出一个问题:你会在vbo中组织这个吗?3个静态立方体(具有相同的纹理),5个静态圆锥体(每个圆锥体具有不同的纹理),5个动态角色(所有3d模型都不同,每个帧中都有变化)和8个静态3d模型(所有模型都不同),我想知道我的想法是否正确。谢谢你是我!这个决定属于“数据生命周期和世界分区”类别。如果这些对象不是真正巨大的,并且是同时创建、绘制和销毁的,只需将它们紧急塞到单个缓冲区中即可。但是,与相当复杂的数据管理相比,中型对象的节省可以忽略不计。我基本上从每个对象一个VBO开始。然后,我将实现对象程序集类,稍后可能会使用共享缓冲区对其进行优化。