Microfacet BRDF シェーディング モデル (Cook-Torrance モデルに類似) を実装しようとしていますが、この論文で定義されている Beckmann 分布に問題があります: https://www.cs.cornell.edu/~srm/publications /EGSR07-btdf.pdf
ここで、M はマイクロファセット法線、N はマクロファセット法線、ab は [0, 1] の間の「硬度」パラメータです。
私の問題は、特に ab が非常に小さい場合に、この分布が非常に大きな値を返すことが多いことです。
たとえば、ベックマン分布は、次の式に従ってマイクロファセット法線 M を生成する確率を計算するために使用されます。
確率は [0,1] の範囲内である必要があります。ベックマン分布で 1000000000+ のサイズの値が得られた場合、上記の関数を使用してこの範囲内の値を取得するにはどうすればよいでしょうか?
それで、分布をクランプする適切な方法はありますか?それとも、それまたは確率関数を誤解していますか? 値が 1 を超えた場合は単純に 1 にクランプしようとしましたが、実際には探していた結果が得られませんでした。