2011-10-21 10 views
0

フラグメントシェーダに渡す浮動小数点データがたくさんある場合は、均一な配列やテクスチャを使用することをお勧めしますか?それは、均一な配列がそれを行うための適切な方法だと思われるが、配列のサイズは限られているようだ(特に私が働いているところであるWebGLで)。何千ものオブジェクトについての情報を送りたいのであればデータを渡すためにテクスチャを使用するのに現実的な選択肢はありますか?これは悪いことか良いことですか?データをフラグメントシェーダに渡すためのユニフォーム配列またはテクスチャ?

答えて

2

テクスチャは膨大な量の浮動小数点データを処理する方法です。

可能であれば、4成分ベクトルにデータをパックし、フラグメントシェーダーからできるだけ多くの分岐命令を削除します。この考えは、GPU上でできるだけ少ないロジックを実行し、膨大な量のデータに対して実行する必要のあるいくつかの操作にシェーダをボイルすることです。

プログラミングの大規模並列ハードウェアは、CPUのコーディングとはまったく異なります。並列環境では、パフォーマンスに関する標準的な直感は完全に反対です。始めるのに適した場所:

http://developer.download.nvidia.com/GPU_Programming_Guide/GPU_Programming_Guide.pdf

関連する問題