2

我想知道是否有一种方法可以绘制gl::texture文件而不必在gl::draw每个循环中都使用命令。有没有办法我可以画一次,然后不用担心。

在每个循环上绘制图像都会draw()减慢我的应用程序的速度,所以我只想在屏幕上绘制一次,然后在需要时更新它们。

4

1 回答 1

2

引用 Cinder 的教程:

“当您创建一个新的 Cinder 项目时,您会注意到为您声明了一些函数。每个 Cinder 项目都由三个主要函数组成。您在 setup() 方法中初始化变量,该方法在程序开始时调用一次. 你在 update() 方法中对这些变量进行更改。最后,你在程序窗口中绘制() 内容。更新和绘制是任何 Cinder 项目的心跳。UpdateSetup,然后更新和绘制,更新和绘制,更新一直画下去,直到你退出应用程序。”

有一种方法可以在 OpenGL 中永久绘制对象,最终在 Cinder 中绘制,但我不推荐它。是在您的绘图功能中禁用 gl::clear() 。您不能有选择地删除任何不需要的对象。您必须从头开始渲染场景。把 OpenGL 的帧缓冲想象成一个画布。每次调用 gl::clear() 时,您都会拿起画笔并将画布涂成黑色或使用 gl::clear() 指定的任何颜色。之后,帧缓冲区为“tabula rasa”,您必须从头开始绘制要显示的所有内容。如果您在绘制新对象时未声明任何 gl::clear() 命令,则就像您的画布保持完整,而您将对象绘制在已绘制的顶部。

于 2014-02-16T10:03:39.497 回答