[解決済み] 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自由度の場合、似たようなことをしますが、スクリーンスペースで傾いているスキャンラインを使用します。
関連
-
[解決済み] X リクエストが失敗したときのエラー。BadValue (整数パラメータが操作の範囲外です)
-
[解決済み] glReadPixelsはどのように動作するのですか?
-
[解決済み] ハードウェアカーソルとはどのようなもので、どのように機能するのですか?
-
[解決済み] OpenGL GLXエクステンションはサポートされていません
-
[解決済み] glutSpecialFuncを正しく使うには?
-
[解決済み] OpenGL - glDepthMaskの使い方についての質問です。
-
[解決済み】GLSLシェーダをデバッグする方法は?
-
[解決済み] OpenGLのフレームバッファとレンダーバッファの概念と違いについて教えてください。
-
[解決済み] バーテックスシェーダとフラグメントシェーダの比較 [重複].
-
[解決済み] OpenGLでglLoadIdentity()は何をするのですか?
最新
-
nginxです。[emerg] 0.0.0.0:80 への bind() に失敗しました (98: アドレスは既に使用中です)
-
htmlページでギリシャ文字を使うには
-
ピュアhtml+cssでの要素読み込み効果
-
純粋なhtml + cssで五輪を実現するサンプルコード
-
ナビゲーションバー・ドロップダウンメニューのHTML+CSSサンプルコード
-
タイピング効果を実現するピュアhtml+css
-
htmlの選択ボックスのプレースホルダー作成に関する質問
-
html css3 伸縮しない 画像表示効果
-
トップナビゲーションバーメニュー作成用HTML+CSS
-
html+css 実装 サイバーパンク風ボタン
おすすめ
-
[解決済み] X リクエストが失敗したときのエラー。BadValue (整数パラメータが操作の範囲外です)
-
[解決済み] FreeGLUTとGLFWの違いは何ですか?[クローズド]
-
[解決済み] glBlitFramebufferを使用してテクスチャを表示する
-
[解決済み] OpenGL GLXエクステンションはサポートされていません
-
[解決済み] Ken Silverman氏のVoxlapエンジンで使用されているアルゴリズムについて、どなたか教えてください。
-
[解決済み] gl_PointSizeの動作について
-
[解決済み] gl_FragColorとout vec4カラーを使用する?
-
[解決済み] gluPerspectiveパラメータ - その意味するところは?
-
[解決済み] 最新のOpenGLでレイトレーシングを行うには?
-
[解決済み] OpenGLでglLoadIdentity()は何をするのですか?