3Dの地形について
学生 2023/08/15(Tue) 15:18
現在、3Dの経営ゲームを作っています。
地形をユーザーがいじれたらゲームの幅が広がると思い、サンプル37.10
https://zenn.dev/reputeless/books/siv3d-documentation/viewer/tutorial-3d-2#37.10-%E5%9C%B0%E5%BD%A2
を見ながら地形を作れる機能を作ってみていたのですが、いくつかわからないことがあったので質問させていただきます。
メッシュとレイの交差地点を取得することは可能でしょうか。また、可能なのであればどのようにすればよいのでしょうか。
サンプルの地形をメッシュ以外で表現するにはどうすればいいでしょうか。
ご教授いただけると幸いです。
Reputeless 2023/08/18(Fri) 17:51
Heightmap とマウスレイの交差は、Grid<float> をもとに四分木で BoundingBox の計算をすると良いと思います。
下記の実装は枝刈りをしっかりしていないので計算量改善の余地はありますが、実用速度で動作します。
https://gist.github.com/Reputeless/1878bb37c8a2527719e860cae951e27a
交差した最も深い階層の BoundingBox(複数の場合がある)のうち、最もカメラに近いものが、選択しているセルです。
将来の公式サンプルで、より改善された実装を提供予定です。