c++ - 如何在 OpenGl 中动态添加顶点?

标签 c++ opengl

例如,如果我想做这样的事情:

createTriangle(1.0,1.0); // Create triangle at (1,1)

我如何在代码中做到这一点?我很乐意对此进行硬编码,但如果我想动态地执行此操作,如何绑定(bind)并填充缓冲区,然后将其绑定(bind)在显示上?我是否只将顶点添加到一个大缓冲区中?那么如何对不同的对象进行不同的变换呢?

编辑:为了澄清,我问如何创建顶点,然后将它们插入图形管道中。

最佳答案

如果你想制作一款游戏,那就去做吧:) 解决问题,如果没有问题,就是一个问题!您是否规划了架构,并有表示场景中的对象及其组件(物理、图形)的想法?如果是这样,您可能在代码中占有一席之地,在其中初始化场景(所以让我们在那里创建缓冲区),并让“引擎”对象(或在主/渲染/动画/循环的位置)绘制所有这些。根据对象以及您拥有的模型/3d/2d 数量,您可以将缓冲区 id 存储在对象中(正在绘制,并且在渲染循环中“引擎”对象绑定(bind)缓冲区),或者只是简单地存储在“引擎”中' 对象。

一切都取决于,你正在制作什么游戏,以及你面临什么问题,规模有多大(例如,在这种情况下,你可以创建一些更大的对象管理器,包含对象组等。问题是:你会吗?真的需要这些吗?它们可能会产生更多的错误,并且需要更多的时间来维护代码,毕竟你将不得不再次编写这个模块。)不要创建你不需要的结构。

一条规则可能会指导您:“让事情尽可能简单,但不要更简单”。并制作游戏,而不是您想要的架构,仅仅因为 UDK 有一个。

关于c++ - 如何在 OpenGl 中动态添加顶点?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10865872/

相关文章:

c - SDL 可调整大小的程序无法正确绘制 OpenGL

java - 用于空间模拟器的 OpenGL

c++ - 透明 C++ 数字/Int 包装器

c++ - 使 QGraphicsProxyWidget 可移动和可选择

c++ - 在 C++ 中缓慢写入数组

c++ - OpenGL 程序只显示屏幕后面的内容

opengl - 如果使用gluPerspective(),如何知道平截头体的边界?

c++ - 在命名空间范围之外定义命名空间的变量成员

c++在转换中为多数组错误添加值(value)

opengl - 使用鼠标在 openGL 中移动绘图