はい、ひとまずプラグインをフォルダに置けば、これを実行するように作り終えました。計測した距離点群の3D表示は少々ハードルが高いので、画像を簡単に処理するフィルタプラグインを試しに用意します。はい、3x3のガウスフィルタをカラーRGB画像にかけられるようになることを確認しました。引き続き、3D点群表示に向けて作業します。フィルタリング処理が激重だったので、マルチスレッド化してみました。CPU負荷は分散されたのですが、フレームレートは期待通りまでは改善しませんでした。リアルタイムのカメラ映像にフィルタ処理をかけるって結構面白いですよね。演算していますし、こんなものでしょうか?引き続き、3D点群表示に向けて作業します。は...まぁ色々あって、ローカルパッケージ作成ルールを設けました。元に作成したプラグインはこのパッケージを参照するように修正さらにローカルで起動することを確認し、クラスライブラリ化、プラグイン化を行いました。プラグイン機能から呼び出した結果が次のとおり(まだ距離点群は表示していません)いやはや、依存関係やターゲットプラットフォームなどを気にしないとここまで来られないのでそれなりに知識を持った人じゃないとけっこう実行時エラーで泣くことになりそうです。転送して、この話の中盤で作成したエフェクトを実行してみましょう。そんなシーンを作成します。デバイスにアクセスして、シェーダ変数に情報を送る処理などどうするの?といった疑問に答えるドキュメントをコメントに用意しました。側もいくつか修正、ローカルパッケージも更新しました。参照パッケージ更新後のプラグインに修正を加えます。(疲れた...)ひとまず実装完了です。おや?何もかも遠く、そして青いだけ...そして1,2分放置するとコードを示さずクラッシュしました。青い件は入力単位が[mm]であることが理由ですね、単位を[m]に直します。1,2分放置してもクラッシュしなくなりました。シェーダは一度コンパイルしたものを渡せば、解決する模様ですね。(なんか危ないな...)あ、10分ほどしてクラッシュしました。直しても次の結果になります。真っ先に疑ったのはシェーダコードの不備です。実行し、別のオブジェクトの頂点を利用します。入力データを使って、深度画像を表示しているので入力データが誤っているとも思えないのですが...あ!そうか、であれば入力レイアウトと入力データが噛み合っていないのかもしれません。固定の入力レイアウトを用意してみます。入力となるよう書き換えます。結果は次のとおり形は正しい...けれど、ずいぶんとカメラに近い認識になっていますね。カメラに近いことを意味するのだが...倍率間違えたかな?)もう少しシェーダコード修正します。あと、クラッシュしなくなりました。倍率間違えていました。直した結果がこちらあれ?またクラッシュしました。方にロック、アンロック機能を追加しデバイス操作を行う一連の作業をロック中に行なうようにしました。結果、1時間実行してもクラッシュしないことを確認。3D点群表示が行えることを確認しました。いや、長かったですね。次回の冒頭でまとめを行います。機能を拡張させるお話を予定。