私はレイトレーサーに取り組んでいますが、3Dシーンのファイル形式に関しては車輪の再発明をしたくありません。また、他の人が作ったシーンで自分のプログラムをテストできるようにしたいと思います。私は3Dモデラーではなくプログラマーです。
レイトレーシングに固有または最適な3Dシーンフォーマットはありますか?
私はレイトレーサーに取り組んでいますが、3Dシーンのファイル形式に関しては車輪の再発明をしたくありません。また、他の人が作ったシーンで自分のプログラムをテストできるようにしたいと思います。私は3Dモデラーではなくプログラマーです。
レイトレーシングに固有または最適な3Dシーンフォーマットはありますか?
レイトレーサーを書いたとき、Blenderのエクスポーターを書きました(無料です)。Blender自体は数十のフォーマットをロードでき、単純な20行のPythonスクリプトが必要なポイントを提供します。
非常に優れた機能は、Blender内ですべてのモデルの面を三角形に変換できることです。ほとんどのレイトレーサーは、三角形でのみ機能します(またはポリゴンを内部で三角形に変換します)。したがって、Blenderにこれらのポリゴンをクランチするという重い作業を行わせるのは非常に素晴らしいことです。
20行のコードから始めると、ポリゴンだけをエクスポートできます。そこから、出力マテリアル、法線などに拡張できます。必要なデータを必要な形式で取得できるので、この方法が好きですが、より複雑なモデルをインポートするオプションもあります。
他の方法でも機能しますが、最初にファイルを解析する方法を理解してから、必要な形式でファイルを取得する必要があります。パーサーよりもレイトレーサーをコーディングしたいと思います。
レイトレーシングに固有のフォーマットは実際にはありません(PovRayフォーマットを数えない限り)。レイトレーシングは画像をレンダリングする方法であり、あらゆるシーンに適用できます。シーンをモデリングする人々は、選択したモデリングソフトウェアを使用し、通常はモデラーのデフォルト形式で保存します。
特定のフォーマットをロードするための要件はないようです(または要求しないでしょう)ので、テストのためにネットの周りからさまざまなジオメトリをインポートできるようにしたいだけだと思います。その場合は、次のompfフォーラムをチェックしてください。http://ompf.org/無料で利用できるシーンへのリンクがあるセクションがあります。そこに共通していることを感じることができます。
別のオプションは、Open Asset Import Libraryを利用することです:http: //assimp.sourceforge.net/
これにより、多数のファイル形式をインポートできます。それらすべてを内部データ構造にロードし、適切と思われる処理を行うことができます。それはBSDライセンスを使用しているので、あなたがしていることと合理的にライセンス互換性があるはずです。
モデラーごとに必要なパラメーターやセットアップディレクティブなどが異なるため、特定のシーン形式が使用されているとは思いません。
ただし、WaveFront.obj
形式は、シーン内の個々のオブジェクトを記述するために非常に人気があり、その形式の多くのファイルがインターネットで入手できます。