無料で使える操作が簡単な「スケッチアップ」で無料の「LuxRender」を使って高画質レンダリングを、無料の仮想Windowsによる分散レンダリングで高速化する方法を紹介します。無料で軽いKerkytheaも。
概要
「スケッチアップ」と「LuxRender」により、無料で簡単に3DCGが使えるようにする方法を以下の記事で紹介しました。
3D CG フリーソフト?簡単なスケッチアップで無料レンダー高速化! >>>
しかし、そのままではフォトリアルな高画質レンダリングの画像が得られるまでの時間が数時間もかかってしまうので、実用的ではありません。
無料のKerkytheaで高速レンダリング
高画質ではなくても数分でレンダリング出来る、LuxRender以外のレンダリングソフトを使う方法が考えられます。
無料では例えば以下の「Kerkythea」などがあります。
この程度の画質で良ければ、簡単にインストールして使えます。LuxRenderと切り替えて使うと良いでしょう。以下の記事を参考にしてください。
(MacはXQuartz(X11)を使うのでこちらが参考になります。Windowsはもっと簡単)
SketchUp を Kerkythea でレンダリングする
LuxRenderの高速化
もっとも、スケッチアップとともに使うLuxrenderのレンダリング速度を飛躍的に上げられれば、それに越したことはありません。
そこで、少々手間がかかりますが、Google Cloud Platform(GCP)上に16vCPU(GPU無し)の仮想Windowsを作ってそこでLuxRender(スレーブ)を動かし、分散レンダリングによる高速化を紹介します。
当初は、GPU付きの仮想Windowsで10倍以上の高速化を考えていました。以前はDAZ Studioでそれが可能でした。以下の記事を参考にしてください。
DAZ Studio高速レンダリング:IrayとLuxRenderで速度と画質を比較! >>>
ところが、現在はDAZ StudioからLuxRenderを使うためのプラグイン「Reality」の最新版を、最近DAZ3Dからアップデート購入してインストールしようとしても、エラーが出てインストール出来ませんでした。
DAZ3Dに問い合わせをしましたが、メーカーにタライ回しにされた挙句、なんら回答をもらえていません。いまだにインストール不能(Windows版もMac版も)です。
そこで、スケッチアップで試したところ、SU2LUXプラグインではGPUによる高速化は設定が出来ないので、仕方なくGPU無しの高速化を検討しました。
GCPのasia-northeast1(東京リージョン)では、24vCPUまで可能なのがわかり、16vCPUの仮想Windowsを作って試したところ、4倍以上の高速化が可能になりました。
16vCPUの仮想Windowsの作り方
最初は記事で書くとわかりにくいので、動画で説明します。以下ではスティックPCの「ASUS Chromebit」で行いましたが、WindowsやMacのChromeブラウザーでも同様に行えます。
GCPで2vCPUの仮想Windowsの作り方を動画で紹介
先ず、以下のURLのGoogle Cloud Platformのサイトに行って、仮想Windowsを全てChrome上で作成しました。
https://cloud.google.com/?hl=ja
★以下の動画ではGPU無しの説明を行なっていますが、vCPU数は「2」です。動画の後で16vCPUの場合のインスタンスの作成方法を記事で紹介しているので、その方法に従ってください。
前半:【スティックPC】ASUS Chromebitで仮想Windowsを作成 >>> YouTubesサイトへ
16vCPUのインスタンスの作成方法
「作成」をクリックし、以下のように設定。
・名前は「instance-1」でOK。「instance-3」となっているのは私の説明の都合上・・・
・ゾーンは「asia-northeast1-a」にします。東京リージョンですが、なぜか海外(アメリカ)からアクセスされるので、地域限定サービスのTverやradiko.jpの視聴は出来ません。
・「vCPU x 16、60GBメモリー」を選択しています。他でも可。東京ゾーンでは「24」がMax.
・GPUは無し。vCPUの数を増やす事でLuxRenderを高速化します。
・ブートディスクは「Windows Server 2012 R2 Datacenter」に設定します。2016だとLuxRenderが起動できなかった事があったからですが、起動できれば可。
・他はデフォールトのままでOKです。
「作成」をクリック。
インスタンスの作成が終わり、自動的に起動しています。
私の場合は、GPU付きの「asia-east1(台湾)」と、GPU無しで16vCPUの「asia-northeast1(東京)」の2つのインスタンスを作って使い分けています。今回は16vCPUを使います。
以上で、16vCPUのインスタンスの作成は完了です。以後はパスワードを取得して「RDP」ボタンをクリックして仮想Windowsに接続し、以下の動画を参考にして使ってみてください。
★ただし、この状態ではまだパソコン側のLuxRenderから16vCPU 仮想Windows側のLuxRender(スレーブ)にネット接続は出来ません。
仮想Windows側のファイアウォールの設定が必要です。その方法は後で紹介します。
仮想Windowsの使い方
Chromebitでの使い方
上記の動画の続きです。Chromeブラウザー上での仮想Windowsの使い方を以下の動画で紹介します。Chromebit特有の説明は聴き流してください。
後半:【スティックPC】ASUS Chromebitで仮想Windowsの使い方 >>> YouTubeサイトへ
この動画に出てきた主なリンク先は以下です。
Chrome RDP for Google Cloud Platform Webストア >>>
★Chromeブラウザーの「Chrome RDP for Google Cloud Platform」アプリから接続すると、YouTubeを再生した時に「音が出ない」と「映像がカクカク」という現象が確認されています。
ちなみに、デスクトップPC(Windows10)のWindows標準の「リモートデスクトップ接続」から接続してみたところ、上記の現象は起こらずHD1080pで視聴が出来ました。
パソコン(Windows/Mac)からの使い方
Windowsからの接続では、GCPインスタンスメニューからRDPファイルをダウンロード後クリックして「リモートデスクトップ接続」で接続します。
Macでは「Microsoft Remote Desktop」(Mac App Storeから無料ダウンロード)で「New/Edit」ボタンで接続設定をして「Start」ボタンをクリックして接続します。
「Chrome RDP for Google Cloud Platform」とはケースバイケースで使い分けると良いかと思います。
仮想側LuxRenderのインストールとスレーブの起動
仮想Windows上のChromeで以下のURLに行きます。
http://preta3d.com/download-luxrender/
「with OpenCL」が付いていないものをダウンロードしインストールします。
OpenCLはGPUのレンダリングで必要になりますが、今回の「2012」ではすでにOpenCLがインストール済みのようなのでOKです。
今回は分散レンダリングを行うので、通常の「LuxRender」ではなくスレーブを起動します。
左下のWindowsボタンをクリック後、左下の「↓」(下矢印)をクリックしてアプリケーションランチャーを開き、「Start LuxRender Slave」をクリックします。
仮想Windows上のLuxRenderから接続する場合は、最上部に表示されている「Local IP address」(内部IP)を使います。
パソコンからインターネット経由で接続する場合は、GCPのVMインスタンスの外部IPを使います。
こうしてスレーブを起動しておけば、パソコン側のLuxRenderから分散レンダリング出来る準備が整います。
次に、GCPのVMインスタンスと仮想Windows側のファイアウォール設定をすれば、パソコン側からファイアウォール内のスレーブにアクセスが可能になります。
ファイアウォールの設定方法
GCPのVMインスタンスの設定をするために、GCPコンソール画面を開きます。以下の3つのファイアウォールの設定を行います。
1.ネットワークタグの追加
2.ファイアウォール ルールの作成
3.LuxRender SlaveのファイアウォールのPublicを許可
ネットワークタグの追加
ここの「instance-2」をクリック。1つの場合は「instance-1」になります。
右上の「編集」をクリックし、ファイアウォールまでスクロール。
「ネットワーク タグ」に「luxrender-cpu」タグを追加。
最後までスクロール。
「保存」をクリック。
「ネットワークタグ」に「luxrender-cpu」が追加されたのを確認し、左上の矢印をクリック。
ファイアウォール ルールの作成
TCP:18018番ポートを開きます。
画面左上のメニューボタンをクリックし、下にスクロールして「ネットワーキング」の下の「VPCネットワーク」の「ファイアウォール ルール」をクリック。
右上の「ファイアウォール ルールを作成」をクリック。
・名前に「luxrender-slave」と入力しEnter/returnを押す。
・「ターゲットタグ」に「luxrender-cpu」を追加。(GPU付きで既に1つ入力済みなので)
・「ソース IPの範囲」に「0.0.0.0/0」と入力。
・「プロトコルとポート」を「指定したプロトコルとポート」にし、「tcp:18018」と入力。
「作成」をクリック。
Luxrender SlaveのファイアウォールのPublicを許可
次に、仮想Windowsのインスタンスを起動して、RDP 接続します。
左下のWindowsメニューボタンをクリック。
「Control Panel」をクリック。
「System and Security」の「Windows Firewall」の「Allow an app through Windows Firewall」をクリック。
「LuxRender Slave」の左にチェックを入れ、右端の「Public」にもチェックを入れる。(操作が出来ない状態なら、右上の「Change settings」をクリック)
右下の「OK」をクリック。
以上で、ファイアウォール関係の設定が完了です。これでパソコンからインターネットを通じて仮想WindowsのLuxrender Slaveにアクセスが可能です。
LuxrenderからLuxrender Slaveに接続
Luxrender Slaveを立ち上げておきます。
ちなみに、仮想Windowsに「Sketchup 2017 Make」をインストールして起動してみましたが、以下のエラーメッセージを表示して起動できませんでした。
おそらく、DAZ Studioと同じくOpenGLのバージョンが古すぎるので起動できないのではないか?と考えます。
GCPの仮想Windowsを3DCGで活用するには、Luxrender Slaveによる分散レンダリングに使うのが良いと思います。その場合はGPUでは高速化は出来ないので、vCPU数を増やして高速化します。
このままにしておいて(リモートデスクトップ接続は切断しても仮想Windowsは動き続けます)、パソコンのLuxRenderからネットワーク接続してみます。
レンダリング開始から5分経過後です。「Network」タブに切り替えます。外部IPを入力して「+」をクリック。
180秒間隔でスレーブからレンダリングデータが送られてきます。
開始から13分経過後です。レンダリング速度が表示され始めました。以下の画像は別記事で最初に16vCPUによる高速化が確認出来た時のものです。
パソコン側(AWS側)は63kS/sですが、GCP側は185kS/Sと約3倍です。トータルでは248kS/Sとなっており、約4倍の高速化を実現出来ました。
まとめ
以前に、DAZ Studioで人物メインのシーンを作って、Realityというプラグインを介してLuxRenderのOpenCLでレンダリングしたことがあります。GPUは使えましたので、5分くらいで高画質な画像が得られました。
DAZ Studio高速レンダリング:IrayとLuxRenderで速度と画質を比較! >>>
GPUに比べると、vCPUを増やして高速化するのは力技っぽいですが、とにかくLuxRenderによるレンダリングを無料で高速化できるようになったので、スケッチアップのレンダリングが実用段階に来ました。
★Amazon Sumerianによるスケッチアップのシーンを無料でVR化する方法を紹介している記事などのリストは以下です。
ではでは、きらやん