ループごとにコマンドgl::texture
を使用せずにファイルを描画する方法があるかどうか疑問に思っていました。gl::draw
一度描いてから気にしない方法はありますか?
ループごとに画像を描画するとdraw()
アプリケーションの速度が低下するため、画面に一度だけ描画し、必要に応じて更新したいと思います。
ループごとにコマンドgl::texture
を使用せずにファイルを描画する方法があるかどうか疑問に思っていました。gl::draw
一度描いてから気にしない方法はありますか?
ループごとに画像を描画するとdraw()
アプリケーションの速度が低下するため、画面に一度だけ描画し、必要に応じて更新したいと思います。
Cinder のチュートリアルからの引用:
「新しい Cinder プロジェクトを作成すると、いくつかの関数が宣言されていることに気付くでしょう。すべての Cinder プロジェクトは 3 つの主要な関数で構成されています。プログラムの開始時に一度呼び出される setup() メソッドで変数を初期化します。 . update() メソッドでこれらの変数に変更を加えます. そして最後に, プログラム ウィンドウでコンテンツを draw() します. 更新と描画は Cinder プロジェクトの心臓部です. UpdateSetup, 次に更新と描画, 更新と描画, 更新アプリケーションを終了するまで、何度も何度も描画します。」
OpenGL で永続的にオブジェクトを描画し、結果として Cinder でオブジェクトを描画する方法はありますが、お勧めしません。描画関数で gl::clear() を無効にすることです。ただし、不要なオブジェクトを選択的に削除することはできません。シーンを最初からレンダリングする必要があります。OpenGL のフレーム バッファはキャンバスのようなものだと考えてください。gl::clear() を呼び出すたびに、ブラシを取り、キャンバスを黒または gl::clear() で指定した色にペイントします。その後、フレームバッファは「tabula rasa」で、表示したいものをすべてゼロから描画する必要があります。新しいオブジェクトを描画するときに gl::clear() コマンドを指定しないと、キャンバスがそのまま残り、既に描画されているオブジェクトの上にオブジェクトを描画するようになります。