2011-07-30 3 views

答えて

3

実際に「意味」はありません。シェーダを使用している場合は、必要な意味を割り当てることができます。

たとえば、私たちのゲームでは、実際のテクスチャにはxyを使用し、サンプルにはテクスチャを使用し、輝度を制御するにはw(第4コンポーネント)を使用しました。

3Dと4Dのテクスチャのように、それぞれ実際に3と4のテクスチャが必要なことがありますが、それはその意味であると思います。

これらの主な理由は、グラフィックスカードが4つのコンポーネントベクトルで動作するためです。 2Dテクスチャコードを渡すと、それはまだ舞台裏では4ベクトルです(他のrとq成分は設定されていません)。 OpenGLは、必要になる可能性のある機会に、それらを使用する機能を提供します。

+0

私はOpenGLの背後にある数学を理解しています。応用数学で学位を取得しています.4番目の引数が4番目のテクスチャ次元かどうかを尋ねています。それでは、どのようにして4次元テクスチャを作成しますか? – Lu4

+0

私が言おうとしていることは、あなたが望むものであれば(シェーダを使用している場合)何でもできることです。 4次元テクスチャからサンプリングした場合、それは4番目のテクスチャディメンションです。私はそれがどれほど広くサポートされているのかよくわからないが、これを使う:http://www.opengl.org/registry/specs/SGIS/texture4D.txt – Hannesh

1

をテクスチャの4次元をspecifすることができますが、どのように4次元のテクスチャを作成します。私は第4座標を使う方法に慣れていません。

しかし、すべての同種のOpenGLベクトルが4つのコンポーネントを持っているので、それを利用できるのは妥当と思われます。

+0

最初の座標は「x」、2番目の座標は「y」、3番目の座標は「z」 – Lu4

+0

ですが、4番目の座標はどういう意味ですか? – Lu4

4

rコンポーネントは、3D(ボリューム)テクスチャの深さまたは2Dテクスチャ配列のレイヤのいずれかを指定するために使用されます。

Q成分は、頂点位置ワット要素と同様、同じ役割を果たしている:それは、透視テクスチャ投影における透視分割をスケーリングするために使用されます。

+0

これは、4番目の座標がちょうど4番目のテクスチャの次元であることを意味しますか? – Lu4

+1

@ Lu4:そうではありません。技術的にはちょうど別の番号です。しかし、少し知られている事実 - 同質の座標分割は、固定機能パイプラインのデフォルトでテクスチャ座標に適用されます(テクスチャマトリックスBTWによって変換されます)。テクスチャ座標からサンプリング座標への実際のマッピングは、アクティブなテクスチャターゲットと、使用されるサンプリング関数上のサンプラの場合によって異なります。効果的に、テクスチャ座標のサンプリング座標への全体マッピングは、頂点から正規化されたデバイス(=ウィンドウ)座標への変換プロセスに似ている。 – datenwolf

0

4次元テクスチャなどはありません。少なくとも、拡張機能がないわけではありません。

glTexCoord4Dが存在する理由は、4つの値を渡すことです。現代のシェーダベースのレンダリングの世界では、「テクスチャ座標」はテクスチャ座標である必要は全くありません。シェーダは、それが何をしても何のためにも使う値で​​す。

シェーダのtexture lookup functionsの多くは、実際のテクスチャの次元数よりも多くのテクスチャ座標次元を使用します。 shadowテクスチャのすべてのテクスチャ関数は、比較値を表す余分な座標をとります。 Projテクスチャ関数はすべて、homogeneous coordinate systemの同次座標を表す余分な座標を取ります。

固定機能ランドでは、3Dテクスチャの投影テクスチャに4Dテクスチャ座標を使用できます。したがって、4D座標はhomogeneous coordinate systemにあります。

関連する問題