これは、Ubuntu Online、Fedora Online、Windows オンライン エミュレーター、または MAC OS オンライン エミュレーターなどの複数の無料オンライン ワークステーションの 2 つを使用して、OnWorks 無料ホスティング プロバイダーで実行できるコマンド objXNUMXmesh です。
プログラム:
NAME
obj2mesh - Wavefront .OBJ 入力からコンパイル済み RADIANCE メッシュ ファイルを作成します
SYNOPSIS
obj2メッシュ [ -a マットファイル ][ -l マトリブ ][ -n オブジェクトリム ][ -r 最大解像度 ][ -w ] [ 入力.obj [
出力.rtm ]]
DESCRIPTION
オブジェクト2メッシュ Wavefront .OBJ ファイルをから読み取ります。 入力.obj (または標準入力) とコンパイル
それを RADIANCE 三角形メッシュに入れて、 出力.rtm (または標準出力)。 どれでも
RADIANCE マテリアルの説明が XNUMX つ以上含まれています -a オプションがコンパイルされ、
メッシュにも収納されます。 もし -l オプションはマテリアル ファイルを指定するために使用されます。
RADIANCE ライブラリの場所が検索されます。 このメッシュは RADIANCE シーンに含まれる可能性があります
による説明 メッシュ 原始的なので、次のようになります。
modメッシュID
1+ output.rtm [xform 引数]
0
0
構文とセマンティクスは RADIANCE と同じです。 原生的。 もし MOD is
「void」の場合、保存されているメッシュ マテリアルがレンダリング中に適用されます。 それ以外の場合は、
指定されたマテリアルがすべてのメッシュ サーフェスで置き換えられます。
当学校区の -n オプションは、各ボクセルの最大サーフェス セット サイズを指定します。 大きな数字
その結果、メッシュの生成は速くなりますが、レンダリングが遅くなる可能性があります。 6 未満の値は
これはメッシュ頂点の価数の中央値 (頂点の数) であるため、推奨されません。
隣接する面)、値が小さい場合は、無意味な XNUMX 分木分割が行われます。 の
デフォルト設定は 9 です。
当学校区の -r オプションは最大オクツリー解像度を指定します。 これは または より大きい必要があります
メッシュ境界ボックスと最小の三角形の比率に等しい。 デフォルトは
16384.
当学校区の -w オプションは警告を抑制します。
メッシュ ファイル形式はバイナリですが、マシン間で移植できるように設計されています。 の
唯一の制限は、整数サイズが根本的に異なるマシンは動作しないことです
一緒に。
詳細
次の Wavefront ステートメントは、次のように理解され、コンパイルされます。 obj2メッシュ。
v x y z デカルト座標によって与えられる頂点の位置。 最終的なメッシュ位置
もちろん、に与えられた変換引数によって変更することもできます。 メッシュ プリミティブ
Radianceシーンの説明に記載されています。
vn dx dy dz
XNUMX つの方向成分によって与えられる頂点法線ベクトル。
によって正規化される obj2メッシュ。 法線はメッシュ上で補間されます。
レンダリングして滑らかな表面を生成します。 頂点法線が存在しない場合、
メッシュがテッセレーションされて表示されます。 長さゼロの法線 (つまり、0 0 0) は、
構文エラー。
vt u v ローカル頂点テクスチャ座標。 これらの座標は補間され、
レンダリング中に「Lu」変数と「Lv」変数に渡されます。 ローカル座標は、
値の任意の範囲を拡張します。
使用法 名前
マテリアル名。 次の面では、名前付きマテリアルが使用されます。
の材料定義から取得 -a 入力ファイル。
g 名前 グループ協会。 次の顔が名前付きグループに関連付けられています。 もし
「usemtl」ステートメントが見つからない場合、現在のグループが
表面材質の識別子。
f v1/t1/n1 v2/t2/n2 v3/t3/n3 ..
多角形の顔。 ポリゴンの頂点は、次のように区切られた XNUMX つのインデックスとして指定されます。
スラッシュ (「/」)。 最初のインデックスは頂点の位置、XNUMX 番目のインデックスは頂点の位置です。
ローカル (u,v) テクスチャ座標、XNUMX 番目のインデックスは頂点サーフェスです
普通。 正のインデックスは入力の先頭からカウントされます。最初のインデックスは
頂点位置 ( v ステートメント) には 1 の番号が付けられ、最初のテクスチャについても同様です
座標と最初の表面法線。 負のインデックスは次から逆算します。
入力内の現在位置。-1 は最後に検出された頂点、-2
はその前のものなどです。頂点テクスチャにはインデックス 0 を使用できます。
または、何も指定しない場合は「normal」を指定するか、完全に省略することもできます。 すべての顔が
最終的なメッシュでは三角形に分割されます。 オブジェクト2メッシュ 現在、安全ではありません
面が凸面であると仮定しているため、面が凸面である場合、奇妙な結果が生じる可能性があります。
ではありません。
他のすべてのステートメント タイプは入力では無視されます。 理解できるステートメント
obj2rad(1) 黙って無視されます。 他のステートメントでは警告メッセージが生成されます
翻訳後に、どれだけ抜けていたかを示します。
診断
obj2mesh によって報告される基本的なエラー タイプは XNUMX つあります。
警告 - 致命的ではない入力関連のエラー
致命的 - 回復不可能な入力関連のエラー
system - システム関連のエラー
内部 - プログラムの制限に関連する致命的なエラー
一貫性 - プログラムが原因のエラー
ほとんどのエラーは説明の必要がないものです。 ただし、次の内部エラーは発生するはずです。
言及:
addobject (id) にオーバーフローを設定する
このエラーは、シーン内で互いに接近しているサーフェスが多すぎる場合に発生します。 時々
最大解像度を (次の累乗で) 高めることで、高密度のメッシュに対応できます。
XNUMX) を使用して -r オプションですが、通常、このエラーは何かが間違っていることを示します。
互いに重なっているサーフェスが多すぎるか、境界立方体が存在します。
入力内の異種ジオメトリからインフレートされます。 おそらく顔番号
「id」は問題の原因となっているものに近いものです。
フルノードでのハッシュ テーブルのオーバーフロー
このエラーはサーフェスが多すぎるために発生するため、コンパイルの可能性はほとんどありません。
このメッシュ。
例
のマテリアルを使用して、シーン ファイル Mesh.obj からコンパイル済みの三角形メッシュを作成するには、
ファイルmesh.mat:
obj2mesh -a メッシュ.マット メッシュ.obj メッシュ.rtm
ローカル座標を使用して正方形のタイル状イメージをメッシュ オブジェクト上に配置するには:
void colorpict tiled_pat
7 赤緑青 mytile.hdr 。 frac(Lu) frac(Lv)
0
0
タイルパット プラスチックタイルマット
0
0
5 .9 .9 .9 0 0
tiled_mat メッシュ tiled_mesh
1 マイメッシュ.rtm
0
0
ENVIRONMENT
RAYPATH マテリアル ファイルを検索するディレクトリ。
onworks.net サービスを使用して obj2mesh をオンラインで使用する