株式会社デジタル・フロンティア-Digital Frontier

Header

Main

  • TOP
  • DF TALK
  • あまり役に立たないCGにまつわるどうでもいい話 その2

あまり役に立たないCGにまつわるどうでもいい話 その2

2011/1/24

Tag: ,,

皆さん、こんにちは。
去年は色々と忙しかったので今年は余裕をもって働きたいなと願っている J です。

さて前回に引き続き、どうでもいい話をしたいと思います。
前回は第3次メモリ戦争までの話をしたわけですが、今回もメモリに関わる話です。
え~もういいよ~~そんな話~とは思わず、最後まで付き合ってください。では始まり始まり~~~。

■第4次メモリ戦争
2010年に入ってから弊社では色々と変化がありました。その変化の渦の中、あの暗黒のMaya2010導入計画がありました。
導入の理由は二つほどあり、その一つは、Mayaのライセンス体系の変化によりMentalRayのレンダーライセンスが増えたこと、そしてもう一つが、以前までのバージョンのようについでに出す64ビットMayaではなく、純粋に64ビット環境を考えて出したバージョンだと(勝手に)思ったからです。

当時(2~3月)はまだ5月までのプロジェクトでMaya2009(32ビット)を使用しているものがあったので、32ビット環境と64ビット環境を混在させながらの移行となりました。しかし、32ビットのMaya2009でHairのMentalRayによるレンダリングが遂にメモリ不足でSwapを始め、レンダリングできない状況が出てきたので64ビットのMaya2010でレンダリングを試みることになりました。そしたらなんということでしょう!64ビットのMaya2010では4Gのメモリを3.5G近くまで使いレンダリングが可能になったのです。早速現場のデザイナーに知らせHairのシーンだけを64ビットMaya2010で塗るようにとお勧めしました。

これでもうメモリの心配はないなと高笑いしながら帰宅したのですが、次の日会社に来てみたら久しぶりに見るWindowのBSOD画面(通称ブルースクリーン)が出迎えてくれました。なんだ?と思いつつ再起動をかけましたが、それがMaya2010が出している危険信号だとは思ってもいませんでした。次の日、弊社で使っているDispatcherソフトでジョブが入ってきたPCが次々と目の前で顔(モニター)を真っ青にしながら落ちていくのを目の当たりにしたときはある種の恐怖を覚えました。何がおきているんだ!と原因を調べるため自分のPCでDispatcherで送ったシーンをコマンドラインで走らせてみました。レンダリングを始めてからすぐにタスクバー上で異変が起こりました。メモリ使用量が普通じゃなかったのです。見る見るうちにメモリ使用が2G、3G、4Gと天井知らずにあがっていき、挙句にはあるはずもない8G、10G、15Gを超えた途端自分のPCも真っ青になって落ちたのです。え?と思いつつ32ビットMaya2009のほうでまわしてみるとスワップはするもののそのような現象はおきてなかったので、オートデスクにそのようなバグ報告があったのかと問い合わせしてみたところ、TBB関連のバグのようですと返事がありました。

このバグが結構致命的なのが、何が原因で起こるか断定できないことです。なので複雑なシーンで起こる場合もあれば、単にSphereを半分にしただけのシーンでも起こる可能性があります。また、GUI上のレンダー(RenderViewレンダー)では起こらないというのがやっかいです。デザイナはDispatcherに投げる前にGUI上のレンダーだけ確認して問題なければ送ってしまうわけですから。また更にやっかいだったのが、弊社がその当時導入し始めたマルチコアCPUのPCでより深刻な状況に陥っていた、という事です。TBBはマルチコアCPUで力を発揮するものなので…。

このバグの症状としては、Mayaの「バッチレンダリング」が始まり、レンダリングデータを構築し始める部分でおきます。ええ、MentalrayもMayaSoftwareも逃げることが出来ません。Mayaが問題を起しているので…。

一旦あがり始めたら莫大なメモリを食いつぶすバグに豹変します。当時のプロジェクトでだいたい15~18Gのメモリを要求されました。作業PCがこのメモリを満たさないと、顔が真っ青になって落ちます。幸いメモリ要求を無事乗り越えたとしても「仮想メモリが足りません」がずっと付き惑うタチの悪いストーカーになります。

このバグのもっとも効率的な回避方法は同じTECHTALKでヒロム君が書いた環境変数の設定です。
set MAYA_NO_TBB=1
TBBを使用しないという意味ですが、TBBはIntelのマルチスレッディングライブラリーでマルチコアの機能を使うためのものです。詳しくはここを参考にしてください。このライブラリはMaya2010で初めての導入ではないですが、たまたま64ビットMaya2010で使用しているライブラリーとそれが使用しているMayaのライブラリーがまずかったらしいです。他のバージョンでは同じシーンをレンダリングしても問題が出ません。なんという籤引き運の悪さだと思いつつ、導入してしまった時点で後戻りは出来ない状況でした。既に走ってしまったプロジェクトを止めることもできず、対応していくしかなかったのです。勿論、始めからこの環境設定をしておけば問題ないですが、当時はこの設定でどういう影響がでるかわかりませんとの返事だったので、検証が出来るまでWindows OSの仮想メモリを増やして対応するしかなかったわけです。(HDDの容量が大きいと色々と便利です)

海外でこの問題を認識して少し詳しい内容が書いてあるのがMaya Stationです。(弊社で問題を発見してから4ヶ月後の書き込み…いつも参考にしてるのにおそいよ~orz) 因みにMaya Stationにも書いてありますが、TBBを使用しないことでレンダリングのスピードの違いはあります。私の経験では1~5分ぐらい遅いという結果になりました。私自身も他の仕事があるのでこれがあると遅いよという詳しい検証はできず、多くのシーン(当時のプロジェクトのレンダーシーンをランダムに選んだ30シーンの1~5フレーム)を、設定有り無しでレンダリングしてみた結果です。

尚、最終的には幾つかのPCでその設定あり(TBBオフ)の状態での検証を2週間ほど行い、絵の違いやクラッシュの有り無し、現場サイドでレンダリングが重くなったか等の情報を寄せ集め、TBBをオフにしても大きな問題はないと判断しました。現在はDispatcherの中にこの設定を施してあります。その後から今日までは、当たり前ですが特に大きな問題はでていません。
※TBBの設定は弊社もオートデスクからどういう影響がでるかわかりませんと返事をいただいて自己責任で行っています。
なので皆さんがこの設定を行う場合はオートデスクと話し合い、自己責任で行ってください。

なんといっても2010年の一番の収穫は、このメモリ問題と現場サイドのQuality Upの貪欲さがコラボしてメモリの増設が決まり、現在デザイナPCは12Gというほくほくした環境ができたことです。これでやっとメモリ問題から開放されましたが、何時の間にかもう2010年も終わってました…orz。

最後に、弊社スタッフによるCGが輝いている「GANTZ」が1月29日に公開されます。
宜しければ是非!!

Pocket

コメント

コメントはありません

コメントフォーム

コメントは承認制ですので、即時に反映されません。ご了承ください。

*