我想知道是否有一种方法可以不用每次循环都使用gl::draw命令来绘制gl::texture文件。有没有一种方法,我可以画一次,然后不用担心它。
在draw()的每个循环上绘制图像都会减慢我的应用程序的速度,所以我只想在屏幕上绘制一次内容,然后根据需要进行更新。
发布于 2014-02-16 18:03:39
引用Cinder的教程:
“当你创建一个新的Cinder项目时,你会注意到有几个为你声明的函数。每个Cinder项目由三个主要函数组成。你在UpdateSetup ()方法中初始化你的变量,该方法在程序开始时调用一次。你在update()方法中更改这些变量。最后,你在程序窗口中绘制()内容。更新和绘制是任何Cinder项目的心跳。然后更新和绘制,直到你退出应用程序。”
虽然有一种方法可以在OpenGL中永久绘制对象,然后在Cinder中连续绘制对象,但我不推荐这样做。是禁用绘图函数中的gl::clear()。但是,您不能有选择地删除任何不需要的对象。您必须从头开始渲染场景。想一想OpenGL的帧缓冲更像是一块画布。每次调用gl::clear()时,都会拿起画笔,将画布涂成黑色或使用gl::clear()指定的任何颜色。在这之后,帧缓冲区是"tabula rasa“,你必须从头开始绘制你想要显示的所有东西。如果您没有声明任何gl::clear()命令,那么当您绘制一个新对象时,您的画布将保持不变,而您可以在已绘制的对象之上绘制对象。
https://stackoverflow.com/questions/8808917
复制相似问题