私はコンピュータグラフィックスの論文を読んできましたが、シェイダーコードのテクスチャをクエリするコンテキストでは、「依存テクスチャの読み込み」または「依存テクスチャフェッチ」という用語がよく使われます。従属テクスチャの読み込みと、これと「通常の」テクスチャの読み込みの違いは何ですか?依存テクスチャとは何ですか?
答えて
「依存テクスチャ読み取り」は、1つのテクスチャルックアップ(または他のシェーダ内計算)の戻り値を使用して、2番目のテクスチャからルックアップする場所を決定するときです。重要なことは、シェーダの実行途中までテクスチャ座標(あなたが参照する場所)は決まっていないことです。シェーダで行うことのできる静的解析はありません(すべてのパラメータの値を知っていても)それは、座標が前倒しであることを教えてくれるでしょう。また厳密にはは、2つのテクスチャ読み取りを命令し、ドライバなどの最適化によって実行順序をどれだけ変更できるかを制限します。
古いグラフィックカードでは、この種のものにかなりの制限がありました。たとえば、あるポイント(IIRC)では、複数のテクスチャからルックアップできますが、少数の異なるテクスチャ座標でしかルックアップできません。ハードウェアは、特定の種類の依存テクスチャの読み込みが不可能であるか非常に非効率的であったかのように実際に実装されました。
最新の世代または2枚のカードでは、これについて心配する必要はありません。しかし、あなたは実際にそのようなことに細心の注意を払わなければならなかった数年前から本や記事を読んでいるかもしれません。
通常のテクスチャの読み取りは、シェーダに渡されるテクスチャ座標を使用します。従属テクスチャの読み込みは、シェーダで以前にアクセスした別のテクスチャからフェッチされた値を使用して部分的に計算されたテクスチャ座標で行われます。したがって、第2のテクスチャアクセスは、第1のテクスチャアクセスからフェッチされた値に「依存する」。
受け入れられた回答(およびその下の回答)は、別のテクスチャの出力を使用して従属テクスチャの読み込みを誤って制限します。それは間違っている。
依存テクスチャは、シェーダプログラムに渡された正確な座標ではない座標で読み取られたテクスチャです。スウィズルしても、依存テクスチャが読み込まれます。
これはApple's OpenGL ES programming guideから直接取得したものです。
ありがとう、@ benthehutt、私は私の答えで明らかにした。 –
- 1. スプリングコンテキスト依存とスプリングコア依存の違いは何ですか?
- 2. 依存性注入のSpringの最小依存性とは何ですか?
- 3. 依存性注入フレームワークとは何ですか?
- 4. Javaの状態依存クラスとは何ですか?
- 5. 依存型入力とは何ですか?
- 6. コンテキスト依存音響モデリングとは何ですか?
- 7. Mavenのリポジトリと依存関係の違いは何ですか?
- 8. 依存性注入とは何ですか?
- 9. artifactId "oracle"とのmaven依存関係は何ですか?
- 10. 推移Maven依存関係とは何ですか?
- 11. LLVM DAGのグルーとチェーンの依存関係は何ですか?
- 12. Java EE7とCDI 2.0のMaven依存関係は何ですか?
- 13. 特にproject.cljとは何ですか:依存関係は必須ですか?
- 14. レンダリングパイプラインのテクスチャ空間とスクリーンスペースとは何ですか?
- 15. html5とcss3は何に依存していますか?
- 16. Gradle構成の依存関係とGradle構成の受信依存関係の違いは何ですか?
- 17. 依存性を注入する目的は何ですか
- 18. Moncaìが依存するツール/スタックは何ですか?
- 19. CPUユーティリティが依存する要因は何ですか?
- 20. PID_MAXがLinuxに依存する要因は何ですか?
- 21. %(AdditionalDependencies)マクロとは何ですか? projectProperties->リンカー>追加の依存で
- 22. SDLの追加のファイル依存関係は何ですか?
- 23. reg:sqlContextのライブラリ依存関係は何ですか?
- 24. com.android.settings(ICS)の依存関係は何ですか
- 25. spring-webmvcの浅い依存関係は何ですか?
- 26. 依存性注入容器のポイントは何ですか?
- 27. 依存性注入の仕事は何ですか?
- 28. JMSのスプリングブート依存関係は何ですか?
- 29. location.placesの最小限の依存性インポートは何ですか?
- 30. Weblogic 8.1.6の共通の依存関係は何ですか
実際、PowerVRによれば、かなり最近のハードウェアに注意を払う必要があります:-) http://bit.ly/yvSnM – Justicle
私のGTX 570では、フラグメントシェーダの依存テクスチャルックアップは、独立したテクスチャルックアップよりも優れています。 (これは、私が作業していたエンジンをゼロから/ FPSを20 FPSに詰め込んだものです)幾何学シェーダの依存する「定数配列検索」を削除することで、ややスピードアップをやや少なくしました。 (プリミティブカウントはこの値に依存していました。)コンテキストはすべてです! – Philip
これは間違っています。私の答えを見てください。 – benthehutt