Redshift & Mayaで始めるGPUレンダー その4

今回はRedShiftレンダーのProxyを使ってみます。
まずは、簡単なシーンで仕組みを解説します。

お馴染みティーポットにRedShiftMaterialのJade(ヒスイ)を設定したシーンです。
同じモデルを大量に配置したシーンを作る場合、当然処理が重くなります。そこでProxyを利用します。

Proxyにしたいオブジェクトを選択して、RedhShift→Proxy→Export□します。

Optionで埋め込むデータの細かい設定ができますが、今回は省略します。
一番下のSequenceは連番モデルでアニメーションを書き出せます。

拡張子は「~.rs」になります。


Mayaは新規作成し、RedhShift→Proxy→Create□します。

先ほどの「~.rs」を選択します。

アトリビュートにredshiftProxyという項目があるCubeが出れば成功です。

RedShiftでレンダリングすると、CubeはちゃんとTeapotになってます。

アトリビュートで、DiesplauyModeをPreviewMeshにすると、Teapotの表示になります。また、Filenameで参照するrsファイルをここで決めていますので、変更することもできます。

これをインスタンスで50×50=2500個にします。

Cubeですから3万1千ポリゴンでしかありません。

レンダリングすると全部ティーポットになります。計算時間は、HD1080でわずか11秒です。
同じことをProxyを使わずにインスタンスだけでやると、16,386,300ポリゴンになります。

これを応用して、大規模な森林を作るチュートリアルです。
Mashも使って、山のポリゴンの起伏に合わせてProxyに登録した5タイプの木をランダムに配置して、軽くしています。

MayaのMashは、ボーンデジタル様の「MASH チュートリアルムービー」がおススメです。ぜひ一緒にご覧ください。

Redshift & Mayaで始めるGPUレンダー その3

今週もまず動画から。2018年度版のRedShiftデモリールです。
ゲーム『オーバーウォッチ』のショートムービーは相変わらずRedShiftみたいです。RedShiftの作品事例はこちらにもっと紹介されています。

さて、今週はMaya RedShiftの「Automatic memory management」について触れてみようと思います。これもver2.5以降の機能のようです。

Render SettingのMemoryのタブがあります。ここでCPU/GPUにどれだけのメモリやテクスチャーのキャッシュを設定するか、でレンダリング速度が変わるのがRedShiftの特徴です。
ところが、どう設定すれば早くなるのか?というのが難しい、というのが現状でした。
そこで、この一番上に「Automatic memory management」にチェックを入れると自動でそれを割り当ててくれる、という機能です。

チェックONでこうなります。
RedShiftは高速なGPUレンダリングなのですが、グラフィックボードのメモリに載らないくらい多いポリゴン数やテクスチャーサイズになると、計算速度が途端に重くなる、という性質があるようです。
(グラフィックボードを複数刺す、という強引な回避策はあります)

このRedShiftオフィシャルチュートリアルのサンプルシーンで試してみましょう。
「Automatic memory management」がOFF=7分47秒、ON=6分36秒でした。
1秒11秒の差が出ます。
ちなみに1280x720ピクセルで貼っているテクスチャは2Kが7枚です。

GPUはK4000です。


このブログ研究マシンはGPUが2枚入っています。
今度はGTX980に切り替えで再度レンダリングします。
「Automatic memory management」がOFF=4分9秒、ON=2分26秒でした。
1秒43秒の差が出ます。

いずれGPUの場合も本体CPU、メモリは同じで、Mayaを操作・表示するディスプレイは使っていないGPU側で行っています。

以下の動画でも「Automatic memory management」の解説があります。


OFFだと3分32秒が、ONだと2分42秒になる、という結果です。

Redshift & Mayaで始めるGPUレンダー その2

今回はまず、ちょっと面白い動画があったのでご紹介します。
「Redshift Vs UnrealEngine4」です。

コメントで、「リアルタイムレンダラとプリレンダラを同じように比較できない」というツッコミに「リアルタイムでプリレンダリングと同等の結果が得られるか?の実験で、Redshiftで3500時間をUnrealEngine4なら5分です」と返答しています。

さて、今回のメインの話はRedshiftのVer2.5(最新は2.6ですが)でお話をしていきたいと思います。Mayaも2018を使って説明します。

まずは1つめは、Redshift RenderViewです。

メインメニューから表示します。「Render」を選んでもRedshift RenderViewになります。
こんなUIです。

左からRenderのボタン、赤枠の三角が「IPR(Interactive Photorealistic Rendering)」でMayaのビューやアトリビュートの操作をリアルタイムで反映してレンダリングします。GPUなのでとてもレスポンスが良いです。


次がRGBAの切り替えです。その左の「Beauty」は後ほど。

その右の4つのボタンが「RenderRegion」で囲んだ範囲だけレンダリングします。その隣はカメラのロックです。Mayaのビュー選択で勝手に切り替わりません。
その右の9マスのボタンは、「Bucket rendering」と「Progressive Rendering」の切り替えです。Bucketレンダリングは指定した指定したピクセル単位でタイリ
ングに高速にレンダリングします。
その右の雪の結晶みたいなボタンは今回は「FreezTessellation」ですが、今回は説明省略します。
「RenderSetting」の「System」に「Bucket rendering」の設定があります。
Progressive Renderingは普通のレンダリングで高画質ですが、少し時間がかかります。
詳しくは正規マニュアルをご欄ください。


その隣の丸いボタンはプルダウンになっていて、3通り選べます。
「Bucket rendering」時のみ変更できます。

「Regular」=これがデフォルトの状態です。


「Clay」=全て質感をグレーのLanbertシェーディングで表示します。

「Samples」=反射などサンプリングの要素をグレーに表示します。


その隣はスナップショットです。ショートカットキー「s」でもOKです。
その隣の「+」ボタンか、ショートカット「=」で下のリストにキャプチャを追加していきます。キャプチャは右クリックで「Delete」できます。

キャプチャ画像はFileから形式を決めてSaveできます。


次がレンダリングサイズの設定です。

次の歯車のボタンはSettingいろいろで3つタブが出ます。最初はガンマと露出、表示をsRGBにするなどの設定です。

右のタブは、SnapShotの保存先の設定。

真ん中のタブは、まずRenderSettingでAOVでレンダーエレメントと追加します。

すると、各エレメントの情報をサムネイル表示します。ビュー事態を切り替えるには、「Beauty」のプルダウンから行います。

いかがでしょうか?だいぶん便利になりました。ぜひ使ってみてください。