問題タブ [3d]
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.
language-agnostic - DirectX または OpenGL を使用して 100 個のフローティング キューブを表示する
DirectX
またはを使用して 100 個のフローティング キューブを表示したいと考えていますOpenGL
。
サンプルソースコードか、テクニックの説明を探しています。複数の立方体を正しく表示するのに問題があります。
私は一連の優れたチュートリアルを求めてネットをくまなく調べました。それらはプリミティブの実行方法について説明してい3D
ますが、多数の3D
プリミティブ ( cubes
、spheres
、pyramids
、など) の実行方法に関する情報は見つかりません。
wpf - Windows XP の Viewport3D 内でアンチエイリアシングを強制する秘密のトリックはありますか?
Windows XP では、WPF の真の 3D コンテンツ (通常は Viewport3D コントロールを使用して表示されます) は、残りの WPF グラフィックスのようにデフォルトでアンチエイリアス処理されていないため、非常に見栄えが悪くなります。特に解像度が低い場合、エクスペリエンスが非常に悪く、製品コードでは使用できません。
ドライバーの設定を使用して、一部の Nvidia グラフィックス カードでアンチエイリアシングを強制することができました。残念ながら、これは時々醜いアーティファクトを生成し、特定のカードとドライバーのバージョンでしか機能しません. この点に関する Microsoft の公式見解によると、アンチエイリアス 3D は一般に Windows XP ではサポートされておらず、私が目にするアーティファクトは、WPF が既に独自のアンチエイリアスを行っている (XP では 2D のみ) という事実によるものです。
そこで、Windows XP で WPF 3D コンテンツにアンチエイリアシングを強制できる秘密のトリックが他にあるのではないかと考えていました。
api - サーバー側 3D レンダリング用 API
サーバー上で単純な 3D シーンをすばやくレンダリングし、それらを HTTP 経由で JPEG として返す必要があるアプリケーションに取り組んでいます。基本的に、動的な 3D シーンを HTML ページに簡単に含めることができるようにしたいと考えています。
私の質問は、レンダリングを行うためにどのテクノロジーを使用するかについてです。デスクトップ アプリケーションでは当然 DirectX を使用しますが、何十人、何百人ものユーザーのイメージを並行して作成するサーバー側アプリケーションには理想的ではないかもしれません。誰もこれについて経験がありますか?このアプリケーションに最適な 3D API (できれば自由に利用できる) はありますか? ソフトウェア レンダラーをゼロから作成する方がよいでしょうか?
DirectX または OpenGL の使用に関する私の主な懸念は、それが仮想化されたサーバー環境でうまく機能するかどうか、および一般的なサーバー ハードウェア (私がほとんど制御できない) で意味があるかどうかです。
iphone - OpenGL ES 1.x の学習
OpenGL ES 1.x を使いこなすための最速の方法は何ですか?
私は OpenGL について何も知らないと仮定しましょう (これは完全に正しいわけではありませんが、最後に OpenGL を使用してからしばらく経っています)。私は iPhone 関連の開発についてこれを学ぶことに最も興味がありますが、他のプラットフォームでも同様にどのように機能するかを学ぶことに興味があります。
OpenGL ES 2.0 Programming Guideという本を見つけましたが、1.x ではなく 2.0 に焦点を当てているため、最善のアプローチではないのではないかと心配しています。私の理解では、2.0 は 1.x と下位互換性がないため、いくつかの重要な概念を見落としている可能性があります。
注: 一般的な OpenGL の学習に関する回答については、https: //stackoverflow.com/questions/62540/learning-opengl を参照してください。
私が見つけたいくつかのリソース:
- http://khronos.org/opengles/1_X/
- http://www.imgtec.com/powervr/insider/sdk/KhronosOpenGLES1xMBX.asp
- OpenGL Distilled by Paul Martz (OpenGL の基礎を復習するのに最適)
c++ - リアルタイム グラフィックス プログラミング用の C++ に代わる最良の方法は何ですか?
C++ は、私が自分のメモリを細かく管理したり、タイプしすぎたり (hello std::vector<Thingy>::const_iterator it = lotsOfThingys.begin()
) したり、長いコンパイル時間で私を退屈させたりすることで、私の時間を浪費しすぎています。本格的なリアルタイム グラフィックス プログラミングの唯一の最良の代替手段は何ですか? ガベージ コレクションは必須であり (必要に応じてその使用を回避する機能も同様)、速度は C++ に匹敵するものでなければなりません。C ライブラリにアクセスするための合理的な話も必須です。
(完全な開示: 私はこれに対する独自の回答を持っていますが、リアルタイム グラフィックス作業のための C++ の優れた代替手段であると他の人が見つけたものを知りたいと思っています。)
編集:思慮深い返信をありがとう。この質問に対する「正しい」答えは実際には存在しないため、特定の答えを選択するつもりはありません。それに、たまたま気に入った言語を C++ の代替として選択するだけですが、これは公平ではありません。
3d - 2D ポイントを 3D に逆投影するにはどうすればよいですか?
画面空間に 4 つの 2D ポイントがあり、それらを逆投影して 3D 空間に戻す必要があります。4 つの点のそれぞれが 3D 回転した剛体の四角形の角であることはわかっており、四角形のサイズもわかっています。これから3D座標を取得するにはどうすればよいですか?
特定の API を使用しておらず、既存の射影行列もありません。これを行うための基本的な数学を探しています。もちろん、単一の 2D ポイントを他の参照なしで 3D に変換するのに十分なデータはありませんが、4 つのポイントがある場合、それらはすべて同じ平面上で互いに直角であることがわかっていると思います。それらの間の距離がわかれば、そこからそれを把握できるはずです。残念ながら、私はその方法を完全に理解することはできません。
これは写真測量の傘下にある可能性がありますが、Google で検索しても役立つ情報は得られませんでした。
image - 高密度のピクセル単位の逆投影
3D空間で長方形の角を導出するために4つの2Dポイントを逆投影することについての質問を見ました。私は同じ問題の一種のより一般的なバージョンを持っています:
焦点距離(アーク秒/ピクセルを生成するために解くことができる)または固有のカメラマトリックス(使用されているピンホールカメラモデルのプロパティを定義する3x2マトリックス-焦点距離に直接関連している)のいずれかが与えられた場合、カメラ光線を計算します。各ピクセルを通過します。
一連のフレームを取得し、各フレームから候補光線を導き出し、ある種の反復解法アプローチを使用して、各フレームからカメラのポーズを導き出します(もちろん、十分に大きなサンプルが与えられます)...すべてその中の実際には、一般化されたハフアルゴリズムの超並列実装です...私が問題を抱えているのは、そもそも候補光線を取得することです...
python - 3D(またはnD)重心を計算するための最良の方法は何ですか?
作業中のプロジェクトの一環として、3D空間内の一連の点の重心を計算する必要があります。今のところ、私は単純に見えますが素朴な方法でそれを行っています-次のように、ポイントの各セットの平均を取ることによって。
ここx
で、、y
およびz
は浮動小数点数の配列です。より正確な重心を取得する方法があることを思い出しているようですが、そのための簡単なアルゴリズムは見つかりませんでした。誰かアイデアや提案がありますか?私はこれにPythonを使用していますが、他の言語の例を適応させることができます。
math - 優れた 3D メッシュ ライブラリ
優れた 3D メッシュ ライブラリを探しています
- 一般的な形式 (OFF、OBJ...) を読み取ることができる必要があります。
- ハーフエッジ構造と三角スープの両方をサポートする必要があります
- 障害や不正なメッシュに対して寛容であるべきです。
- 基本的な幾何学的操作 - 交点、法線計算など'
- 最も重要なこと - 無限のテンプレートと継承階層で複雑にならないようにしてください。
CGAL と OpenMesh の両方を試しましたが、どちらも最後のポイントで惨めに失敗しました。
具体的には、最も高度なコード分析ツールを使用しても追跡できない CGAL です。
これまでのところ、私は自分自身を引っ張ることを真剣に考えています。
私の好みは C++ ですが、他のオプションも受け入れます。
graphics - 体積粒子
私は体積粒子のアイデアをいじっています。「体積」とは、実際には粒子ごとの3Dモデルを意味するものではありません。通常、他の粒子とブレンドするのはより高価で困難です。私が言いたいのは、体積測定に可能な限り近く見える2D粒子です。今私/私たちが試したのは、追加のローカルZテクスチャ(たとえば球形)を持つ粒子であり、アルファ値とZによる近さの組み合わせに従ってアルファ透明度を実行します。これは、粒子がないという事実によって改善されます。単一の平面Zがあります。クールな追加は照明(および影も)との相互作用だと思いますが、ここで問題となるのは、照明の公式がどのように見えるかです(透明度を考慮に入れてみましょう)。
また、ノーマルを追加して、実際にすべてを2つのテクスチャでスクイーズできるようにします。
- 拡散&アルファテクスチャ。
- 通常および256レベルの精度のZチャネルテクスチャ。
私はこの質問をして、他にどのような方向性が考えられるかを確認し、使用される可能性のある適切な照明方程式に関するアイデアを得ます。