対数ラスタライザを作った。

Share

こんにちわ。
Pocolです。
もう年末ですね,みなさんいかがお過ごしでしょうか?

自分は冬休みの宿題としてLogPSMを実用的に実装しよう!というものをやっていたのですが,コンピュートシェーダを使ってのラスタライザ処理がシーンに結構依存して,「カメラぐりぐり動かしたいのに,これはだめだなぁ」という結論に達してしまいました。
一応これからプランBに移りますが,せっかく書いたコードをそのまま放置しておくのもあれだなぁ~と思ったので,

デバッグ用途に作成したCPUでラスタライズするコードを公開しておきます。
もし,バグがあれば正しい修正方法と共にご指摘いただけると幸いです。

線形ラスタライズは,https://github.com/ProjectAsura/LinearRasterizerです。
一応下記のような感じになります。
depth

対数ラスタライズは,https://github.com/ProjectAsura/LogarithmicRasterizerです。
実行結果は下記のようになります。
color

ラスタライズ処理自体は,重心座標を用いて計算しています。
線形ラスタライズ自体の説明はhttp://www.sunshine2k.de/coding/java/TriangleRasterization/TriangleRasterization.htmlあたりが詳しく書いてあります。

対数ラスタライズの実装についての説明は,”Logarithmic Perspective Shadow Maps”の CHAPTER 7. Logarithmic rasterization hardware(pp.148-160)に詳細が載っていますので,そちらをご参照ください。

コメントを残す

メールアドレスが公開されることはありません。 * が付いている欄は必須項目です

日本語が含まれない投稿は無視されますのでご注意ください。(スパム対策)