C++ 如何在OpenGL中处理包含多个对象的动画?
我需要创建一个OpenGL动画,它主要包含两个对象,一个简单的对象,例如由数百个顶点组成的平面,一个非常复杂的对象,例如包含数十万个顶点的城市。这两个物体都是不雅地创造出来的。现在我需要把它们都放到动画中。例如,在动画中,当一架飞机在屏幕上飞行时,我们从天空俯视城市。由于城市模型非常复杂,渲染需要几分钟,因此不可能在每一帧同时渲染平面和城市。所以我的问题是,如何在OpenGL中独立地渲染多个对象?我需要在每一帧渲染城市吗?我可以修复城市对象并在每一帧刷新平面吗 我读过《红皮书》等参考资料。也许我不明白,但他们似乎没有教我如何处理上述问题。有人能帮我吗 由于城市模型非常复杂,渲染需要几分钟 少于100万个顶点的分钟数?现代GPU每秒可以推出数亿个顶点!您应该摆脱这个瓶颈,而不是试图用分层渲染来覆盖它 看看你的代码。是否有对glBegin和glVertex的调用?如果是这样,那就是你的问题所在。那些电话太慢了。不要使用它们。使用顶点数组和顶点缓冲区对象可以很好地为GPU进行批处理 所以我的问题是,如何在OpenGL中独立地渲染多个对象C++ 如何在OpenGL中处理包含多个对象的动画?,c++,opengl,animation,render,C++,Opengl,Animation,Render,我需要创建一个OpenGL动画,它主要包含两个对象,一个简单的对象,例如由数百个顶点组成的平面,一个非常复杂的对象,例如包含数十万个顶点的城市。这两个物体都是不雅地创造出来的。现在我需要把它们都放到动画中。例如,在动画中,当一架飞机在屏幕上飞行时,我们从天空俯视城市。由于城市模型非常复杂,渲染需要几分钟,因此不可能在每一帧同时渲染平面和城市。所以我的问题是,如何在OpenGL中独立地渲染多个对象?我需要在每一帧渲染城市吗?我可以修复城市对象并在每一帧刷新平面吗 我读过《红皮书》等参考资料。也许我
从技术上讲,每个三角形都独立于所有其他三角形进行渲染。您可能会考虑分层渲染。不要这样做,除非你知道你在做什么。顺便说一句,你不是。谢谢datenwolf!是的,我使用了glBegin和glVertex。我不熟悉顶点数组和顶点缓冲区对象,也不熟悉分层渲染。你能推荐一些参考资料吗?@Aaron:分层渲染可能是一个太高级的主题,你现在无法解决;您必须了解像OpenGL实现这样的reasterizer的所有方面,才能有效地利用它。自1996年以来,顶点数组是OpenGL绘图的推荐方式;任何仍然使用glBegin/glVertex的教程都不值得阅读。这是目前最好的OpenGL教程:谢谢!在这个实践中,我主要遵循红皮书第七版上的样本。我将按照你的建议调查VAO和VBO。再次非常感谢!在渲染的几分钟内,我猜asker可能会在每一帧重新读取一个.obj文件,然后再次重新读取该文件以按其索引查找每个顶点。