正方形のテクスチャでGL_QUAD(台形の形をしている)をレンダリングしようとしています。これを実現するためだけにOpenGLを試してみたいと思います。現在、テクスチャがひどく歪んでいて、本当に迷惑です。
通常、私はホモグラフィを計算するテクスチャをロードしますが、それは多くの作業と追加の線形計画法ライブラリ/直接線形変換関数を意味します。私は、OpenGLがこのプロセスを単純化できるという印象を受けています。
私はWebを見回して、「パースペクティブ-正しいテクスチャリング、Q座標、およびGLSL」と「OpenGLでの歪んだ/せん断されたテクスチャマッピング」を見てきました。
これらはすべて、ある種のホモグラフィ計算を行うか、OpenGLの一部を使用することを前提としているようです...何かアドバイスはありますか?
アップデート:
「画像空間の単純化とモーフィングを使用した静的環境のナビゲート」 [ PDF ]-9ページの付録Aを読んでいます。
(s、t、r、q)テクスチャ座標にモデルのワールドスペースzコンポーネントの頂点を乗算することにより、遠近法の修正を無効にしているように見えます。
したがって、台形の形をしたクワッドの特定のテクスチャ座標(s、r、t、q)に対して、4つのコンポーネントは次のようになります。
(0.0f, 0.0f, 0.0f, 1.0f),
(0.0f, 1.0f, 0.0f, 1.0f),
(1.0f, 1.0f, 0.0f, 1.0f),
(1.0f, 0.0f, 0.0f, 1.0f)
これはglTexCoord4f(s vert.z、r vert.z、t、q * vert.z)と同じくらい簡単ですか?それとも私はいくつかのステップを逃していますか?GL_TEXTURE glMatrixModeをいじるような?
アップデート#2:
それがトリックでした!皆さん、この問題はWeb全体にあり、簡単な答えはありませんでした。ほとんどの場合、元の形状と変換された形状の間のホモグラフィを使用してテクスチャを直接再計算します...別名、多くの線形代数と外部のBLASlib依存関係。