gpt4 book ai didi

c - 如何使用 OpenGL 3.x VBO 渲染动态世界?

转载 作者:太空狗 更新时间:2023-10-29 16:51:33 27 4
gpt4 key购买 nike

虽然 OpenGL 3.x 本身的最新引用资料似乎很少,但 OpenGL 的实际低级操作相对简单。然而,我在尝试概念化如何操纵 VBO 以呈现动态世界时遇到了严重的麻烦。

显然,旧的直接模式方式不适用,但从那里我该去哪里呢?我是否编写某种场景结构,然后将其转换为一组顶点并将其流式传输到 VBO,我将如何存储翻译数据?如果是这样,那看起来代码如何?

基本上真的不确定如何继续。

最佳答案

如果您的整个世界确实是动态的,您可以使用 GL_STREAM_DRAW_ARB 用法标志并重置每一帧的数据。不要费心去操纵它,只要尝试尽可能高效地流式传输即可。

但是,我假设您有一个场景,其中包含多个彼此相对移动的刚性对象。在这种情况下,为每个对象使用一个 VBO 并指定 GL_STATIC_DRAW_ARB 使用标志。然后,您可以为对象的每个实例设置模型 View 变换,并为每个实例使用一次绘制调用来渲染它们。

一条经验法则(在 PC 上)是每 MHz 的 CPU 发出不超过一个绘制调用。这是一个粗略的估计,但也有一定的道理。如果低于此限制,则不必担心将多个独立对象放入单个 VBO 或其他性能技巧。

关于c - 如何使用 OpenGL 3.x VBO 渲染动态世界?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1728026/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com