私はraytracerに取り組んでいます.3Dシーンのファイル形式については、私は再考したくありません。私は他の人が作ったシーンで自分のプログラムをテストできるようにしたい。私は3Dモデラーではないプログラマーです。レイトレーシングに特有の、または適切な3Dシーンフォーマットはありますか?
レイトレーシングに特有の、または適切な3Dシーンフォーマットはありますか?
私はraytracerに取り組んでいます.3Dシーンのファイル形式については、私は再考したくありません。私は他の人が作ったシーンで自分のプログラムをテストできるようにしたい。私は3Dモデラーではないプログラマーです。レイトレーシングに特有の、または適切な3Dシーンフォーマットはありますか?
レイトレーシングに特有の、または適切な3Dシーンフォーマットはありますか?
レイトレーサを書きましたが、Blender(無料です)の輸出者が書かれました。 Blender自体は何十ものフォーマットを読み込めるので、シンプルな20行のPythonスクリプトが必要なポイントを与えるでしょう。
素晴らしい素晴らしい機能は、すべてのモデルの顔を三角形に変換できることです。ほとんどのレイ・トレーサは三角形でのみ動作します(またはポリゴンを内部的に三角形に変換します)。だから、Blenderを使って多角形を扱うという重労働は素晴らしいです。
20行のコードから開始すると、ポリゴンだけを書き出すことができます。そこから、材料、法線などを出力するように拡張することができます。私が望む形式で必要なデータを得ることができますが、より複雑なモデルをインポートするオプションがあるので、このメソッドが好きです。
他の方法も使えますが、まずファイルの解析方法を理解してから、必要な形式で取得する必要があります。私はむしろパーサよりもレイ・トレーサをコード化したいと思う。
実際には、実際のトレーストレーサー_は幾何学的な立体に完全によく対応します。これはモデリングソフトウェアとラスタベースのレンダラで、通常は三角形(または四角形)にしか対応していません。 – Alnitak
それは私のコメントで言ったことではありませんでしたか?戻って私の答えを読んでください。私は、三角形を書き出し、四辺形や多角形を三角形に減らすことで、Blenderがどのように簡単になるかについて話していました。 幾何学的なソリッドはレイ・トレーサによって容易にサポートされていますが、レイトレーシング・トレーサがポリゴンをポリゴン・フォーマットで保持することはありません。代わりに、パイプラインを単純化するので、最初に三角形に変換します。 幾何学的な立体はこの質問で決して言及されませんでした。 –
あなたは「ほとんどのレーサーは**三角形でしか動作しません」と言っています。ほとんどの読者にとって、これは正確に(つまり幾何学的な立体を除いて)意味するでしょう。 – Alnitak
、および設定ディレクティブなど
WaveFront .obj
formatしかし内の個々のオブジェクトを記述するための非常に人気ですシーン、およびその形式の多くのファイルがインターネット上で利用できます。
WaveFront形式は非常に簡単だと思われますが、それは頂点と面指向のスタイルなので、レイトレースにはあまり適していません。私はPOV-Rayフォーマットを使うことができたのは私の頭の中にありました。 –
これは本当です。パラメトリックソリッドをOBJ形式で記述することはできません。しかし、POVRayフォーマットは、複雑なプログラミング構造などを持つ「シーン記述言語」です。これは、単に「ここにこの球を置く」こと以外にもあります。 – Alnitak
実際には、(PovRayフォーマットを数えない限り)レイトレーシングに特有のフォーマットはありません。レイトレーシングは画像をレンダリングする方法で、どのシーンにも適用できます。シーンをモデリングする人々は、自分が選んだモデリングソフトウェアを使用し、通常、モデラーのデフォルト形式で保存します。
特定のフォーマットをロードする必要がない(または尋ねていない)ように見えるので、テストのためにネットの周りからさまざまなジオメトリをインポートしたいと思っています。そうであれば、ompfフォーラム:http://ompf.org/をご覧ください。自由に利用できるシーンへのリンクがあるセクションがあります。そこに共通するものを感じ取ることができます。 http://assimp.sourceforge.net/
これはあなたのためのファイル形式の多数をインポートすることができます。
別のオプションは、オープン・アセットのインポートライブラリを利用します。それらをすべて内部データ構造にロードします。内部構造は、適切に処理できるように処理できます。 BSDライセンスを使用しているため、実行中のものと合理的に互換性があるはずです。
関連:http://stackoverflow.com/questions/4364537/what-types-of-geometry-definition-file-format-is-best-used-with-ray-tracing-to-in –