2

描画している 3D シーンがあり、画面の幅全体に引き伸ばされるダイアログ テキスト用の四角形を描画したいのですが、パフォーマンスを考慮して、これを実現する最善の方法は何ですか?

正確なピクセル配置に使用できる glOrtho() を見つけましたが、これは行列乗算タスクであるため、会話のあるシーンではアプリが重く感じませんか? はいの場合、Z 距離に応じて左ウィンドウ コーナーの X 位置を見つけ、そこから QUAD を描画するための数学的な解決策を見つけようとする必要がありますか? (これも可能ですか?)

4

1 に答える 1

4

glOrtho()行く方法です。

OpenGL のレンダリング パイプラインの過程で、プリミティブ アセンブリ段階で、すべての頂点が目の座標からクリップ座標に変換 (投影) されます。射影行列が 3D 遠近法または 2D 直交化に使用されるかどうかにかかわらず、ラスター化が開始される前に頂点ごとに 1 つの行列乗算が行われます。

glOrtho()射影行列を正投影行列に変更しますが、行列はフレームごとに 1 回だけ生成する必要があり、そのために必要な方程式は非常に単純です。

ここに画像の説明を入力

(画像クレジット: MSDN)

射影行列を取得したら、行列の乗算を考えても怖がらないでください。これはまさにビデオ カードがそのように設計されていることであり、最近のどのプロセッサや GPU にとっても恐ろしい作業ではありません。

于 2012-12-31T18:45:20.530 に答える