1. ホーム
  2. opengl

[解決済み] Ken Silverman氏のVoxlapエンジンで使用されているアルゴリズムについて、どなたか教えてください。

2022-02-16 01:47:08

質問

私が調べたところでは、彼はスパースボクセルオクトリーとレイキャスティングを使用していました。 また、「Voxelstein」というゲームを見てみると、2次元の正方形の束ではなく、ミニチュアのキューブが実際に描かれているように見えます。 openglやdirect3dを使わずにどうやっているんだろう、と驚きました。

ソースコードに目を通してみましたが、私には何が起こっているのか理解するのは困難でした。 同じようなことを実装したいので、そのためのアルゴリズムが欲しいです。

レンダリング、カリング、オクルージョン、ライティングをどのように行ったのかに興味があります。 どんな助けでもありがたい。

解決方法は?

このアルゴリズムは、レイトレーシングというよりレイキャスティングに近いものです。Ken Silverman自身による解説はこちらです。

https://web.archive.org/web/20120321063223/http://www.jonof.id.au/forum/index.php?topic=30.0

要するに、グリッド上に、ボクセルのx,yスタックごとに表面ボクセルのrleリストを保存します(zが「上」を意味する場合)。4自由度と仮定して、画面上の各垂直線に対してレイキャストし、各キューブが描画されるときにクリップされる可視スパンのリストを維持します。6自由度の場合、似たようなことをしますが、スクリーンスペースで傾いているスキャンラインを使用します。