2011年3月29日火曜日

ワイヤーフレームのレンダリング

こんばんは、柳村です。

modo501で新機能として追加された、輪郭線のレンダリング。
オプションとして、セグメント境界を指定すればワイヤーフレームがレンダリングできると思いきや・・・。
期待通りの結果にはなりません。

どうにも、セグメントの分け方?がコンピュータには都合よくても、人間には都合よくないんですよね。

そこで、もうひとつのオプションのサーフェイス境界を利用して、
ワイヤーフレームのレンダリングを可能にしようと思い、スクリプトを書きました。

このスクリプトは、隣合うポリゴンのマテリアルがすべて別々のマテリアルになるように、
かつ、最小のマテリアル数でポリゴンへマテリアルを自動で割り当てるスクリプトです。
そうすると、すべてのポリゴンにサーフェイス境界ができるので、ワイヤーフレームの
レンダリングが可能になります。

○最終カラー出力のサーフェイス境界を指定してレンダリングした結果


○シェーダーツリーの構成
連番の数値のマテリアル名(0が起点)で新たにマテリアルが追加されます。
上記画像の場合は、5パターンの組み合わせで隣合わないマテリアルが構成されました。


○割り当てられたマテリアルの色を変えてみた結果
このように市松模様になります。



使用方法は対象となるメッシュレイヤーを選択してスクリプトを実行するのみです。
ただ、1ポリゴンずつ総当りでマテリアルを設定していきますので、
ポリゴン数が多い場合はそれなりの処理時間がかかります。

※ポリゴンすべてにマテリアルを新たに割り当てますので、ワイヤーフレームレンダリング用に
 ファイルをバックアップして頂く事を、お勧めいたします。

スクリプトファイル↓
Assign _Checkered_Material.pl

4 件のコメント:

  1. 今回も一番コメントですみません!!

    ありがとうございます。
    使わせて頂きます。

    返信削除
  2. いつもコメントを頂きまして
    ありがとうございます!!

    しかし・・・未だに標準機能でワイヤーフレームの
    レンダリングができないのが謎で仕方ありません(笑)

    返信削除
  3. 初めまして

    ワイヤーフレームでのレンダリングがしたく、検索していたら辿り着きました。
    501sp6使用しているのですが、スクリプトを実行すると「unkown script"Assign".」と出て使用できなくて困っています。
    スクリプトの使用は初めてではないので、入れ方を間違えた・・とも思えないのですが。
    エラーメッセージで検索しても、解決できませんでした。
    もし、何か心当たりがありましたら、ご教授願いたいです。
    よろしくお願いします。

    返信削除
    返信
    1. captain kangarooさま。

      501SP6で試してみましたが、
      エラーメッセージがでませんでした。

      もしかして、このスクリプトをボタンに登録して実行されていますか?
      スクリプトはボタンとして登録していなくても、
      Shift+F5で直接ファイルを指定して実行することもできますので、直接実行してみていただけますでしょうか?

      なんとなく、エラーメッセージがボタンへのスクリプトの登録ミスのような感じがします。

      削除