今回はその実装について踏み込んでいきます。処理ステップの同期についてバッファの準備コンピュートシェーダーによるスキニングによる頂点変形では、変形処理前の頂点列と変形後の頂点列の2つのバッファが必要になります。従来のレンダリングパイプラインの場合では変形前のバッファのみで済みましたが、今回はそのようにはなりません。してアクセスできるようにしておきます。側にリソースが確保されるようにしておきます。コンピュートシェーダーへ2つのバッファを設定しますが、必要に応じてシェーダーリソースビューのディスクリプタも用意します。ルートパラメータに直接各バッファを設定するような場合にはこれは不要です。生成のためのコードの一部は以下の通りです。ここでは頂点バッファを結合している都合もあり、各メッシュ(サブメッシュ)ごとにバイト単位でのオフセットを考慮した設定をしています。作成・更新を行います。構築が終わった後で処理します。各インスタンスの配置場所であるワールド行列も一緒に設定されるため、動的に対応するためにはこちらの更新も必要になります。生成には以下のコードのように更新可能フラグをつけて行います。D3D12_RAYTRACING_ACCELERATION_STRUCTURE_TYPE_TOP_LEVEL;スクラッチバッファは更新時には再利用する形で使用しております。処理ステップの同期についてここまでのステップが進んで行くにあたり、重要な点があります。それは各ステップが完了してから次の処理を始めなければならない、という点です。使用しているバッファに適切なリソースバリア(遷移バリア・UAVバリア)を設定するのを忘れないようにしましょう。この実装が不十分であると、例えば以下のように動かした際に不正な描画結果が出てくることがあります。バリアを消去してみると、このような結果を見ることが出来るかもしれません(保証はしません)。バリアの漏れは少なくとも現状、警告が出るようなことがなかったので割と長時間、見落とししていました。自分の環境では上記のようにわかりやすい不正な結果でしたが、ある環境ではこのようにならないかもしれません。次のソフトウェアが見つかりました。使えるのでは?と思って試してみました。前回まででコードのクロスコンパイルをeclipse上で行うところまで出来たので、今回はデバッグについて設定を行っていきたいと思います。シリーズとで挙動の差があることに出遭いました。そのときの様子が以下の画像です。Geforce...プログラミングこれから何をやろうか前回のでひとまず熱を入れてやっていたことが終わったので、次のネタをぼちぼち取りかかる予定です。内容は少し前から興味があった動画のCODECを自分で作ってみようかと思ってます。いう意味であるとのことです。コメントをキャンセルメールアドレスが公開されることはありません。*サイト次回のコメントで使用するためブラウザーに自分の名前、メールアドレス、サイトを保存する。コメントデータの処理方法の詳細はこちらをご覧ください。ん日記.タイトルとURLをコピーしました。