Arnold 7.0.0.0
Arnold 7.0.0.0は、インテル ® のOpen Image Denoise、全体的なノイズ除去品質の向上、GPUの重要なスケーラビリティの向上、パフォーマンスと対話性の向上を追加した主要な機能リリースです。また、同じプロセス内で複数のシーンをレンダリングする機能や、複数の出力をサポートするシェーダーなど、重要なAPIの変更も紹介します。
システム要件
- Windows 10以降、Visual Studio2019が再配布可能。
- 少なくともglibc2.17およびlibstdc ++ 4.8.5(gcc 4.8.5)を搭載したLinux。これはRHEL / CentOS7と同等です。
- macOS10.13以降 。
- CPUはSSE4.1をサポートする必要があります。 Mシリーズチップを搭載したAppleMacモデルは、Rosetta2モードでサポートされています。
- GPUレンダリングはWindowsとLinuxでのみ機能し、Ampere、Turing、Volta、Pascal、またはMaxwellアーキテクチャのNVIDIAGPUが必要です。 Linuxでは 470.74 以降のドライバーを使用し、Windowsでは 472.12(Quadro)、472.12(GeForce) 以降のドライバー を使用することをお勧め します。詳細については、 ArnoldGPU入門を 参照 してください。
- Optix™デノイザーには、 CUDA™Compute Capability5.0以降を 搭載したNVidiaGPUが必要です。
機能強化
Open Image Denoise imager
Intel®のOpen Image Denoise(OIDN)は高速なAIアクセラレータのデノイザーであり、Arnoldにはimager_denoiser_oidn という名前のイメージャーとして追加されています。(ARNOLD-8677)
Higher quality AI denoising
OptiXおよびOIDNデノイザーは アルベド機能AOVとして 新しく導入された denoise_albedo_noisyAOVを 使用する ようになりました。 これにより、鏡面反射と屈折がアルベドに追加され、デノイザーの品質が向上します。以下は、新旧のアルベドAOVでノイズ除去されていないものとノイズ除去されたOptixの比較です。(ARNOLD-10812)
デノイズなし(左)、Optix ディフューズ (中)、Optix ディフューズ+スペキュラ(右)
LUT based tone mapping
イメージャー imager_tonemap は、OCIOv2 (特にcube, look, 3dl, clf) でサポートされているすべての形式でLUTファイルを適用する lut モードをサポートするようになりました。 imager_tonemap.lut_filename はロードするファイルを指定します。一部のLUTは、非線形の色空間を想定していることに注意してください。これを補助するために、imager_tonemap.lut_working_color_space で作業色空間を指定することで、指定された色空間に変換したのち、lutを適用し、リニアまたはレンダリング用の色空間に再度変換することができます。(ARNOLD-11084)
Automatic selection of box filtering with OIDN and OptiX denoisers
OptiXおよびOIDNデノイザーは、複数のピクセルにまたがるCPUレンダリングフィルターではうまく機能しません。CPU上のArnoldは、いずれかのデノイザーが使用されている場合に、既知の問題のあるフィルターを備えた出力に Box フィルターを自動的に強制するようになりました。(ARNOLD-10812)
Imager_color_curves
明るさとカラーカーブを制御するための新しいイメージャが追加されました。 全体的な輝度応答を制御するために、メインカーブとともに、R、G、Bの各コンポーネントごとに個別のカーブを作成できます。 必要に応じて、曲線補間と作業色空間を設定することもできます。(ARNOLD-11161)
imager_tonemap.mix
imager_tonemap に追加のミックスパラメーターが追加されました。 0は入力をそのまま保持し、1はフルノード効果を適用します。(ARNOLD-11172)
Imagerを無視するオプション
グローバルオプション ignore_imagers が追加され、ユーザーがシーンでイメージャの後処理を無効にできるようになりました。これはデバッグに役立ち、-iiフラグを使用してキックを介して有効にすることもできます。(ARNOLD-10720)
複数のドライバーで共有されるイメージャーのサポートの改善
デノイザーを含むすべてのイメージャーを、異なるAOV入力を持つドライバーで共有できるようになりました。(ARNOLD-11087)
IPRでのイメージャのリフレッシュレートの改善
フルフレームイメージャがレンダリング中に更新されるようになり、イメージ全体がレンダリングされる前にイメージャチェーンの結果をプレビューできるようになりました。 これは、場合によっては、フルフレームが終了するまで結果を遅らせる必要がある以前の動作に置き換わるものです。(ARNOLD-11203)
プログレッシブレンダリングでのフィルターパフォーマンスの向上: プログレッシブモードでレンダリングする場合、Triangle、Sinc、Blackman-Harris、Catmull-Rom、およびMitnetフィルターを含むいくつかのフィルターのパフォーマンスが向上しました。場合によっては、パフォーマンスが48%向上し、メモリ使用量が20倍向上しました。(ARNOLD-10651)
CPUでの複数の並列レンダーセッションのサポートが追加されました。 アーノルドユニバースは、独自のレンダーセッションを使用してレンダリングできるようになりました(ユニバースごとに1つのレンダーセッションのみ)。 これらのレンダリングセッションは、並行してでも、任意の順序で実行できます。
既存のAPI(AiBegin)は、デフォルトのユニバースとレンダリングセッションを作成します。これは、使用または無視できます。追加のユニバースは、通常どおりAPIを使用して作成および破棄できますが、レンダリングセッションの作成/破棄および使用を可能にする新しいAPIがあります。
AtUniverse* universe = AiUniverse();
AtRenderSession* rs = AiRenderSession(universe);
AiRenderBegin(rs);
. . .
AiRenderEnd(rs);
AiRenderSessionDestroy(rs);
AiUniverseDestroy(universe);
シェーダーの複数の出力:
Arnoldは、シェーダーノードの複数の出力を持つことをサポートするようになりました。シェーダー出力は、.assファイル内の他のシェーダーノードの入力にリンクするか、リンク時に必要な出力をオプションで指定することにより、 AiNodeLinkOutput() 関数を介してプログラムで リンクできます。出力が指定されていない場合、ノードのデフォルトの出力パラメーターが選択され、アーノルドの既存の動作が維持されます。
複数のOSLシェーダー出力を指定 する場合は、標準のOSL言語ルールが適用され ます。3つのカラー出力を備えたOSLシェーダーの例 は、次のスニペットのようになり、各出力を個別に接続できます。
shader test_shader (output color result = color(1, 1, 1),
output color good = color(0, 0, 1),
output color bad = color(1, 0, 0))
{ ... }
可視ライトが透明になりました
可視ライトが透明になりました。これは、間接的に見えるライトの動作と一致します。 これには、テクスチャライトの黒い部分をマスクできるという利点もあります。これは、これまで正しくなかった可視光の動作を修正するための、見た目を大きく変える変更です。(ARNOLD-9070)
可視ライトの透明度が反射と一致するようになりました。 上図: 以前のバージョン, 下図: 新しいバージョン
Kick ASCII レンダーモード
kick -ascii
コマンドにより ターミナルに直接レンダリングできるようになります。これには、UTF-8をサポートする24ビットターミナルが必要です。 Windowsターミナル、ほとんどの Linuxターミナル、および iTermはこれをサポートしています。 Appleのターミナルはサポートしていません。これにより、レンダリングの解像度がコンソール内に収まるように変更されるため、ディスクに書き込まれる画像は非常に小さくなります。解像度が非常に低いため、kick に -bs 16
のオプションを渡すなど して 、小さなバケットサイズを使用するように指示することをお勧めします 。これは、リモートマシンのレンダリングが機能しているかどうかを確認するのに役立ちます。(ARNOLD-11146)
デフォルトでACEScgでレンダリング
ArnoldはデフォルトでOCIOカラーマネージャーを使用するようになりました。このカラーマネージャーは、デフォルトのOCIO構成ファイルを使用します。Arnold はデフォルトで ACEScg色空間でレンダリングします。(ARNOLD-11246)
標準OCIO構成
Arnoldには、 ACEScg や scene-linear Rec.709-sRGB 、標準ダイナミックレンジビデオ用 の ACES 1.0 SDRビデオ ACES出力変換 など、レンダリングに使用される一般的な色空間を公開する標準OCIO構成が付属しています 。 この設定は、デフォルトのMaya 2022OCIO設定と互換性があります。(ARNOLD-11333)
Multi-part EXR
EXRドライバーは、Multi-part EXRファイル内の個別のイメージ(パーツ)としてAOVをレンダリングできるようになりました(対照的に、マージされたAOVは、シングルパートEXR内のレイヤーとしてAOVをレンダリングします)。
Multi-part は、スキャンラインまたはタイル化されたEXRのいずれかで機能し、driver_exr.multipart ブールパラメーターで有効になります。
※ Noiceは Multi-part EXRでは機能しません。
AOVを複数の形式で書き込む
単一のAOVを複数の異なる形式で出力できるようになりました。たとえば、次の出力文字列で正しい結果が出力されるようになりました。(ARNOLD-11079)
outputs 2 1 STRING "RGBA FLOAT filter testrender" "RGBA RGB filter testrender2"
OSL UDIM
OSLは、UDIMなどのテクスチャタグを解決するためにArnoldの画像ノードと同じコードを使用するようになりました。 これにより、OSLテクスチャルックアップが高速になり、OSLから使用できるテクスチャタグのタイプが増える可能性があります。 (ARNOLD-9276)
SSS setnames with randomwalk
CPUレンダリングの randomwalk モードで、サブサーフェス効果を異なるオブジェクト間で拡散させるsss_setname 機能がサポートされました。(ARNOLD-8140)
既存のTXを使用
options.texture_use_existing_txがデフォルトのtrueに設定されていると、Arnoldはテクスチャの.txバージョンが利用可能な場合、その使用を試みます。.txファイルは、要求されたソーステクスチャと同じディレクトリにあり、ファイルの拡張子を除いて同じ名前でなければなりません。
例えば、「foo/bar/floor.png」が要求され、「foo/bar/floor.tx」が存在する場合、「floor.tx」が使用されます。Arnoldは、.txファイルを使用する際に要求された色空間変換を無視します。なぜなら、.txには色空間変換が焼き付けられているからです。(ARNOLD-4107)
MaterialX v1.38 のサポート
Arnoldは、MaterialXのサポートをv1.38に拡張しました。このアップグレードの一環として、Arnoldからエクスポートされたルックやマテリアルは、これまでのShaderRefsとParamsの組み合わせから、NodesとInputsの組み合わせで表現されるようになりました。Arnoldは以前のバージョンのArnoldでエクスポートされたMaterialXドキュメントをレンダリングすることはできますが、これによりルックが壊れる可能性があります。
Cryptomatte 1.1.2
Cryptomatte はバージョン1.1.2にアップデートされました。
GPUの機能強化
ポリメッシュ でのVRAM使用量の低減
このバージョンでは、ポリメッシュで使用されるVRAMの量が大幅に少なくなっています。サブディヴィジョン の多いシーンでは、ジオメトリに使用するGPUメモリが約33%少なくなります。(ARNOLD-8524)
GPUボリュームでのVRAM使用量の低減
Arnold 6.2.1で 、GPUでの OpenVDBボリュームをレンダリングするためにNVIDIAのNanoVDBシステムの使用を開始しました。これにより、OpenVDBボリュームに必要なGPUメモリが大幅に減りました。Arnold 7.0では、NanoVDBボリュームの圧縮がさらに改善されたため、一般的なボリュームシーンでGPUメモリがさらに約50〜60%削減されます。GPUボリュームは、同等のCPUボリュームがRAMを消費するよりも少ないVRAMを消費するようになりました( 赤い線は、別のCPUレンダリングでのRAM使用量を示しています)。(ARNOLD-11229)
Matteのサポート
GPUインテグレーターにmatteのサポートが追加されました。これにより、matte closure、matte shader、matte shape flagの全てがサポートされました。(ARNOLD-7924)
USDの機能強化
- USD 21.08: core SDK に含まれているプロシージャルが、USD 21.08 を使用して構築されるようになりました。
- UsdImaging アダプタ: Arnold-USDには、Arnold特有のスキーマ用のUsdImagingアダプターのセットが含まれており、HydraでプロシージャルやArnoldシェイプを直接使用することができます。(USD#185 USD#741)
- ディープレンダリング: レンダリングデリゲートは、DelegateRenderProductsを介してディープAOVのレンダリングをサポートするようになりました。(USD#650)
- 1つのファイル内に複数のフレーム: USDライターで、1つのUSDファイルに複数のフレームを追加できるようになりました。(usd#777)
- Hydra シーンデリゲート: Arnold-USDに、Hydraの実験的なシーンデリゲートが含まれるようになりました。(usd#764)
- ハスク使用時にプログレッシブが無効になる: ハスクを介してレンダリングするときにプログレッシブレンダリングが無効になるようになりました。(usd#755)
- プロシージャルパスマッピング: USDファイルをロードするときに、プロシージャルがArnold Path Mappingをサポートするようになりました。(usd#818)
- カスタム PrimID Hydra バッファー: レンダーデリゲートは、専用のprimId AOVを使用して、Hydraビューポートでの選択をサポートするようになりました。これにより、レンダリング時のプロシージャルのサポートが向上し、組み込みのidパラメータがシェイプで変更されないままになります。(usd#812)
- レンダーデリゲートのDoubleSided: レンダーデリゲートは、USDプリミティブの組み込みのdoubleSidedパラメーターをサポートし、Arnold固有のprimvar を介したオーバーライドを正しくサポートするようになりました。(usd#805)
- 速度と加速度を使用したモーションブラー: 速度または加速度のprimvarが存在し、位置に複数のサンプルがない場合、レンダーデリゲートがポイント位置を推定するようになりました。(usd#673)
- ライトリンク: プロシージャルはライトリンクをサポートするようになりました。(usd#787)
- カメラの更新の高速化: レンダーデリゲートがカメラのみの更新をより効率的に処理するようになり、初回のピクセル化が改善されました。(usd#869)
- 標準サーフェスフォールバック:プリムにマテリアルが割り当てられていない場合、レンダーデリゲートは標準サーフェスをフォールバックとして使用するようになりました。(usd#861)
- 文字列配列パラメーター:文字列配列primvarsが組み込みパラメーターに変換されるようになりました。(usd#808)
- 複数の Hydra セッション:レンダーデリゲートがマルチレンダーセッションAPIを使用するようになりました。(usd#783)
互換性のない変更
denoise_optix_filterの削除
imager_denoiser_optixノードの導入により、古いdenoise_optix_filterコードパスが冗長になり、削除されました。 (ARNOLD-11204)
imager_denoiser_optix クランプがデフォルトで無効に
imager_denoiser_optixのクランプパラメータのデフォルトが無効に設定されています。 (ARNOLD-11187)
MaterialX v1.38 のサポート
一部のMaterialXドキュメントに影響を与える、見た目が大きく変わる変更点があります。ドキュメントにMaterialX nodeGraphへの接続が含まれていて、接続先のノードグラフの出力を明示的に指定していない場合、これまではNULLを返していたため、接続が適用されませんでした。このバージョンでは、このシナリオが存在する場合、ノードグラフへの最初の出力を返します。
複数のレンダリングセッション
今回のリリースによるAPIの更新により、古いAPIが非推奨として維持されており、暗黙的にデフォルトのユニバース/レンダーセッションを使用しています。デフォルトのユニバースやレンダーセッションを使用する場合は問題ありませんが、任意のユニバースやレンダーセッションで動作することが期待されるコードは、明示的なユニバースやレンダーセッションを渡す新しいAPIに合わせて更新する必要があります。
options.pin_threads
pin_threads が option ノードから削除されました。スレッドが固定されなくなりました。(ARNOLD-11073)
AiOutputIteratorGetNext
AiOutputIteratorGetNext は、const char** output_name を受け取っていましたが、より効率的な AtString* output_name を受け取るようになりました。(ARNOLD-11357)
API関数からソースコード情報を削除しました
AiMalloc_func()、AiFree_func()、AiRealloc_func()、AiArrayGet*Func()、AiArraySet*Func() では、ソースコード情報(ファイル名と行数)を取得していました。これらの関数は削除され、ソースコード情報を設定していた以前のマクロ(AiMalloc()、AiFree()、AiRealloc()、AiArrayGet*()、AiArraySet())は正しい関数になりました。マクロを使用していた方は、コードを修正する必要はありません。(ARNOLD-5785, ARNOLD-10754)
AiUniverseIsActiveの名前がAiArnoldIsActiveに変更されました
AiUniverseIsActive
API関数の名前が AiArnoldIsActive
に変更されました。(ARNOLD-11120)
Autodesk Network Licensing バージョン
Arnold7 が ARNOL_2022ライセンスに切り替わります。
- シングルユーザーサブスクリプションはArnold7で機能します。プラグインインストーラーは自動的に新しいバージョンを登録します。 プラグインを使用しない場合は、Arnoldをダウンロードした後、Arnold License Managerを開き、[ 登録 ]をクリックします。
- 既存のネットワークライセンスはArnold7では機能しません。Autodeskアカウントにログオンして、新しい
ARNOL_2022
ライセンスを生成します。
Arnold 7.0.0.0 の詳細なアップデート内容については、こちらよりご確認頂けます。