我想知道是否有办法绘制gl::texture
文件而不必在每个循环中使用gl::draw
命令。有没有办法可以画一次,然后不用担心。
在draw()
的每个循环上绘制图像会减慢我的应用程序速度,因此我只想在屏幕上绘制一次,然后在需要时更新它们。
答案 0 :(得分:2)
引用Cinder的教程:
“当您创建一个新的Cinder项目时,您会注意到为您声明了一些函数。每个Cinder项目都由三个主要函数组成。您可以在setup()方法中初始化变量,该方法在调用时调用一次你的程序开始了。你在update()方法中对这些变量进行了更改。最后,你在程序窗口中绘制()内容。更新和绘制是任何Cinder项目的心跳.UpdateSetup,然后更新和绘制,更新和绘制,更新和绘制,直到你退出应用程序。“
有一种方法可以在OpenGL中永久地绘制对象并且在Cinder中常常绘制,但我不推荐它。是在绘制函数中禁用gl :: clear()。您不能有选择地删除任何不需要的对象。您必须从头开始渲染场景。想想OpenGL的帧缓冲更多的画布。每次调用gl :: clear()时,你都会使用画笔,然后用gl :: clear()将画布涂成黑色或指定颜色。之后,帧缓冲区是“tabula rasa”,您必须从头开始绘制要显示的所有内容。如果在绘制新对象时没有说明任何gl :: clear()命令就像你的画布保持原样并且在已经绘制的画面上绘制你的对象。