問題タブ [3d-engine]

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.

0 投票する
1 に答える
1226 参照

opengl - OpenGLでシェーダーシステムを整理するにはどうすればよいですか

私は考えていました:

アプリケーションのすべてのオブジェクトに適用されるメイン シェーダーがあり、投影、変換、配置、カラーリングなどに使用されます。

また、各オブジェクトには、追加のもの用の独自の追加シェーダーがあります。たとえば、水のオブジェクトには追加のシェーダーが必要です。

しかし、問題があります。2 つ以上のシェーダーを 1 つのオブジェクトに適用するにはどうすればよいでしょうか? メイン シェーダー + オブジェクト独自のシェーダーを適用する必要があるためです。

0 投票する
1 に答える
303 参照

graphics - コンピュータ グラフィックス学習用の 3D エンジン

コンピュータ グラフィックス アルゴリズムを実験できるシンプルな 3D エンジンまたはツールキットを探しています。たとえば、変換行列を適用して、何が起こるかを確認します。

誰でも提案できますか?

0 投票する
0 に答える
131 参照

c++ - 更新されたプロジェクトから D3DX 定義が欠落している

古い 6 月の DX10 アプリケーションを更新する必要があります。

私の元のセットアップでは、レポの一部として DX10 のインクルード ファイルとライブラリが含まれていました。これはコンパイルして正常に実行されますが、VS2013 コンパイラで VS2015 を使用して Win10 でコンパイルすると、マクロの再定義に関する何百もの警告が発生します。

警告を修正したかったので、マイクロソフトのこのブログ投稿を参考にしました。そこでの手順 (プロジェクトの VC++ ディレクトリを変更し、インクルードを変​​更する) に従った後、使用した多くのクラスと定義が何であるかがわからないため、プロジェクトはコンパイルされません...たとえば、D3DMATRIX は構文エラーを返します/宣言されていない識別子。

プロジェクトを更新する正しいコースは何ですか?

0 投票する
2 に答える
1304 参照

c++ - ポインターと配列内のインデックスによる構造体のグラフのリンク

これはグッドプラクティスについての質問です

3D エンジン、物理エンジン、有限要素法、または古典的な分子動力学ソルバーなどで典型的な状況を考えてみましょう: さまざまなタイプのオブジェクト (頂点、エッジ、面、境界のあるソリッド ボリュームなど) があり、それらは相互に架橋されています (例:頂点は、どのエッジがそれに接続されているかを認識しており、その逆も同様です)。そのようなエンジンのパフォーマンスと使用の利便性のためには、そのような接続のネットワークをすばやく閲覧できることが重要です。

問題は、リンクされたオブジェクトを配列内のインデックスで指定するのと、ポインタで指定するのとのどちらがよいかということです。...特にパフォーマンス面で

インデックスの利点:

  • インデックスを使用すると、32 ビットまたは 64 ビットのポインターの代わりにインデックスにuint8_torを使用すると、メモリ効率が向上します。uint16_t
  • index は、いくつかのビットでエンコードされたいくつかの追加情報 (たとえば、エッジの向きに関する情報) を運ぶことができます。
  • 配列内のオブジェクトの順序付けは、構造に関する情報を運ぶことができます (たとえば、立方体の頂点は次のように順序付けできます{0b000,0b001,0b010,0b011,0b100,0b101,0b110,0b111})。この情報はポインタには表示されません

ポインターの利点:

  • オブジェクトを格納するために配列 (または他のデータ構造) を気にする必要はありません。オブジェクトは、 によってヒープ上に動的に割り当てることができますnew Vertex()
  • 配列のベースアドレスを追加する必要がないため(?)、高速になる可能性があります (?)。しかし、これはメモリ レイテンシに関してはおそらく無視できる程度です (?)。
0 投票する
0 に答える
379 参照

game-engine - Atomic Voxel Engine - 推奨プログラミング環境

タイトルが示すように、私はボクセル ベースのアトミック エンジン (アトミックとは、ピクセルごとに最大 1 つの可視ボクセルがあることを意味します) に興味があります。このようなエンジンの例としては、アトモンタージュ エンジンがあります。私がアーカイブしようとしているのは、ピクセル単位のレイ トレーシングを使用してディスプレイの画像を作成するアトミック エンジンです。

現在、このようなエンジンに適したプログラミング環境は何かを考えています。通常、3-D グラフィックスの場合は、OpenGL (または DirectX?) をお勧めします。しかし、OpenGL は古典的なポリゴン グラフィックスに焦点を当てているようで、OpenGL がアトミック ボクセル グラフィックス (ポリゴンを定義せず、テクスチャを使用しない) に適しているかどうかはわかりません。原子エンジン。

そのため、cuda を使用することを考えました (ここでも、cuda が自分のタスクに適しているかどうかは事前にわかりません)。また、残念ながら NVidia グラフィックス カードを所有していません。

単純な古い C (または C++) を使用することも考えました。しかし、すべての 3 次元計算を自分で行うのは難しいようです。

つまり、私の実際の質問は、「アトミック ボクセル エンジンを作成するためにどのツール/環境を使用すればよいですか?」ということです。

0 投票する
1 に答える
439 参照

c# - 従来の .NET 3DEngine を使用した C# スクリーンセーバー - ビルド構成

プレビュー (インストール) モード、構成、またはテスト モードで動作する C# スクリーンセーバーをコーディングしました。ただし、起動するために Windows タイマーに到達すると、画面が黒くなり、マウスの読み込みアイコンが 2 ~ 3 秒間表示された後、画面がデスクトップに戻ります。

コードの最初の行としてログ ファイル エントリを追加しましたmain()が、Windows で起動したときにこのコードが実行されないようです。

Windows 10 で Visual Studio 2017 を使用しています。

私は古い 3D エンジンを使用しているので、app.config を変更したことを確認しました。

Screensaver.exe を Screensaver.scr に、app.config を Screensaver.scr.config に名前を変更しました。これらを SysWOW64 フォルダーのエンジン dll と一緒にコピーしました。

ビルド プラットフォーム ターゲット = x86。

デバッグビルドとリリースビルドの両方を試しました...そして、同じコード構造を使用して、テキストを表示するスクリーンセーバーの簡単な例を実行しましたが、機能したため、問題は3Dエンジンdllの使用に起因すると本当に思います.

何かアドバイスはありますか?.scr に適用される構成にいくつかの特異性はありますか? どこにもリードが見つからず、私は考えが及ばない....

役立つ場合のメインコードは次のとおりです。