リアルタイムレイトレース劇的速度向上!

SHADER GURUのレイトレーシングサンプルを改良しました。

レイトレーシングのサンプルについて、速度を大幅に向上させました。

改良点は次のとおりです。

改良点その1
従来は、コンピュートシェーダーの計算結果を、次のステップで処理していました。

Step1 計算結果をいったんアプリ側で受け取り、

Step2 アプリ側でテクスチャーに計算結果を書き込み、

Step3 書き込んだテクスチャーを描画する。

このテクスチャーへの書き込みをコンピュートシェーダー内で行うようにしました。それにより、アプリ側にデータを送ったり、アプリ側で書き込む処理が不要になりました。(step1とStep2が不要になりました)

図にすると次のような感じです。

raytrace_rev1

raytrace_rev2
改良点その2
②従来は、シェーダー側のnumthreadを[1,1,1]としていましたが、シェーダー側にサイズを#includeすることにより、アプリ側のDispatchとシェーダー側のnumthreadを同じ数にしました。

これらの改良により、速度は従来比で40倍(4000%)もの速度向上を達成しました。

従来の速度

 

改良後の速度

 

従来の速度

 

改良後の速度

読者の方は専用ページから改良後のサンプルをダウンロードできます。

 

About

コメントを残す

メールアドレスが公開されることはありません。