ラベル maya の投稿を表示しています。 すべての投稿を表示
ラベル maya の投稿を表示しています。 すべての投稿を表示

2017年7月30日

Maya2014 : Linear Workflow with MentalRay

自分はモデラーなので、正直、レンダリング関連のことには疎いです。
でも先日、レンダリングの担当者が居なかったので仕方なくMaya2014でマテリアルのアサインをやりました。
普段も"仮の"マテリアルアサインくらいはやるのですが、きちんとレンダリングするためには結構煩雑で難しい設定が必要です。
改めていろいろ勉強し直さなければなりませんでした。


一番わかりにくいのは、"正しい色"をどのように出すかということです。


Mayaに初めて触る人は、まあ、まともな出力を得ることは出来ません。
ポチッとレンダーボタンを押したらMentalRayでキレいな絵が出てくるということはないので...。


リニアワークフロー

そもそもウチのプロダクションはリニアワークフローを導入しているので更に煩雑です。
ビューポート上でも、まともな色を表示しないので大変わかりにくいです。


スタッフ全員がリニアワークフローをちゃんと理解していないのもほんとはちょっと問題ですね...。
大手プロダクションのように自動でそういうややこしいことをやってくれるスクリプトも無いし、後工程の人は色々チェックしないといけないことが多いはずです。
頭が下がります...。


リニアワークフローについてはちょっと検索すればたくさん情報が出てきます。
今回はMaya2014の話しで、新しいMayaではちょっと違うので、
考慮しないといけないポイントだけ挙げてみます。


  • レンダリング設定
    • Color Managementを使う
    • 出力はOpenEXR(ポスプロでGamma補正する)
    • QualityタブのFrame bufferのDataTypeをRGBA(Float)4x32 Bit
  • カメラのレンズシェーダーのガンマ設定
    • Color Managementを使うなら1.0
  • マテリアルのガンマ補正
    • 色だけのシェーダーにはGammaCorrectノードで0.4545(=1÷2.2)
    • 色味だけのスペキュラはガンマ補正
  • テクスチャのファイルノードのカラープロファイル設定
    • DiffuseのテクスチャはUse Default Input Profile
    • Bumpのようなら大きさを表す画像は入力をsRGBに
    • HDRは元からリニア
  • ViewPort2.0のガンマ設定
    • マテリアルをリニアにしているなら、2.2に補正すると正しい色になる
    • テクスチャはGammaCorrectを挟まないと補正できない
  • レンダービューの表示設定
    • 表示用はsRGB








2017年7月3日

MayaでShapeファイルを読み込む

Shapeファイル(ESRI Shapefile)を直接mayaに読み込めれば、
DEMから作ったメッシュの位置合わせが簡単になるかもと思ったので、PyMelでやってみました。

調べてみるとpyshpというモジュールが公開されていて、非常に簡単にShapeファイルをパースできます。
https://pypi.python.org/pypi/pyshp
compatible with Python 2.4-3.x.と書いてありますがmayapy(2.7.x)でも動きました。

Map3DやCivil3Dが無くてもとりあえずなんとかなりそうですね。



2017年5月21日

TIN to OBJ


LANDXMLをOBJに変換する方法

航空レーザー測量の会社から来たファイルなのですが、.XMLとか.RNDというメッシュデータのはずなのに見慣れない形式でした。
TINだと言われたのですが普段使っているformZやMayaでは開けそうもない...。
調べてみると3ds maxで開けそうです。

でも実際やってみると開かない...。
たぶんファイルサイズが大きすぎるせいでしょう。(300MB以上ある)


簡単な方法

XMLの中身をよく見てみるとデータ構造がOBJと一緒なことに気づきました。
点の座標データと点のインデックスによる面の定義です。


そこでEmEditor上でOBJのフォーマットになるように整形してみたところ、Mayaで開くことができました。(Mayaだと1秒で開きました。)
OBJなので他のCGソフトでも開くはずです。

ポイント

  • 測量データなのでXとYを入れ替える
  • Yアップ系のアプリに持っていくなら、YとZも入れ替えて符号を反転する
  • 法線の向きが反転するようなら、面のインデックス番号の並び順を入れ替える
  • グループ名を先頭につける。名前の先頭は数字以外のアルファベットにする
  • ファイル名を.objにする


CG系のアプリで開くならこの方法が一番早そうですね。







2017年2月28日

地形モデリング

等高線から地形をモデリングするお仕事をいただきました。
何回やっても苦労する仕事ですね...。
formZにはTerrainツールがあるので一見簡単そうですが、それがなかなかうまく行かないんです...。



[等高線]
    クライアントから等高線データが提供される場合でも必ずしも安心できないです。
    データに様々な問題があり、'使えない'場合が多々あります。
    そもそも、CADデータを貰えない場合も多いものです。
    その場合は地図の画像をトレースして等高線データを作ることになります。


[formZ]

Terrainツールが使えない場合も多々あります。

    - 等高線が途切れている
    - 等高線の自己交差
    - 等高線が敷地範囲をしっかり跨いでいない
    - 短い線分などのゴミが混じっている
    - 等高線が多すぎる

    幸いなことにformZにはTerrainツールの実行前にこれらの問題を事前にチェックする
    Contour Dr.ツールがあり、
    チェック時に'修正を試みる'というオプションもあります。
    ただしあんまり使えなくて、結局手動で修正することになります。
    修正すべきものの数が少なければ手動でもよいのですが、何百もあったらもう無理...。




等高線に問題があっても面を張る方法はないのか?

今回、高さ情報を持った等高線データを貰えましたが、
上記のようなデータの問題で結局Terrainツールは諦めました。
ではどうしたらよいのか?




[Rhinoceros]
    Patchコマンドを使うと複数のカーブ上に面を張ることができます。
    しかも早い!サーフェースの次数を調整すればグリッド状の面も張れます。
    ただし、サーフェースの分割数に制限があるので、
    あまり細かいメッシュにはできません...。
    IGES経由でMayaに互換した後、NurbsSurface to Polygonを使うと
    グリッド状のポリゴンメッシュにできます。ただし、元がNurbsサーフェースなので、
    凸凹部分が跳ね上がったり沈み込んだりします。





もう少しディテールのあるメッシュに出来ないか?

たとえばカシミール3Dみたいな地形作成ソフトだと最小5mとか10mメッシュくらいのデータを扱います。
5mというと自動車くらいの大きさですが、細い道路なんかは潰れてしまいます。
これでも地形モデリングソフトの世界では非常に細かいものです。
でも実際はもう少し細かく表現出来たらいいのになという場合が多々あります。




[Maya nCloth]
    MayaにはnClothという '布' をシミュレートする機能があります。
    Gravity(重力)を設定すればテーブルクロスを敷くようにメッシュを物体の上に
    被せることができます。
    今回は等高線を縦方向にExtrudeしてポリゴンメッシュにし、
    それをRigidに変換してテストしてみましたが重くて動きませんでした...。
    大きすぎて無理だと諦めました。





他の方法

コンターラインの頂点を'点群'と見立てれば、点群処理用のソフトが使えるのではないかと思い、試してみました。
今回は約240万点になります。





[ReCap]
    http://www.autodesk.com/products/recap-360/overview
    どうもProバージョンが無いとメッシュの生成と書き出しができないようです...。


[MeshLab]
    http://www.meshlab.net/
    Point Cloudを扱うオープンソースソフトウェアです。
    通常はレーザースキャンで生成される点群データを扱いますが、
    点データならとりあえず取り込めます。
    今回はMayaに取り込んだ等高線カーブからCVの座標情報を
    全部書きだしてデータとしました。
    3列の座標値の羅列のテキストデータです。
 
   データを取り込んだらダウンサンプリングした後、
    平均ノーマルを計算、
    Surface Reconstruction Ball Pivoting で面を生成できます。
 
    やってみましたが、これもあまりうまく行きませんでした...。
    等高線の性格上、均等にバラ撒かれた点群にはならないので、
    ディテールを潰さないように細かい設定にすると、
    穴だらけになってしまいます。逆に穴を埋められるように
    パラメータを調整するとディテールが無くなってしまいます...。
    まあ、レーザースキャン出来れば早いんですけどね。





結局、Rhinoで作ったラフなメッシュに手動でディテールを付けることになりました。
ローポリモデリングです。ディテールを端折って形状特徴をひろっていくという地道な作業です。
手間がかかりますが、無駄なポリゴンが増えず軽くて扱いやすいデータにできます。

今のところこれがベターなのかなと思っています。









2015年8月15日

HARD MESH!




ModoMeshFusion的なMayaプラグイン出ました!これはいいですね!
Pux

Autodesk Maya 3D HoloLens Demo at WPC


ホログラム的なCG表示技術。4分くらいからわかりやすいです。
今のところ、デッカイメガネが必要ですが...。