見出し画像

Houdini19.0 Karma紹介 前編「Karma ROP & Karma LOP」

はじめに

YouTubeに説明動画をUPしておりますので、併せてご覧ください。

スライド2

----------------------------------------------------------------------

今回説明するパート

画像25

OP

Houdini19では、Houdini18.0から搭載されている
「Karma LOP(Lighting Operater Node)」に加えて、
Outコンテクスト上で使用できる
Karma ROP(Render Operater Node)」が追加されました。

今回の記事ではこの二つのノードの違いや操作について確認していきます。

またHoudini19から搭載されたXPUエンジンについても解説していきます。

Karmaについて

スライド4

まずKarmaは物理ベースのパストレーサーになります。

Karmaレンダラー自体はUSDシーン記述ファイルから画像ファイルをレンダリングする目的で使用することが出来ます。
HoudiniのOBJレベルに用意されているシーンデータをSolaris上にImportしてレンダリングすることも可能です。

Houdini19ではLighting Operaterではなくて、
Render Operater、Mantraノードなどを作成できる階層と
同じ階層でKarmaノードを作成できるようになりました。

内包するノード

スライド5

Karmaは、ノードしては大きく分けて4つの機能が内包されています。

seminar_1223.00_02_28_23.静止画005

seminar_1223.00_02_31_09.静止画004

Karmaノードを右クリックし「Allow Editting of Cotents」を選択することでノードの内部に入れるようになります。

seminar_1223.00_02_41_03.静止画006

内部に入るとまず「USD Render LOP」があります。
その上の「Karma Render Properties」というノードを上と同じく
Allow Editting of Cotents」を選択し内部に入ります。

seminar_1223.00_04_19_24.静止画003

そうするとほかの内包するノードを確認することが出来ます。

Render Var LOP

スライド6

Render Var LOP」はレンダリング、シェーディングに使用される変数(Variables)を設定するためのノードです。

この変数とは、例えば一つのシーンがあった時に、そのシーンを
構成する要素、Bearuty passだけではなくSpecularであったり、
VolumeであればDirect、IndirectなどLightの影響を、
それぞれ異なるコンポーネントとして出力したりすることが可能となります。

Render Product LOP

スライド7

Render Product LOP」は直前で紹介した「Render Var LOP」を
1つのファイルとしてまとめる機能を持ったノードとなります。

seminar_1223.00_04_19_24.静止画003

Karmaノードの内部を確認すると「Render Product LOP」は
必ず「Render Var LOP」の真下に配置されています。

Render Setting LOP

スライド8

Render Setting LOP」は、レンダリング時のカメラの設定であったり、レンダリングする画像の解像度、アスペクト比、
サンプリングなどのグローバルセッティングを行うために
機能するノードです。

USD Render LOP

スライド9

USD Render LOP」は上記3つのノードの機能を受け取り、
レンダリングを行うノードです。

スライド10

このノードを実行すると、外部プロセス(husk)が起動します。
この「husk」自体は、「Hydra」クライアントを使用して
USDファイルをレンダリングするユーティリティーに相当します。

Hydraとは

スライド12

直前でもでた「Hydra」について説明します。

「Hydra」はAPIのことで、MAYAやHOUDINI、KATANAといったDCCツール側で作成したUSDファイルをHydraクライアントとして使われるレンダラーにそのシーンの情報を渡します。
この「Hydraレンダーデリゲート」に対応しているレンダラーがこのクライアントに相当します。
HoudiniのSolarisで付随している対応レンダラーが「Karma」となります。そのほかにも「RenderMan」「Arnold」「Redshift」といったレンダラーも対応しています。
つまり「Hydra」はシーングラフと対応するレンダラーを繋ぐ
ブリッジ(架け橋)
のようなものと捉えていただければと思います。

Karma Render Properties

スライド13

Karma LOPの内部を確認した際に「Karma Render Properties」というノードがありました。このノードはKarmaレンダラーから
USD Render LOP」を取り除いたような、セッティングのみが
出来るノードとなっています。

Karma ROP

スライド14

次にHoudini19から追加されたPutコンテキスト上で使用できるようになった「Karma ROP ノード」について説明します。

スライド15

Karma ROP ノード」はSolaris上で動作する「Karma LOP ノード」のHDAラッパーとなります。

Scene Import LOPから、Objectレベルのモデルデータ、カメラ、
ライトなどそれぞれのオブジェクトを読み込んできています。

↓下のリンクから再生すると、内部を確認している部分から再生されます↓

Karma LOPと違う点については、デフォルトではビューポートレンダリングが行えないという点です。

seminar_1223.00_08_03_09.静止画007

ではどうすればいいのか解説しますと、Karma ROPのパラメーターに「Karma Viewport」というボタンを押し、別でフローティングウィンドウを起動する必要があります。

↓下のリンクから再生すると、実践している部分から再生されます↓

Karma XPU

スライド17

Houdini19から「Karma XPUエンジン」が搭載されています。
こちらはCPUリソースとGPUハードウェアアクセラレーションを併用するレンダリング技術となります。
レンダリング実行中にGPUがメモリ不足になった場合CPUに負荷が回ります。その逆でも同じく機能します。

↓下のリンクから再生すると、CPUレンダリングとXPUレンダリングを比較している部分から再生されます↓

スライド18

またXPUレンダリング時はDキーを押すことによって開く
Display Options:Solaris」から「Guideタブ>Render Stats」を
有効にすることでビューポートの左下にレイの情報と、レンダリング時に使用しているGPUデバイスの情報が表示できます。

XPUの機能制限

スライド20

スライド21

現在XPUはα版でのリリースとして提供されているため
一部機能が制限されています。
制限されている機能は上記の画像の通りとなっています。

スライド22

制限をふまえてXPUの機能の目的としては、
ルック開発を行う際にアセットであったりシェーディング開発、チェックの効率化を行うことが大きな目的として挙げられます。

そのフローとしてXPUでマテリアル、オーソライズであったり
シーン内に配置するアセットのルックデブを行って、
最終的なレイアウトやライティングはCPUモードでレンダリングを行うのが確実かと思われます。

---------------------------------------------------------------------

今回のパートは以上となります。
次回Karma紹介 後編「Shader」に続きます。
是非ご覧ください。

画像25



この記事が気に入ったらサポートをしてみませんか?