即時モードとは何ですか?
コンピュータグラフィックスプログラミングでは、イミディエイトモードは、通常の一連のアクションとそれらが存在するフレームワークが完全にバイパスされ、場合によっては非アクティブ化されるレンダリング状態です。 つまり、実行中のアプリケーションは、プログラムの外にある生来のサイクルに依存するのではなく、モニターなどのディスプレイデバイスに何かを表示するために必要な関数を直接呼び出す必要があります。 即時モードは、マルチメディアアプリケーションやビデオゲームなど、可能な限り高速のレンダリング時間を必要とするプログラムに最もよく使用されます。または、複雑なグラフィカルライブラリの使用方法を学習する際の教育ツールとして使用されます。 必要に応じて現在のフレームを再描画する自動呼び出しは行われないため、即時モードレンダリングを使用する設計が不十分または不適切に実装されたプログラムでは、空白の画面または画面の空白の領域が表示されて保持されます。 1つのバリエーションは混合モードとして知られており、プログラムは、保持されたレンダリングフレームワークを所定の位置に保持しながら、イミディエイトモードスタイルの機能を介して特定の部分を制御しようとします。
多くのコンピューターアプリケーションでは、ディスプレイデバイスへの情報またはグラフィックスのレンダリングは、イベント駆動型プログラムアーキテクチャを介して実行されます。 つまり、画面は、プログラムまたはユーザーからの何らかのタイプの入力に応じてのみ再描画されます。 これは、ワードプロセッサやWebブラウザーなどのプログラムではうまく機能しますが、マルチメディアプレーヤー、アーティスティックレンダリングソフトウェア、ビデオゲームなどのアプリケーションでは機能せず、毎秒60回以上画面を再描画する必要があります入力。 解決策は、即時モードを使用することです。
オペレーティングシステムまたはグラフィックライブラリがディスプレイの更新とレンダリングのタイミングと方法を制御できるようにする代わりに、プログラムが完全に制御し、ディスプレイデバイスとアプリケーションコード間の障壁を取り除きます。 このようにして、プログラムはタイマーやその他のカスタムコードを使用して独自の表示ループを作成できるため、画面は目的の結果を得るために必要な回数だけ再描画されます。 イミディエイトモードを使用する場合の複雑な点の1つは、ジオメトリエンジンなどの保持モードレンダリングの透過機能の一部が利用できず、アプリケーションに独自の実装が必要になる場合があることです。 もう1つの問題は、プログラムがレンダリングループを許容可能な速度に維持するために大量の処理能力を必要とする可能性があることです。
即時モードを排他的に使用する代わりに、混合レンダリングモードを使用することもできます。 この設計では、保持モードのレンダリングフレームワークが所定の位置に保持されるため、グラフィックライブラリのすべての機能を使用できますが、特定の機能またはメソッドはオーバーライドされ、既存のレンダリングフレームワークを強制的に動作させることができるユーザー生成コードに置き換えられます即時モードに近い方法。 この方法は効果的ですが、ユーザーコードとライブラリコードの相互作用によっては、デバッグが難しく、予期しない結果になる可能性のあるコードを作成することもあります。