2010年9月14日火曜日

【CG】 モデリングの種類

さてさて、今日は誰もが知っているモデリングのエッジ処理についてご紹介。
え?そんなの基礎だし誰でも知ってるでしょ!!!でも、基本なんで皆で復習しましょう!
【ハードエッジサーフェーシング】


polygonで見るとこんな感じ↑。そして、レンダリング画 ↓


【ソフトエッジシェーディング】
Polygon的にはこんな感じ↑。んで、レンダリングするとこんな感じ↓


ここまでは実機ゲームや実機イベントムービー、プリレンダーでよく使われる最もベーシックなシェーディングです。
これから紹介するSubdivisionサーフェースは少々異なります。


【サブディビジョンサーフェース】


polygon上ではこんな感じ↑でも、レンダリングするとこんな感じ↓

このSubdivisionSurafaceは一見、ただ単にスムースがかけっられただけのレンダリング画像に見えますが
実はちょっと違います。もちろんMayaSubdivisonのように単に分割を増やすだけの物もありますが
RenderManSubdivisonのようにポリゴンからマイクロポリゴン化して計算するSubdivisonもあります。
(もちろんMentalRayのSubdivisin(Approximation)もマイクロポリゴンとして計算しますが。。。この話は難しくなるので割合)

そして、多くの人が知らないのが、このSubdivisionSurfaceはレンダラーによって内部的に扱う分割方法が違うので
同じメッシュの割りでも、RenderManでレンダリングした場合、MentalRayでレンダリングした場合、Mayaレンダーでレンダリングした場合など、それぞれ形が微妙に異なります。
言っておきますが、レンダダラーのアンチサンプルによるシルエットが違う!っていうレベルではなく、本当に形状が変わります。
特に尖った形状(先端が三角ポリゴンの集合だった場合)というのは、大きくシルエットが変わります。モデラーにとっては一大事です!
(クライアントが気づかなければ、問題なしという話もありますが。。。)

でも、こういうことを基礎知識として知っているモデラーさんは日本では非常に少ないです。
レンダラーを複数使う場合以外は、大きな問題にもなりませんが、複数使う場合は、こういった知識を持っていれば、この問題に対処するためにある程度、尖った場所にあらかじめエッジを増やして対応したりする事が出来ます。
もちろん、根本的な分割方法がそれぞれ違うので、まったく同じという訳には行きませんが、お互いの差を近づける事が出来ます。
(もしくは、元のメッシュにスムースを掛けて、レンダリングすれば、どのレンダラーでレンダリングしても同じ結果にはなりますが、それはあくまでもスムースなので、Subdivisonの恩恵を受ける事ができません。)

SubdivisonSurfaceは昔からよく使われている世界で最もポピュラーなモデリング方法の一つですが、日本では一向に馴染みがありません。。。
ここ最近、ようやく使い始めたという感じでしょうか???日本の場合は、どうしてもレンダーがMentalRayやVrayなどRaytraceをベースにしたレンダラーが主力だという事もあるかもしれません。
レンダラー(特にRaytrace)、サブディビジョン、ディスプレイスメントマップ、サンプルリング。。。この辺を絡めてくるとかなり話がややこしくなるので、今回は割合しますが、Subdivisonを単なるスムースとして安易に使うのは間違いです!っと言いたいだけです。
正確に言うと、スムースとして使うのは間違いではないけど、単なるスムースではないという事をご理解ください。
特にRenderman(Reys)ならまだしも、MentalrayなどのRaytracerの場合は特に注意が必要です。
特にキャラ以外での使用、背景など広大なロケーションでSubdivisonを使うと思いもよらないレンダリング時間を要求される事もしばしばあると思います。

う~~~ん、なんかいまいちまとめきれてない気がしますが。。。(^^;
とりあえず、モデリングにも色々な種類があるよ!って話でした。

間違いあれば、こっそりメールフォームから教えてください。こっそり修正しておきます(^^;

2 件のコメント:

  1. Subdiはレンダラ毎に違いがあるのではなくて,細分化するルール(schemeと言います)に何種類かあって,その違いが形状の違いを生みます.数学的には,同じルールなら同じ形状になるはずですよ.mentalrayやPRManにはscheme指定のパラメータがあります.
    cornerとcreaseはサポートしてないレンダラが多いように思いますから,これがあると同じschemeでも形が変わりますね.

    どこまで(=何回)分割するかの違いがありますが.Subdiの基本的なアルゴリズムはどのレンダラも同じです.Reyesは普通のポリゴンであってもマイクロポリゴンまで割りますから,Subdiの場合とても滑らかになります.そういう意味ではReyesとSubdiは非常に相性がいいですね.

    返信削除
  2. >ますおさん
    早速のフォローありがとうございます。
    なるほど、レンダラ毎の違いではなくて、細分化するルール(scheme)に違いがあるから、形状が変わるんですね。まだまだ、勉強不足でした。ありがとうございます。

    僕の場合はモデリングも専門なのですが、ALに行ってからは
    surfacing専門ということもあり、ここ数年で(Raytrace)周りでの知識が急に増えました。レンダリングが絡んでくるとほんと色々な知識が必要になってきますね(^^;

    僕は自分でshader書ける訳ではないですが、Shaderも本当に奥が深いな~~っと。特にRaytraceが絡んでくると。。。

    また色々と勉強させてください。フォローありがとうございます。

    返信削除