2017-06-12 8 views
0

GPUでエロージョンアルゴリズムを実装しようとしています。アルゴリズムの一部では、あるテクスチャに非常に小さな線を適用する必要があります。下の写真では、各ピクセルの線の領域が何であるかを知りたいと思います。次に、そのピクセルに量を加算します。線の長さはピクセルよりも小さく、その太さは1ピクセルです。ピクセルシェーダの非常に小さなラインの領域を計算する高速アルゴリズムが必要

enter image description here

それは(無人偵察機付き)、ピクセルシェーダですので、一般的なラインアルゴリズムは私のために動作しませんし、また、それが高速であることが必要です。 5%や10%のようなエラーがあってもかまいません。

答えて

1

正確な計算を行うには、矩形がピクセルとどのように交差するかをすべて調べる必要があります。その後、その領域をいくつかの原始的な形に分解し、それらの領域を合計します。すべての分岐は非常に簡単であり、非常に簡単ではありません。

より簡単な方法は次のとおりです。AB(おそらく5〜10)に平行な線をいくつか生成し、矩形領域内に均等に配分します。ピクセルのすべての線をクリップし、残りの長さを計算し、width要素(長さの幅を線の数で割ったもの)で乗算し、これらを合計します。精度は、行数で制御できます。また、この数が一定の場合、ループはコンパイラによってアンロールされ、分岐が大幅に少なくなります。

関連する問題