home
***
CD-ROM
|
disk
|
FTP
|
other
***
search
/
Phoenix Heaven Sunny 2
/
APPARE2.BIN
/
oh_towns
/
marin
/
ptool42e
/
ptool.man
< prev
next >
Wrap
Text File
|
1995-06-20
|
11KB
|
248 lines
<PTOOL各ツール説明>
各ツールの実行には、操作をするポリゴンデータのファイル名と幾つかのオプション
を指定します。オプションとは、各操作に対するパラメータを指定するもので、指定順
は任意です。これは各コマンドによって色々異なったものがあります。
また、"-h","-H"オプションを指定すると簡単なオプションの説明が表示されます。
なお、オプションは小文字大文字を区別しますので気をつけてください。
 ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄
(使用例:A:\>run386 -nocrt fractal cube.pol -l 2 -s 1.02 -o out.pol)
以下に、各ツールの簡単な(オプションの)解説を記しますので参考にして下さい。
後は実際に実行しながら、その効果を確かめてみてください。
○ TO3.EXP
このツールは、ポリゴンデータに三角形以上のポリゴンが含まれる時、それらを
三角形に分割します。
また、その元のポリゴンデータに凹ポリゴン(*1)が含まれる時、それらを凸ポリ
ゴン(*2)になるよう適当に分割します。
・オプション
-o : この後に出力先のファイル名を指定する。省略時は標準出力。
-f : 出力先の指定ファイルが既にある場合、通常は上書きして良いか
確認してくる。このオプションを指定すると確認無しで強制的に
上書きになる。
-a : この後に任意のポリゴンオプションを指定する。出力時には、これら
のポリゴンオプションが自動的に全ポリゴンに追加される。(*3)
ポリゴンオプションが複数の場合は「"n c col1"」のようにダブル
クウォーテーションで囲む。
-h : これらのオプションの簡単な説明が表示される。
-t : これを指定すると、三角形分割はせずに凸分割のみ行う。
-s : 三角形分割で最適化処理(*4)を行う。
-c : 通常は、分割後に面積が0になったポリゴンを削除するが、このオプ
ションを指定するとその削除処理を行わない。
-n : 通常は三角形以上のポリゴンは全て分割対象になるが、このオプション
を指定すると歪んだポリゴン(*5)のみが分割対象になる。従って正常な
(フラットな)ポリゴンは分割対象から外れる。
"-n5" のようにnのすぐ後ろに「正の整数」を指定すると、歪み判定の
精度を調節できる。この数値が大きい程精度が高くなる。ただし有効値
の最大は7で、それより大きな値を指定しても7を指定した場合と効果
に違いはなくなる。省略値は7。
*1 内角が180度以上である角を含むポリゴン。例えばハートマークのような、
へこんだ部分のある形や文字フォントをポリゴンデータ化した時等にでき
易い。
*2 全ての角の内角が180度以下であるポリゴン。いわゆる通常な四角や三角,
正多角形等のような形状。
*3 "-a"による追加オプションの指定に関しては、若干の注意事項があるので、
最後の「■ポリゴンオプションに関する注意事項」を参照ください。
*4 なるべく分割後の各ポリゴンの面積が大きくなるようなパターンで分割する。
....ように「一応」考てあるが、凝った事はしていないので場合によっては
効果無しということもあるでしょう。(^_^;)
*5 データによっては、各頂点がきちんと一つの平面上に無いポリゴンを含む場合
があります。このようなポリゴンは、データ処理上不都合を生じる場合がまま
あります。
・使用例
>run386 -nocrt to3 src.p -n6 -s -o src3.p -a "c red s"
○ WISEMT.EXP
このツールは、ポリゴンデータの各ポリゴンの向き(表裏)(*6)をあるポリゴン
(参照ポリゴン)の向きに合わせます。但し、各ポリゴンは必ず参照するポリゴンと
(他のポリゴンを介する等して)地続きの関係でなければならなりません。
・オプション
-o : (TO3.EXP の項を参照)
-f : 〃
-a : 〃
-h : 〃
-i : この後に参照ポリゴンの番号を指定する。番号はファイルに書かれ
ているポリゴンデータで、上から順に0から数る。省略値は0。
-b : 参照ポリゴンと逆向きに合わせる。参照ポリゴンも逆向きになる。
-B : 全ポリゴンを「無条件に」逆向きにする。向きを合わせる訳では無い
ので注意してください。
*6 ポリゴンデータによっては、各ポリゴンの向きがまちまちになっている場合
があります。意識的にそうしている場合以外は、レンダリングした時に部分
的に「抜け」ができたり等の不都合が起こる事もあります。
ポリゴンの表裏については別途添付の"POLYGON.DOC"を参照のこと。
・使用例:
| ----test.pol-----
0 1 2 | p 0 x0 y0 z0
+-------+-------+ | p 1 x1 y1 z1
| | | | p 2 x2 y2 z2
| P0 | P1 | | .
| | | | .
| | | | .
3+-------+-------+ | P 0 3 4 1 ;
| | 4 5 | P 1 4 5 2 ;
| P2 | | P 3 4 7 6 ;
| | |
6+-------+ 7 |
-------------------------------------------------------
上図のようなデータにおいて、全てのポリゴンをP0の向き(左回り=表向き)に
合わせたい場合
>run386 wisemt test.pol -o test2.pol
のようにすれば、test2.polは
-----test2.pol-----
p 0 x0 y0 z0
.
.
.
P 0 3 4 1 ;
P 1 4 5 2 ;
P 6 7 4 3 ;
と、P2 が変更されて、全てのポリゴンが表向きに揃う。また
A:\>run386 wisemt test.pol -i 2 -b -o test2.pol
でも、同じ結果になる。
○ FRACTAL.EXP
このツールは、ポリゴンデータに対して、中点変位法によるフラクタル分割変形(*7)
を行うものです。このコマンドを利用すると、山や岩のような一見複雑な形状を簡単
に作成する事ができます。
但し、処理の都合上各ポリゴンは全て三角形である必要があります。
・オプション
-o : (TO3.EXP の項を参照)
-f : 〃
-a : 〃
-h : 〃
-l : この後に分割レベル(*8)を指定する。このオプションは必ず指定
する必要がある。値は1以上を指定する(でないと効果無し)。
-s : この後に自己相似比(*9)を指定する。値は1以上(実数)を指定
する。省略値は1.0(この場合分割をするだけで、事実上変形
は行われない)
-r : この後に乱数系列の初期化値(正の整数)を指定する。これは、
変形時に使用する乱数発生の為の初期値として使用される。この
値によって、変形の具合が変化する。
このオプションが省略されると、初期値は不定になる。
-x/y/z : 変形時の中点変移に対する変移軸(*6)の指定。実際には"-x","-y"
,"-z" のように指定する。このオプションが省略されると、各頂
点における法線により軸が決定する。
*7,8,9 簡単に説明すると下図のようになります。つまり、1 分割レベルごと
に各ポリゴンの各辺上に新しい点が発生し、1つのポリゴンが4つのポリ
ゴンに分割されることになります。
+ +
/| /|
/ | / |
/ | / |
/ | / |
/ | ====> +----+
/ | /| /|
/ | / | / |
/ | / | / |
/ | / |/ |
+---------+ +----+----+
変位軸は、新しく発生した点の座標変位する方向をきめるものです。これ
を省略した場合は、その都度各頂点ごとにその点に対する法線(ポリゴン
の法線とは少々意味あいが異なる)を計算し、それによって決定されます。
また、自己相似比とは新しく発生した点の座標変位の割合で、これが大き
い程よりオブジェクトが変形することになり、1.0だと変位量は0とい
うことになります。大体目安としては、オプション"-x","-y","-z"を指定
した場合1.1~1.3程度、指定しない場合は1.01~1.06程度の範囲が適当と
思われます。
これだけの説明では分かり難いと思いますが、後は色々試してみて下さい。
なお、分割レベルが大きくなると、ポリゴン数は指数関数的に増えていく
ので、注意してください。
・使用例
>run386 -nocrt fractal src3.p -l 2 -s 1.02 -f -o src_f.p
○ FIRET.EXP
このツールは、複数のポリゴンが隣接することによって生じる角(*10)に対して、
細分割をかけることにより角取りを行います。
(「ごりぽん君」(*11)で言う所のグローバルスムースとほぼ同じ機能です)
・オプション
-o : (TO3.EXP の項を参照)
-f : 〃
-a : 〃
-h : 〃
-n : この後に任意のポリゴンオプションを指定する。このオプションは分割
によってできた新しいポリゴンに対して設定される。ポリゴンオプショ
ンが複数の場合は「"n c col1"」のようにダブルクウォーテーションで
囲む。(*12)
ポリゴンオプションは省略可でもある。つまり"-n"のみ指定された場合
は、各角を構成しているポリゴンから適当に選択されたポリゴンのもの
が参照される。
-l : この後にまるめレベルを指定する。これで指定された回数だけ角取りの
処理が行われる。数値は1以上を指定する(でないと効果無し)。
省略値は1。
-s : この後にまるめ度を指定する。この数値が小さいほど、大きく角取りが
行われる。数値は1.0以下を指定する(省略値は0.8)。
*10 ここで言う角とは、「2つのポリゴンが接しているエッジ」「3つ以上の
ポリゴンによって共有されている頂点」と定義されています。
*11 OH!FM-TOWNS誌付録「太っ腹FD平成5号」にも収録されたR.KuMa氏作のポリゴン
エディタ。その操作法には独特のものがある。
現在FPICSTのLIBにはバージョンアップ版も登録されています。
*12 "-a"オプションと"-n"オプションを併用する場合は、最終的に付加される事
になるポリゴンオプションの内容が、なるべく重複しないよう考慮するよう
にしてください。
(「■ポリゴンオプションに関する注意事項」参照のこと)
・使用例
>run386 -nocrt firet src.p -l 1 -s 0.55 -o out.p
■ポリゴンオプションに関する注意事項
PTOOLでは、元データに設定されている物とは別に、さらに出力時に"-a"オプション
(また"FIRET.EXP"については、"-n"オプションでも)任意のオプションを追加する
事ができますが、この場合元データの物と"-a"での物と重複するオプションが出て
くる可能性があります。その場合最終的に各ポリゴンに付加されるポリゴンオプション
は"-a"で指定された物が優先されます。従って、例えば元データのあるポリゴンに
"c red"と設定されていたとしても、ptoolコマンド実行時に「-a "c col1"」のように
指定された時は、"c col1"に変更されてしまいます。
元々この"-a"オプションによるポリゴンオプションの追加機能は、全くポリゴン
オプションの設定されていない元データの全ポリゴンに対して、"s"オプションを
付加しスムースシェーディングを有効にしたいという要望に対して付けた機能なの
で、基本的にはそのような単純に全ポリゴンに対してあるポリゴンオプションを追加
したいという場合に限り利用するべき機能であることを予めご了承ください。
Aug.'94
*** NIFTY:HBA00106/佐藤 雅弘/MARIN ***