Posted on 2015年1月7日, 5:31 PM By Northbrain
SHADER GURUのレイトレーシングサンプルを改良しました。
レイトレーシングのサンプルについて、速度を大幅に向上させました。
改良点は次のとおりです。
改良点その1
従来は、コンピュートシェーダーの計算結果を、次のステップで処理していました。
Step1 計算結果をいったんアプリ側で受け取り、
Step2 アプリ側でテクスチャーに計算結果を書き込み、
Step3 書き込んだテクスチャーを描画する。
このテクスチャーへの書き込みをコンピュートシェーダー内で行うようにしました。それにより、アプリ側にデータを送ったり、アプリ側で書き込む処理が不要になりました。(step1とStep2が不要になりました)
図にすると次のような感じです。
改良点その2
②従来は、シェーダー側のnumthreadを[1,1,1]としていましたが、シェーダー側にサイズを#includeすることにより、アプリ側のDispatchとシェーダー側のnumthreadを同じ数にしました。
これらの改良により、速度は従来比で40倍(4000%)もの速度向上を達成しました。
従来の速度
改良後の速度
従来の速度
改良後の速度
読者の方は専用ページから改良後のサンプルをダウンロードできます。
No comments yet Categories: 3DCG, ノースブレインの本