Unity 3Dで彫刻ゲームのようなものを作っています。
石のオブジェクトをドリルのようなオブジェクトで削っていくゲームなのですが、
石のオブジェクトに、
石のボリュームデータをraw形式に変換したものを張り付けるようなプログラムやアセットを探しています。
石が削れた時に、断面がrawデータから計算され、削れたところ固有の断面を表示するようにしたいです。
シェーディングに用いるスクリプトや、ヒントとなるgithubプログラム等があればご教示頂きたいです。
「石のボリュームデータをraw形式に変換したもの」とおっしゃるのは、断面を積層したCTスキャンみたいなデータということでしょうかね?
そういったデータにはTexture3D(https://docs.unity3d.com/2020.2/Documentation/Manual/class-Texture3D.html )が使えないでしょうか。いまいち具体的に参考になりそうなサイトを提示できずこちらの欄へのコメントにとどめますが、削られた石モデルの頂点座標を使ってTexture3Dから色をサンプリングすれば、削られ方に応じてそれらしく断面を描かせることができるような気がします。
Bongoさん、ご回答誠にありがとうございます。
仰ります通り、断層を積層したCTになります。DICOMからraw変換し(これも一筋縄ではいかなさそうなのですが)、rawフォーマットを張り付けるスクリプトを書けないかと模索しています。シェーディングのスクリプトはその他のオブジェクトを動かしたりするスクリプトと違ってイメージがわきにくく、なんとなく取っ付きづらく、ご質問させて頂きました。
教えて頂きましたページをご参考にもう少し見てみます。。。
ご丁寧に本当にありがとうございます!
「Unity でボリュームレンダリングをしてみる - vol.1 データ表示 - 凹みTips」(http://tips.hecomi.com/entry/2018/01/05/192332 )ですとかの記事も取っかかりになるかもしれませんね。
記事では最終的には内部を見通せるトランスルーセントな外観にしていますが、その前段階のモデル表面にTexture3Dの断面を描画する部分の方が、むしろご質問内容に近い内容のように思います。
あなたの回答
tips
プレビュー