7

新しいRed BookのTexture Viewsについて読んでいます。322ページに次のように書かれています。

OpenGL を使用すると、それぞれ独自の形式と寸法を持つ複数のテクスチャ間で 1 つのデータ ストアを共有できます。

(テクスチャ ビュー経由)

今、私の質問は次のとおりです。

単一のテクスチャ ソースが複数のインスタンス (この場合はテクスチャ ビュー) によって参照されているということですか?

たとえば、同じテクスチャ オブジェクトを異なるサンプラーで使用する場合とどう違うのでしょうか?

また、テクスチャ ビューを介してテクスチャ ピクセルを変更すると、元のテクスチャ オブジェクトのピクセルが変更されるということですか?

4

1 に答える 1

7

はい、データ ストアを共有するということは、異なるオブジェクトから同じストレージにアクセスすることを意味します。ポインタを共有するということは、2 つの異なる場所から同じメモリにアクセスできることを意味します。

サンプラー オブジェクトを使用する場合とは異なり、それらの間に類似点はありません。Sampler オブジェクトは、サンプリング パラメータを格納します。テクスチャ オブジェクトには、ミップマップ レンジスウィズル マスクなど、サンプリング用ではないパラメータがあります。これらはサンプラー状態ではありません。それらはテクスチャ状態です。

テクスチャ オブジェクトには、特定のテクスチャ タイプもあります。同じストレージの異なるビューは、 (制限内で)異なるテクスチャ タイプを持つことができます。テクスチャGL_TEXTURE_2Dの単一レイヤーのビューである を持つことができます。6 つ以上のレイヤーを取得して、そこから を作成できGL_TEXTURE_2D_ARRAYます。GL_TEXTURE_2D_ARRAYGL_TEXTURE_CUBE_MAP

Sampler オブジェクトではそれができません。

テクスチャ オブジェクトには、ストレージの解釈方法を定義する内部形式があります。同じストレージの異なるビューは、(制限内で)異なる形式を持つことができます。サンプラーは形式に影響しません。

Sampler オブジェクトもそれを行うことができません。

テクスチャ ビューを使用して、サンプラー オブジェクトと同じ効果を実現できますか? いいえ。サンプラーを使用すると、テクスチャ オブジェクトからサンプリング パラメータを切り離すことができます。これにより、複数の異なるオブジェクトに対して同じパラメータ セットを使用できます。したがって、1 つのサンプラー オブジェクトを変更して、それを複数のテクスチャで使用できます。各テクスチャに移動して変更する必要はありません。

これらは、2 つの異なる目的のための 2 つの異なる機能です。

于 2013-06-17T16:57:07.927 に答える