1

私はここで新しいです。私はまだC++を学んでいるので、物事について大きな知識はありません(プログラミングの経験は豊富ですが、他の言語の経験もあります。コンピューターxDの操作方法も知っています)。私はゲームエンジンに取り組み始めることにしました。簡単ではないことはわかっていますが、それが私がやりたい理由の1つです。経験を積むことは私が学ぶための最良の方法です。

だから、私はレンダラーから始めていますが、名前で言うように3Dモデルを持ち、C++エンジンの三角形メッシュにロードできる3Dモデルファイルをどのように作成できるのかわかりません。 Direct3Dで使用できます。始め方を教えてくれる以外は何もしてほしくない。

これを読んで助けてくれると決めてくれてありがとう。

4

4 に答える 4

2

これは素晴らしい質問であり、あなたは 3 年前の私とまったく同じ場所にいるので、とても真実です。3D コンテンツの生成に使用できるさまざまなアプリケーションを調べました。ゲームエンジンをコーディングしたかったので、さまざまなアプリケーションの学習に時間を費やしたくありませんでした。しばらくの間 (それは無料でした) 価値のあるものにするためにすぐに学べるものを見つけることができなかったので、最終的にいくつかのスクリプトをまとめて 3D モデル (頂点配列) を作成しました。これらは、私自身の完全に機能する 3D モデリング ツールに発展した GUI 駆動のインターフェイスに発展しました。3 年が経過した今、私のゲーム エンジンは後回しになり、MeshCreator ( http://www.MeshCreator.co.ukを参照) は現在進行中のプロジェクトです。

Vertex 配列にロードする方法が必要です。OBJ ファイル (wavefront) はテキスト ベースで、非常に読みやすいです。MeshCreator からの出力も ASCII ベースで、ファイル形式の解釈方法については Web サイトに詳細があります。

MeshCreator からのファイル出力は、任意の 3D プロジェクトに簡単にインポートできるように設計されています。ほとんどの 3D アプリ (私のものを含む) でサポートされているため、.OBJ ファイルを確認することもできます。ただし、OBJ ファイルは少し複雑になる場合があります。

要するに、使いやすいツールが必要です。自分で書くのに3年かかったので、お勧めしません。MeshCreator、MilkShape 3D、そしておそらく Google Shetchup を試してみてください。また、プロジェクトで使用できるロイヤリティ フリーの 3D コンテンツを含むサイトも数多くあり、その多くは OBJ 形式で利用できます。

于 2013-01-31T08:35:34.213 に答える
1

3D モデルのファイル形式は非常に複雑になる可能性があり、ほとんどの場合、含めることができるものの種類が非常に多くなります (メッシュ、プリミティブ、曲面、マテリアル、照明など)。これはまた、独自のフォーマットを考え出すことも非常に難しいことを意味します. したがって、ここには実際には 2 つのオプションがあります。モデルのロードを処理する既製のライブラリを見つけることです。または、既存の形式を選択し、それらのファイルをロードする独自のコードを記述します (そして、標準のエディターを使用してそれらを作成します)。

市販のライブラリを使用してモデルをロードする際の主な問題は、多くの場合、これらのライブラリが特定のレンダラーと密接に結びついており、ファイルのロード時に生成される (可能な) データ構造が通常非常に複雑であることです。したがって、これは多くの場合、このモデル ロード ライブラリが含まれているか関連付けられているレンダラーを採用する準備ができている場合にのみ、より良い解決策となります。Irrlicht、Ogre3D、Coin3D などのオプションがあり、これらはすべて、かなり標準的な 3D モデル ファイル形式をロードするための適切な機能を備えています。

既存のファイル形式を選択し、ローディング コードを自分で作成する (したがって、独自のレンダラーに関連付ける) 場合は、慎重に選択する必要があります。3ds ファイル形式は非常に広く使用されており、その内部構造は素晴らしく、かなりシンプルであり、まだサポートできない要素を簡単にスキップできるという利点があります (これは、レンダリング コードを段階的に作成する場合に役立ちます)。他のほとんどの形式には同様の機能があります (上位互換性と下位互換性、および「サポートされていない」要素をスキップする機能)。vrml と x3d という重要なオープン スタンダード形式もあります。また、 Blenderなどの一部のオープンソース 3D エディターに関連付けられた、より単純な形式がいくつかあります。. 読み込めるファイル形式で出力できる優れた 3D エディターを用意することが重要です。そのため、独自のファイル形式を作成しないでください。3D エディター用のカスタム「エクスポート」スクリプト (またはプラグイン) を作成するか、独自のエディター (記念碑的な仕事)。

于 2012-12-11T16:48:55.927 に答える
0

辺りを探す。エンジンを DirectX ベースにしたい場合、SDK にはメッシュの読み込みなどの基本を説明するコード サンプルが付属していると思います。

C++ を学んでいるだけなら、IrrlichtOGREなどのエンジンを使って単純なゲームを作成するなど、もっと単純なプロジェクトから始めることをお勧めしますが、それはあなた次第です。

于 2012-12-11T15:54:50.157 に答える
0

obj filesのようなものが必要だと思います。再生できるオンラインの無料ファイルを見つけることができます。自分で生成したい場合は、3D レンダリング ソフトウェアが必要だと思います。また、それらを解析してコンテンツをプログラムにロードする方法を検索することもできます。

于 2012-12-11T15:57:53.030 に答える