問題タブ [voxel]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
opengl - ジオメトリ シェーダーのボクセル化が間違っている
モデルを合法化するために、(シェーダー メーカーを使用して) ジオメトリ シェーダーを作成しようとしています。まず、ボクセル化を試みていますが、結果が良くなく、どこが悪いのかわかりません。
次のコードでは、入力三角形の重心を見つけて、作成するボックスの中心にします。
私は世界で最もエレガントなコードではないことを知っていますが、最初に最初に行き、それを機能させる必要があります...
これは私が得ているものです:
これは私が得るべきものです:
opengl - ボクセル コーン トレーシング ディレクショナル ライト ソフト シャドウ
現在、このペーパーのセクション 8.3.1 で説明されているように、コーン トレース ソフト シャドウを実装しようとしています。
フラグメント シェーダーで Sponza シーンを描画し、「ボクセル フラグメント」を 3D テクスチャに格納することによってボクセル化された、3D テクスチャ内の階層的なミップ マップ ボクセル構造を取得しました。ミップマッピングは計算シェーダーで行われます。
著者は、ポイント ライトとエリア ライトのソフト シャドウを作成する方法を説明していますが、これは非常に簡単に理解できますが、Sponza シーンで使用されるディレクショナル ライトについては説明していません。
点光源の場合、円錐は点光源からトレースされ、その半径は、シーンの「ボリューム」と呼ばれるシーンの各部分に向かって移動するにつれて増加します。ただし、ディレクショナル ライトには特定の光源点はなく、方向のみがあります。この概念をディレクショナル ライトで動作させるにはどうすればよいでしょうか? 円錐は別の形でなければなりませんよね?
c# - XNAでテクスチャのない色付きの立方体を作成する適切な方法は?
現在、このコードを C# XNAに変換しようとしていますが、CreateCube メソッドの変換に問題があります。XNA で頂点リストを作成するためのリソースが古くなっているか、機能していないか、機能していないようです。
誰か助けてくれませんか?各面の頂点を手動で設定し、(これらの) キューブまたはキューブの一部を VertexList に追加してレンダリングすることにより、色付きのテクスチャのないキューブを作成したいだけです。
opengl - ジオメトリシェーダーを使用したキューブレンダリングの最適化
私の最初のopengl'voxel'プロジェクトでは、ジオメトリシェーダーを使用してgl_pointsからキューブを作成しています。これは非常にうまく機能しますが、もっとうまくできると確信しています。アルファカラーでは、どの面をレンダリングするか(他の立方体に隣接する面をスキップするため)に関する情報を渡します。次に、「参照」立方体定義を使用して、表示される面の頂点を作成します。すべての点に3つの行列が掛けられます。本能は、多分顔全体がすべての点ではなくそれらで乗算される可能性があると私に言いますが、私の数学のスキルは貧弱なので、アドバイスしてください。
-------更新されたコード:------
java - チャンク生成アルゴリズム/コード
だから基本的に私は「ボクセルワールド」ジェネレーターを作ろうとしています(私はボクセルという言葉を非常に曖昧に使っています。単なる箱のようなものです)。メソッドを作成するまではcreateChunk();
、基本的にcreateVoxel()
メソッドと for ループを使用して数回配置し、毎回 X を 1 ずつインクリメントします。
これをより簡単に、よりランダム化する方法があるかどうか知りたいのですが、noise
私は役立つと思いますか? しかし、私はこれを使用する方法を理解できないので、誰かが私の合併症に光を当てることができますか?
ありがとうございました :)
java - トリプル int 配列の使用
さて、私は int 配列を作成してint position = new int[160][250][160]
、3D 空間での位置を表します ( [x][y][z]
) ある点から別の点に線を引きたいのですが、その配列から数値を取得する方法について混乱していますか?
[78][89][30]
ポイントから に線を引きたい場合[34][75][25]
、これらの配列の 1 つだけから特定の数値を取得するにはどうすればよいですか? それとも3つの別々の配列を作成するのが最善でしょうか? (ボクセルを念頭に置いて)?
ありがとう - シャムス
c++ - グループ化されたメッシュでの鬼の衝突検出?
ボクセル ベースのゲームの作成を実験しており、何百万ものキューブをレンダリングしています。
レンダリングを高速化するために、32x32x32 のキューブを 1 つのメッシュにグループ化するチャンクにキューブをグループ化しています。これは、GPU へのレンダリング呼び出しの数を減らし、フレームレートを上げるためです。
ブロックを構築するために ManualObject を使用していますが、完全に機能します。ただし、問題は、個々のブロックが個々のシーン ノードに結び付けられたエンティティではないため、衝突検出を行う方法が見つからないことです。
ogre には、ManualObject のサブメッシュを個別に操作する方法がありますか?
c++ - OpenGL テクスチャの白い線の隙間
サイド プロジェクトとして、ボクセル テレインの作成を試みています。しかし、残念なことに、テクスチャが正しく機能していないようです。GL_REPEAT と GL_NEAREST でテクスチャをマッピングしています。テクスチャはスプライト シートにあり、16x16 です。現在、デバッグにMinecraftのテクスチャを使用しています。テクスチャ 1 テクセルを移動して修正しようとしましたが、これもうまくいきませんでした。
これを処理するコードは次のとおりです。
遠くに行くほど、線がはっきり見えるようです。そこで、ミップマップを削除してみました。これも役に立ちませんでした。私はこれに対処する方法に途方に暮れています。何か案は?これはテクスチャです:
opengl - ボクセルコーントレースソフトシャドウ
最近、OpenGL 4.3でボクセルコーントレースを使用して、光の方向にコーンをトレースし、不透明度の値を累積することで、ソフトシャドウを実装しました。
私が解決または非表示にしようとしている重要なことは、オクルージョンされた表面がオクルーダーに近づくにつれて非常にボクセル化されたシャドウイング効果であり、表面のボクセル化によってシャドウ内のクリアスポットを非表示にします。私は低解像度のボクセル64x64x64を使用しています。ただし、高解像度のボクセルを使用した場合でも、より高いミップマップレベルの低解像度のボクセルの一部がトレースにキャプチャされます。
ですから、私の最初のアイデアは次のとおりです。シャドウの最も柔らかい部分を最も遠くに保ち、オクルーダーに近いシャドウの部分をシャドウマップに置き換えたいと考えています。シャドウマップは、各オクルーダーから離れるにつれてフェードし、コーントレースシャドウとどうにかしてブレンドします。
シャドウマップの各オブジェクトからの距離に基づいてシャドウをフェードアウトし、コーントレースシャドウにスムーズに溶け込ませる方法を誰かが考えられますか?
私が持っているもう1つのアイデアは、オクルーダーに近いサーフェスにシャドウをレイトレースすることですが、これはおそらくコストがかかりすぎます。
または、ソフトシャドウアルゴリズムの改善に役立つ他のアイデアを歓迎します。
私はまた、それが動いていることを示すためにビデオを載せました:
https://www.youtube.com/watch?v=SUiUlRojBpM
シャドウイングの問題を解決する方法はまだ見つかりません。
c - 立方体を拡大して 3D 空間に配置する
白いキャンバスに並べられた立方体を表示するプログラムを作成しましたが、その立方体を複数にする方法がわかりません。10 x 10. もう 1 つの質問は、3D 空間で同じ立方体を作成するにはどうすればよいかということです。
これが私のコードです: