問題タブ [3d-texture]
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-es - GLSL:2Dテクスチャを使用した3Dテクスチャのシミュレーション
タイルを含む大きな2Dテクスチャを使用して3Dテクスチャルックアップをシミュレートするコードを思いつきました。3Dテクスチャは128x128x64で、大きな2Dテクスチャは1024x1024で、128x128の64タイルに分割されています。
フラグメントシェーダーのルックアップコードは次のようになります。
タイリングロジックは正常に機能しているようで、このコードには1つだけ問題があります。次のようになります。
ボクセルのレイヤーの間に奇妙な1〜2ピクセル幅の縞があります。縞模様は、変化すると境界線に表示されd
ます。
私はこれに2日間取り組んできましたが、ここで何が起こっているのかまだわかりません。
opengl - 2D 画像のスタックを 3D 画像に変換、ボリューム レンダリング
CT データのテクスチャ ベースのボリューム レンダリングを実行したいと考えています。opengl (本当に jogl) で 3d テクスチャとして使用したい 2d CT 画像のスタックがあります。パラメータの変更を表示するとシフトするポリゴン プロキシ ジオメトリを使用する方法で行う必要があります。2D 画像を 1 つの 3D テクスチャに変換するにはどうすればよいですか? opengl がどのように 3D 画像をフォーマットすることを期待しているかについて、私は何も見つけることができませんでした。私はこれを見ました: https://stackoverflow.com/questions/13509191/how-to-convert-2d-image-into-3d-imageですが、同じではありません。
また、このボリューム レンダリング手法についてはまだ混乱しています。3D テクスチャの 3D 位置を取り、それをクワッドの 2D コーナーにマッピングすることはできますか? http://www.felixgers.de/teaching/jogl/texture3D.htmlの例を見つけましたが、3D 頂点を使用する必要があるかどうかはわかりません。明示的な例を含むより多くの情報源を知っている人はいますか?
opengl - キューブ上のOpenGL3Dテクスチャ
OpenGLに単純な3Dキューブ(すべての辺が同じサイズ)と3Dテクスチャがあります。3Dテクスチャを立方体にマッピングしたいと思います。
結果は、キューブ内のすべてのポイントがテクスチャ内の対応するポイントから色を取得するように、ずっと色付けされたキューブになるはずです。これは、少なくとも3Dテクスチャの私の解釈です。
これを行う方法?GL_QUADS(6つのクワッド)で立方体を作成し、6つの側面のそれぞれに1つのテクスチャ座標を指定することは機能しないと思いますか?
キューブを作成する必要があり、glTexCoordを正しい方法で指定してキューブを作成していると思います。
opengl - pyglet で大きな 3D テクスチャを使用する
事前に計算された速度ベクトル フィールドを使用して GLSL パーティクルを実行しようとしています。これらのベクター フィールドは、それぞれが z 平面の異なる「スライス」に対応する ~13 個の 1024x170 float テクスチャとして格納されます。理想的には、これらを寸法 1024x170x13 の 3D テクスチャとしてロードして、シェーダーで自動補間できるようにしたいのですが、ローカル実装では GL_MAX_3D_TEXTURE_SIZE が 256 になります。は 256 なので、うまくいきません。
そこで、私の次のステップは、GL_TEXTURE_2D_ARRAY を使用して、シェーダーで平面間の補間を行うことでした。残念ながら、pyglet はこの機能を公開していないようです (??):
次のステップは、すべてのテクスチャを個別にバインドし、それらをすべて個別にシェーダーに渡し、そこで計算を行うことです。しかし... 私はここで間違った木を吠えていますか? 確かにこれを行うためのより良い方法があるはずです。
python - pycollada を使用した 3D ブロックのテクスチャリング
建物の 3D モデルを開発するために、関連する KML ファイルと共に .DAE (COLLADA) ファイルを生成できる Python スクリプトを開発しています。建物の通りの画像があります。ストリートイメージとは、各建物の正面イメージのことです。これらの画像をそれぞれの建物モデルの上にテクスチャとして配置する必要があります。Pythonを使用してこれを行うための適切な方法が見つかりません。これまで、建物を表すマップ上に配置できる空白の立方体または直方体を生成することに成功しました。画像を入力として、これらのモデルの前面にテクスチャとして画像を配置する必要があります。親切に助けてください。
opengl - OpenGL での完璧な (3D) テクスチャ マッピング
opengl で単純な 3D 配列の視覚化を作成しようとしています。3D 配列には色の値が含まれています。これを実現するには、たくさんの立方体を描画して、正しいテクセルを指すテクスチャ座標を与えます。さて、試してみましたが、うまくいきます。しかし、もっと多くのことが必要です。私が望むものを達成する唯一の方法は、平面がオンになっているときにすべてのグリッドで他の軸方向に完全な 2D 平面を描画し、これを 6 方向にすることです。たとえば、-15 から +15 までの XY 平面を Z 座標 -15 から +15 で描画し、これを背面 XY 平面、YZ 平面、背面 YZ 平面などに対しても行います。このようにして、すべてのコーナーに 3D テクスチャ座標を配置するだけで、あとは補間で処理できます。
0 から 32 の間の配列座標をテクスチャ座標として取得しました。これは、シェーダーでテクスチャ座標を床に落としてから 32 で除算して、グリッド上のすべてのピクセルの正確なテクセルを取得できるためです。 .
しかし悲しいかな... ピクセル シェーダーは常に選択肢を疑っています。あるピクセルが次のピクセルとは異なるテクセルにマップされ、次の次のピクセルが再び正しくマップされます。
以前は、浮動小数点数に 0.5 または 0.35 を追加して、すべてのハードウェア プラットフォームで浮動小数点数が正しく丸められるようにすることで、この種の問題を解決していましたが、それでも私にはハックのように思えます。また、3D テクスチャでは機能しません。
誰かがこれを処理する方法を教えてもらえますか?
opengl - OpenGL - ボリューム ビルボードとしてオブジェクトを 3D テクスチャにレンダリングする方法
here
および video here で説明されているように、 OpenGL 3.3+でボリュメトリック ビルボードを実装しようとしています。私が今直面している問題 (非常に基本的な) は、3D オブジェクトを 3D テクスチャ (論文で説明されているように) に効率的にレンダリングするにはどうすればよいですか? フレームバッファを作成する texにオブジェクトを格納できると仮定すると(各軸で 2 回レンダリングする必要があると言われているため)、非常識であり、私が知る限り、多くのテクスチャを処理するにはテクスチャ ユニットが少なすぎます (言うまでもありません)所要時間)。256x256x128
256*256*128*2
+X,-X,+Y,-Y,+Z,-Z
誰かがそのようなものに対処する方法を知っていますか?
hlsl - 頂点シェーダーで 3D レンダー ターゲットのターゲット レイヤーを指定しますか? [HLSL]
HLSL/Directx11 で作業していると、3D レンダー ターゲットをバインドする方法が 2 つあります。ターゲット全体をバインドするか、レイヤーを指定しながらバインドします。
ターゲット全体をバインドする場合、出力色が適用されるレイヤーを HLSL コードでどのように指定しますか?
これにはジオメトリ シェーダーが必要なのではないかと疑っていますが、それは正しいですか?
これを頂点シェーダーまたは他の場所で実行できるようにする他のアプローチはありますか?
opengl - OpenGL - 3D テクスチャリング - 概念的な質問
OpenGL での 3D テクスチャとテクスチャ マッピングについて、いくつかの概念的な質問があり、それを理解しようとしています。質問は、特にこのチュートリアルの 3D テクスチャリング用のコードの実装に関するものです。 =False&sort=ポジション&ビュー=ノーマル&spc=リラックス&select=4729498&fr=1#xx4738025xx
チュートリアルで使用されるデータセットの次元は256 x 256 x 109
(109 2D スライス)です。
1.
このコードは、すべての 2D スライスを 1 つのデータ配列にロードすることで、2D 画像を 3D テクスチャにマップする方法を提供します。次に、fIndx
から-1.0f
まで+1.0f
のステップでインクリメントして、データを 3D テクスチャにマッピングします0.003f
。増分が のステップであるのはなぜ0.003f
ですか? ~666.667 の増分があり、これは 2D スライスの総数 (109 スライス) の約 6.11 倍です。
2.
3D テクスチャを使用して、レンダリングされたボリュームを移動する方法を見つけようとしています。私がやろうとしているのは、このウェブサイトのビデオに似ています: http://cvlab.epfl.ch/research/medical/em/synapses
その Web サイトのデータは、2D テクスチャにマッピングされた 2D 画像でなければなりません。ですから、ボリューム内の各レイヤーを消滅させるのは明らかに簡単です (しかし、その方法がわかりません!)。私のデータは次のようになります: http://ctrlv.in/292069
編集
私のデータセットには 256 のスライスがあり、各スライスを 1 つずつ確認したいと考えています。ビデオのようにスライスを 1 つずつ移動するにはどうすればよいですか?