Arnold 7がリリースされました。
https://docs.arnoldrenderer.com/display/A5ARP/7.0.0.0
概要
Arnold 7.0.0はインテルのOpen Image Denoiseを追加した大規模な機能リリースで、全体的なノイズ除去品質の向上、GPUでの重要なスケーラビリティの改善、パフォーマンスとインタラクティブ性の向上が図られています。
また、同一プロセス内で複数のシーンをレンダリングする機能や、シェーダーが複数の出力をサポートするようになるなど、重要なAPIの変更も紹介します。
機能強化
Open Image Denoise imager
インテルのOpen Image Denoise (OIDN)は、CPU上で動作するAIで高速化されたデノイザーで、Arnoldに追加のデノイジングオプションとしてimager_denoiser_oidnイメージャーとして統合されています。
より高品質なAIデノイジング
OptiXおよびOIDNのデノイザーは、デノイザーに提供されるアルベド機能のAOVとして、新たに導入されたdenoise_albedo_noisy AOVを使用するようになりました。これにより、アルベドに鏡面反射や屈折が追加され、デノイザーの品質を向上させることができます。
以下は、古いアルベド AOV と新しいアルベド AOV (ARNOLD-10812) を使用して、未処理と Optix でのノイズ除去を比較したものです。
デノイズなし、Optix diffuse albedo 、Optix diffuse+specular albedo
LUTベースのトーンマッピング
imager_tonemapはOCIOv2でサポートされているすべてのフォーマット(cube, look, 3dl, clfなど)のLUTファイルを適用するためのLUTモードをサポートしています。
imager_tonemap.lut_filenameは、ロードするファイルを指定します。LUTの中には、非線形色空間を想定しているものがあることに注意してください。このため、imager_tonemap.lut_working_color_spaceで作業用の色空間を指定して、指定した空間に変換してからLUTを適用し、再び線形色空間またはレンダリング色空間に変換することができます。
OIDNおよびOptiXデノイザーでのボックスフィルタリングの自動選択
OptiX および OIDN のノイズ除去装置は、複数のピクセルにまたがる CPU レンダリングフィルタとの相性が良くありません。
Arnold on CPU は、どちらかのデノイザーが使用されている場合、既知の問題を持つフィルターを使用した出力にボックスフィルターを自動的に強制するようになりました 。
Imager_color_curves
輝度とカラーカーブを制御する新しいイメージャーが追加されました。全体の輝度応答を制御するメインカーブに加えて、R、G、B の各コンポーネントに個別のカーブをオーサリングできます。カーブの補間や作業用カラースペースも必要に応じて設定できます。
mager_tonemap.mix
imager_tonemapにmixパラメータが追加されました。0は入力をそのまま保存し、1は完全なノード効果を適用します。
ignore imagersオプション
グローバルオプション ignore_imagers が追加され、シーン内のイメージャーのポストプロセスを無効にすることができるようになりました。これはデバッグの際に便利で、-ii フラグを使ってキックでも有効にできます。。
複数のドライバで共有されるイメージャーのサポートを改善
デノイザーを含むすべてのイメージャーが、異なる AOV 入力を持つドライバで共有できるようになりました。
IPR におけるイメージャーのリフレッシュレートを改善
フルフレームイメージャーがレンダリング中に更新されるようになり、イメージ全体がレンダリングされる前にイメージャーチェーンの結果をプレビューできるようになりました。これは、場合によってはフルフレームが終了するまで結果を遅らせる必要があった以前の動作を置き換えるものです。
プログレッシブレンダリングにおけるフィルタのパフォーマンスが向上
プログレッシブモードでのレンダリングにおいて、Triangle、Sinc、Blackman-Harris、Catmull-Rom、Mitnet などのフィルタのパフォーマンスが改善されました。いくつかのケースでは、パフォーマンスが 48% 改善され、メモリ使用量が 20 倍改善されました 。
CPU での複数のパラレルレンダリングセッションのサポートを追加
どのアーノルドユニバースも、独自のレンダリングセッションを使用してレンダリングできるようになりました(ユニバースごとに1つのレンダリングセッションのみ)。それらのレンダリングセッションは、どのような順序でも、並行してでも実行できます。
シェーダーの複数出力に対応
Arnoldはシェーダーノードの複数の出力をサポートします。シェーダーの出力は.assファイル内の他のシェーダーノードの入力にリンクするか、リンク時にどの出力を希望するかをオプションで指定して、AiNodeLinkOutput()関数を介してプログラム的にリンクすることができます。出力が指定されていない場合は、ノードのデフォルトの出力パラメータが選択され、Arnoldの既存の動作が維持されます。
複数のOSLシェーダ出力を指定する場合は、標準的なOSL言語のルールが適用されます。3つのカラー出力を持つOSLシェーダの例は次のスニペットのようになり、各出力を別々に接続することができます。
可視ライトが透明になりました
可視ライトが透明になり、間接的に見えるライトの動作と一致するようになりました。これは間接的に見えるライトの動作と一致しています。
また、テクスチャのあるライトの黒い部分をマスクできるという利点もあります。これは、以前の正しくない可視光の動作を修正するための、見た目を損なうような変更です。
デフォルトでACEScgでレンダリング
ArnoldはデフォルトでOCIOのカラーマネージャーを使用するようになりました。このカラーマネージャーは、デフォルトの OCIO 設定ファイルを使用します。Arnold はデフォルトで ACEScg カラースペースでレンダリングします。
標準的なOCIO構成
Arnoldには標準的なOCIOコンフィギュレーションが搭載されており、レンダリングに使用される一般的なカラースペースであるACEScgやscene-linear Rec.709-sRGB、標準ダイナミックレンジビデオ用のACES 1.0 SDR-video ACES出力トランスフォームなどが公開されています。
マルチパート EXR
EXR ドライバは、マルチパート EXR ファイルで AOV を個別のイメージ (パート) としてレンダリングできるようになりました (これに対して、マージされた AOV は、シングルパート EXR で AOV をレイヤーとしてレンダリングします)。
マルチパートは、スキャンラインまたはタイル化されたEXRで動作し、driver_exr.multipartブールパラメータで有効になります。
AOV を複数のフォーマットに書き込み
1つのAOVを複数の異なるフォーマットで出力できるようになりました。例えば、以下のような出力文字列で正しい結果が出力されるようになりました。
outputs 2 1 STRING "RGBA FLOAT filter testrender" "RGBA RGB filter testrender2"
OSL の UDIMs
OSLはUDIMなどのテクスチャタグを解決するために、Arnoldのイメージノードと同じコードを使用するようになりました。これにより、OSL のテクスチャ検索が速くなり、OSL から使用できるテクスチャタグの種類が増えます。
SSS setnames with randomwalk
異なるオブジェクト間でサブサーフェス効果を拡散させる sss_setname 機能が、CPU の randomwalk モードでサポートされるようになりました。
既存の TX を使う
options.texture_use_existing_txがデフォルトのtrueに設定されている場合、Arnoldはテクスチャーの.txバージョンが利用可能な場合、その使用を試みます。.txファイルは、要求されたソーステクスチャと同じディレクトリにあり、ファイル拡張子を除いて同じ名前である必要があります。
例えば、「foo/bar/floor.png」が要求され、「foo/bar/floor.tx」が存在する場合、「floor.tx」が使用されます。Arnold は、.tx ファイルが使用された場合、要求された色空間変換を無視します。.tx には色空間変換が焼き付けられていると想定されるからです。
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%減少します。
GPU ボリュームの VRAM 使用量の削減
6.2.1ではNVIDIAのNanoVDBシステムを使用してOpenVDBボリュームをGPU上でレンダリングすることで、OpenVDBボリュームに必要なGPUメモリを大幅に削減しました。
7.0ではNanoVDBボリュームの圧縮がさらに改善され、典型的なボリュームシーンでは、GPUメモリが約50~60%削減されました。GPUボリュームが消費するVRAMの量は、同等のCPUボリュームが消費するRAMの量よりも少なくなりました(注:赤い線は別のCPUレンダーのRAM使用量を示しています)。
マットに対応
GPU インテグレータに matte のサポートが追加されました。これにより、マットクロージャー、マットシェーダー、マットシェイプフラグのすべてがサポートされました。
USDの機能強化
- USD 21.08: コアSDKに含まれるプロシージャルが、USD 21.08を使って構築されるようになりました
- UsdImaging アダプタ。Arnold-USDには、Arnold特有のスキーマ用のUsdImagingアダプターのセットが含まれており、HydraでプロシージャルやArnoldシェイプを直接使用することができます。
- ディープレンダリング。レンダリングデリゲートは、DelegateRenderProductsを介して、ディープAOVのレンダリングをサポートするようになりました。
- 複数のフレームを 1 つのファイルにまとめました。USDライターが1つのUSDファイルに複数のフレームを追加できるようになりました。
- Hydra シーンデリゲート。Arnold-USD に Hydra 用の実験的なシーンデレゲートが追加されました。
- Husk 使用時にプログレッシブが無効になりました。プログレッシブレンダリングが husk 経由でのレンダリング時に無効になりました。
- プロシージャルパスマッピング。プロシージャルは USD ファイルの読み込み時に Arnold Path Mapping をサポートするようになりました。
- カスタム PrimID Hydra バッファ。レンダリングデリゲートは、Hydra ビューポートでの選択をサポートするために、専用の primId AOV を使用するようになりました。これにより、レンダリング時のプロシージャルのサポートが改善され、ビルトインの id パラメータはシェイプでは変更されません。
- レンダリングデリゲートでのダブルサイド。レンダーデリゲートは USD プリミティブのビルトイン doubleSided パラメータをサポートし、アーノルド固有のプリムバーによるオーバーライドを正しくサポートするようになりました。
- Velocity and Acceleration を使った Motion Blur。レンダリングデリゲートは、速度または加速度のプリムバーが存在し、位置のための複数のサンプルがない場合、ポイントの位置を外挿するようになりました。
- ライトリンキング プロシージャルがライトリンクをサポートするようになりました。
- 高速カメラアップデート。レンダリングデリゲートがカメラのみのアップデートをより効率的に処理するようになり、ピクセルまでのファーストタイムが改善されました。
- 標準的なサーフェイスのフォールバック。プリムにマテリアルが割り当てられていない場合、レンダーデリゲートは標準サーフェイスをフォールバックとして使用するようになりました。
- String array parameters: 文字列配列のプリムバーは組み込みパラメータに変換されるようになりました。
- 複数のハイドラセッション。レンダリングデリゲートは複数のレンダリングセッション API を使用するようになりました。