mental ray リリース ノート
バージョン 3.7.1.25
2008 年 7 月 18 日
Copyright © 1986-2008 mental images GmbH, Berlin
概要
これらのリリース ノートには、バージョン 3.6.0.3 以降の mental ray の変更点がまとめられています。
バージョンごとの変更
注: mental ray のバージョン 3.7 以降は、mental ray バージョン 3.6 とバイナリ非互換です。
- 以前のバージョン向けにコンパイルされたシェーダをこのバージョンで使用するには、再コンパイルが必要です。
- バージョン 3.7 は、ネットワーク レンダリングでバージョン 3.6/3.6+(3.6.50 以降)およびそれ以前のバージョンと同時使用することはできません。
バージョン 3.7.1.25 での変更点
バグ修正
- BSP2 アクセラレーションで、多数の三角形を含む多重インスタンス オブジェクトのあるシーンで使用された不正な三角形のインデックスが原因となって発生する可能性がある、アーティファクトまたはクラッシュが修正されました。
- BSP2 アクセラレーションで、リビジョン 3.7.1.23 のリグレッションが修正されました。特定のシーンで、初期化されていない変数によりクラッシュやフリーズが発生する可能性がありました。
- ディスプレイスメント付きの ccmesh オブジェクトで、使用するサブディビジョン レベルの推定に頂点ディスプレイスメントが適用されるようになりました。 これにより、カメラ プレーンに近いオブジェクト領域で発生する可能性があったシェーディング アーティファクトが解決されました。
- IES または Eulumdat ライトプロファイルを使用するシーンにあったファイル記述子リークが修正されました。 多数のライトプロファイルまたは変化するライトプロファイルを持つシーンでは、これが原因でファイル記述子が足りなくなり、重大な問題が発生する可能性がありました。
- インポートン マップでのコースティクス フォトン マップの意図しない従属関係が取り除かれました。 これによりコースティクスのビジュアル品質が向上します。
- オブジェクト フェースの間違ったエコーが修正されました。
- プラットフォーム固有: Windows(32 および 64 ビット)で、
mi_query
モード miQ_TEXTURE_DIM
の vararg 引数が正しくカーネルに渡されておらず、64 ビットプラットフォームでのクラッシュの原因となっていました。 この問題が解決されました。
シェーダの変更
- カー ペイント フェノメナ
mi_car_paint_phen_x
の複数出力バージョンが追加されました。
バージョン 3.7.1.24 での変更点
機能強化
- BSP2 アクセラレーションで、モーション ブラー シーンの BSP2 のコンストラクションで多量のメモリ割り当てを低減する機能が追加されました。 この変更は、バージョン 3.7.1.23 で静止のケースに対して行われた変更と同様です。
- 文字列オプション
"finalgather normal tolerance"
が追加されました。 このオプションは、ファイナルギャザー ポイント法線が、補間で考慮されるファイナルギャザー ポイントのサーフェス法線から外れる最大角度(度数)を指定します。 この文字列オプションが存在しない場合、もしくは有効範囲である 0 ~ 90(0 と 90 は除く)度を超えた場合、後方互換性を維持するために組み込みのデフォルトである 25.842 度が使用されます。
- imf_disp ツールに、OpenEXR ファイルを表示するための
-layer <name>
コマンド ライン オプションが追加されました。 複数のフレームバッファを含む OpenEXR イメージをレンダリングする場合、mental ray はフレームバッファ イメージを <framebuffer name>.R
、<framebuffer name>.G
、<framebuffer name>.B
、<framebuffer name>.R
というチャンネルに格納します。 これらのフレームバッファ イメージの 1 つを表示するためには、接尾辞なしの <framebuffer name>
を -layer
オプションで使用します。
バグ修正
- BSP2 アクセラレーションで、一部のメモリ ブロックが mental ray メモリ管理の下に置かれていませんでした。 この修正により、メモリ使用の統計情報が向上し、潜在的なセグメント化の失敗によるクラッシュが解決されました。
mi_query
モードの miQ_FUNC_IS_ROOT
が修正されました。 補助的な(反射、屈折)レイの戻り値が間違っていたため、建築マテリアル シェーダなどの一部のシェーダでクラッシュが発生する可能性がありました。
- OpenEXR ヘッダで、タイプが
a
、a_h
、a_fp
、m
、n
、および z
のイメージを読み込むときに発生する可能性があったクラッシュが解決されました。
- 配列宣言の後に文字どおりに宣言されたパラメータのデフォルトのシェーダ パラメータ値のエコーが修正されました。
シェーダの変更
- ベース シェーダ
mib_illum_ward_deriv
が拡張され、すべてのジオメトリ タイプで導関数をサポートするようになりました。NURBSおよびポリゴン サーフェスに適用されている場合には「バンプ」(テクスチャデリバティブ)、サブディビジョン サーフェスと NURBS ではサーフェス導関数を使用します。 get_derivs()
関数のソース コードは、シェーダ開発者に推奨される実例です。
バージョン 3.7.1.23 での変更点
機能強化
- BSP2 アクセラレーションで、BSP2 のコンストラクション中の大量のメモリ割り当てを低減する機能が追加されました。 大規模なシーンでは、これにより mental ray によってジオメトリのメモリが不足するのを防ぐことができます。ジオメトリのメモリが足りなくなると、ボクセル内の三角形の数を推測するカーネルヒューリスティックが桁違いに間違った結果になります。
バグ修正
- アセンブリとヘアのあるシーンのレンダリングで、発生する可能性があったヘアが欠落するアーティファクトが修正されました。
- カメラからのインポートン放出で、miCamera::volume シェーダが呼び出されなくなりました。 インポートンの処理はカメラにアタッチされたボリューム シェーダではなく、フォトン ボリューム シェーダに移る必要があります。 これにより、特に、空の放射パーティクルマップの問題が修正されました。
"vta"
、"vts"
、"tag"
、または "bit"
タイプのイメージを OpenEXR ファイルに書き込むときに mental ray で発生するクラッシュが修正されました。
mi_api_get_assembly_root()
関数を正しくエクスポートするようになりました。
バージョン 3.7.1.22 での変更点
バグ修正
Access_bsdf
がシェーダで使用されている場合に発生する、リンク エラーが修正されました。
- BSP2 アクセラレーションで、多重インスタンスの移動オブジェクトで発生する可能性があった、モーションアーティファクトが修正されました。
- トリミングカーブの数が非常に多い(50,000)サーフェスの解析で発生するメモリ不足が修正されました。
- 範囲外の配列の読み込みを原因とする、オブジェクト スプリット コードでまれに発生するクラッシュが修正されました。
バージョン 3.7.1.21 での変更点
機能強化
- パーティクル数が多い放射パーティクル マップの最適化に、進捗状況のパーセンテージを示すメッセージが追加されました。
バージョン 3.7.1.20 での変更点
バグ修正
- 組み込みの bsdf で、光沢のある反射で環境ライティングの成分が欠落している問題が修正されました。
シェーダの変更
- 建築マテリアル シェーダで、アンビエント オクルージョン計算でまれに発生する可能性があるフリーズが修正されました。
バージョン 3.7.1.19 での変更点
機能強化
- 建築用 bsdf の互換性バージョンが追加されました。 機能は、
builtin_bsdf_architectural
と同じですが、宣言は建築マテリアルの宣言の後に続きます。
declare shader color "builtin_bsdf_architectural_comp" (
color "diffuse" default 0.5 0.5 0.5 1,
scalar "diffuse_weight" default 1,
scalar "diffuse_roughness",
color "refl_color" default 1 1 1 1,
scalar "reflectivity" default 0.6,
scalar "refl_gloss" default 1,
boolean "refl_is_metal" default on,
color "refr_color" default 1 1 1 1,
scalar "transparency",
scalar "refr_gloss" default 1,
color "refr_trans_color" default 0.7 0.6 0.5 1,
scalar "refr_trans_weight" default 0.5,
scalar "anisotropy" default 1,
scalar "anisotropy_rotation",
integer "mode",
array light "lights",
scalar "refr_ior",
boolean "brdf_fresnel",
scalar "brdf_0_degree_refl",
boolean "refr_translucency",
integer "anisotropy_channel",
integer "refl_gloss_samples",
boolean "refl_interpolate",
boolean "refl_hl_only",
integer "refr_gloss_samples",
boolean "refr_interpolate",
scalar "brdf_90_degree_refl",
scalar "brdf_curve",
boolean "brdf_conserve_energy",
integer "intr_grid_density",
integer "intr_refl_samples",
boolean "intr_refl_ddist_on",
scalar "intr_refl_ddist",
integer "intr_refr_samples",
boolean "single_env_sample",
boolean "refl_falloff_on",
scalar "refl_falloff_dist",
boolean "refl_falloff_color_on",
color "refl_falloff_color",
integer "refl_depth",
scalar "refl_cutoff",
boolean "refr_falloff_on",
scalar "refr_falloff_dist",
boolean "refr_falloff_color_on",
color "refr_falloff_color",
integer "refr_depth",
scalar "refr_cutoff",
scalar "indirect_multiplier",
scalar "fg_quality",
scalar "fg_quality_w",
boolean "ao_on",
integer "ao_samples",
scalar "ao_distance",
color "ao_dark",
color "ao_ambient",
boolean "ao_do_details",
boolean "thin_walled",
boolean "no_visible_area_hl",
boolean "skip_inside_refl",
boolean "do_refractive_caustics",
boolean "backface_cull",
boolean "propagate_alpha",
scalar "hl_vs_refl_balance",
scalar "cutout_opacity",
color "additional_color",
shader "bump",
boolean "no_diffuse_bump")
end declare
この BSDF は、建築マテリアルを使用する既存シーンおよびトランスレータへの変更を最小限にする目的で使用できます。
バグ修正
- ハルオブジェクトと組み合わせて使用される、輪郭レンダリングのアーティファクトが修正されました。
- 組み込みの BSDF シェーダをエコーしません。
バージョン 3.7.1.18 での変更点
機能強化
- 頂点法線が指定されていない primlist オブジェクトのディスプレイスメントのサポートが追加されました。
- 以下の宣言を持つ
builtin_bsdf_architectural
および builtin_bsdf_mirror
BSDF が有効になりました。
declare shader color "builtin_bsdf_architectural" (
color "diffuse_refl" default 0 0 0 1,
scalar "diffuse_refl_scalar" default 1,
scalar "diffuse_dev",
color "specular_refl" default 0 0 0 1,
scalar "specular_refl_scalar" default 1,
scalar "refl_gloss" default 1,
boolean "metal_material" default on,
color "specular_trans" default 0 0 0 1,
scalar "specular_trans_scalar" default 1,
scalar "trans_gloss" default 1,
color "diffuse_trans" default 0 0 0 1,
scalar "diffuse_trans_scalar" default 1,
scalar "anisotropy",
scalar "anisotropy_rotation",
integer "mode",
array light "lights")
end declare
declare shader color "builtin_bsdf_mirror" (
color "reflection" default 0 0 0 1)
end declare
builtin_bsdf_architectural
は、建築マテリアルを簡略化したもので、マテリアルプロパティに関連するパラメータが含まれます。 builtin_bsdf_mirror
は、単純なスペキュラ反射で、反射カラーに reflection
パラメータを掛けます。
mi_ambient_occlusion
関数の動作が少し変更されました。 この関数に渡される miAmboccl_options
引数構造体のキャッシュ ポイントの数が 0(ゼロ)の場合、キャッシュは無視されてアンビエント オクルージョン値が計算されます。 負のキャッシュ ポイント値(デフォルト: -1)は、グローバル "ambient occlusion cache points"
文字列オプションからキャッシュ ポイント数を受け取るのに引き続き使用できます。
バグ修正
- BSP2 アクセラレーションで、メモリ割り当てが mental ray メモリ管理をバイパスする mental ray 3.6+ のリグレッションが修正されました。 これにより、メモリ使用に関する統計情報の不正、およびメモリに完全に収まらない大きいシーンでのクラッシュが修正されました。
- BSP2 アクセラレーションで、ツリーコンストラクションに使用されていたメモリをコンストラクションの終了後すぐに解放することにより、実質的なメモリ消費が低減されました。
- モーション ブラーで使用されていた BSP2 アクセラレーションで、数値精度の問題が原因で発生する可能性があった、欠落ジオメトリのアーティファクトが修正されました。
- ヘアごとのテクスチャを持つヘア オブジェクトで、
mi_query
モード miQ_NUM_TEXTURES
が、正しい値を返し不要なテッセレーションを回避するよう修正されました。
- モーション ブラーで使用されるラスタライザで、ボリュームシェーディングと環境シェーディングの
miState::time
が正しく初期化されるようになりました。
- ヘアがアセンブリと組み合わせて使用されている場合に発生する可能性があったクラッシュが修正されました。
- ラスタライザを使用したヘアのレンダリングで発生する可能性があったクラッシュが修正されました。
- 起動時にメモリ上限が非常に低く設定されている場合に発生する可能性があったクラッシュとレイ ライブラリのシャットダウンが修正されました。
バージョン 3.7.1.17 での変更点
バグ修正
- 放射パーティクルを BSP2 アクセラレーションと組み合わせて使用した場合に発生する可能性があったクラッシュが修正されました。
- HDR などのように、カラーチャンネルあたり 8 ビット/ピクセル以上を使用するイメージの逐語的テクスチャ(
-echo textures
コマンド ライン オプション)のエコーが修正されました。
- キャッシュされたフレームバッファと組み合わせて使用される、フォトン マップ診断モード レンダリングでのクラッシュが修正されました。
バージョン 3.7.1.14 での変更点
シェーダの変更
mip_gamma_gain
シェーダで、負の値のガンマ補正が追加されました。 これにより特に、発生する可能性のある NaN 値から保護されます。
- サブサーフェス スキャタリング シェーダ ライブラリで発生する可能性がある最大バージョン チェック警告が修正されました。
バージョン 3.7.1.13 での変更点
互換性に影響する変更
- マップコンテナで、より短く分かりやすいクラスの名前が使用されます。
- メモリ割り当て関数が受け取るサイズ引数が符号なしになりました。
バグ修正
- raylib の統合バージョンを使用するマルチホスト レンダリングで、IPv6 アドレスの
mi_msg_remove_host()
関数呼び出しによるスレーブ ホストの削除が修正されました。
バージョン 3.7.1.12 での変更点
機能強化
- 二次的なファイナルギャザー拡散バウンスで、レイがファイナルギャザー レイとしてトレースされるようになりました。これにより、前バージョンの反射/屈折レイとフラグの代わりに、オブジェクトとインスタンスのファイナルギャザー フラグが考慮されるようになりました。
バグ修正
- ディスプレイスメント プリサンプリングと大きな maxdisplace 値が指定されたポリゴン オブジェクトで発生する、不要な多数のサブオブジェクトが修正されました。 特に、多数のサブオブジェクトはライトマップ レンダリングが低速化する原因となっていました。
- モーション ブラーとともに使用される BSP2 アクセラレーションで、自己交差の精度の問題によって発生する可能性があったアーティファクトが修正されました。
- Catmull-Clark オブジェクトで、近似の最小/最大サブディビジョン レベルが無視されていました。この問題が修正されました。
- Catmull-Clark オブジェクトで、サブディビジョン レベルの推測に縮小が考慮されます。 この修正により、過剰なテッセレーションが回避されます。
- インスタンスのオーバーライド近似リストのエコーにおける構文エラーが修正されました。
シェーダの変更
- 複数出力
mi_metallic_paint_shader_x
が、単一のシェーダまたはフェノメナ ルートとして使用された場合に機能するようになりました。
バージョン 3.7.1.11 での変更点
機能強化
バグ修正
- Iff イメージ ファイル フォーマットで、アルファ("a")ファイルからの書き込みが有効になりました。
- BSP2 アクセラレーションがアセンブリと組み合わせて使用された場合に、フレーム末尾で発生する重大なメモリ リークが修正されました。 一部のアクセラレーション構造は、削除されていません。
- ヘア レンダリングが有効になっている場合に発生するメモリ リークが修正されました。
- raylib インテグレーション: アプリケーション コールバックの呼び出しを妨げていた
mi_par_aborted()
チェックの誤字が修正されました。
- オプションの一貫性: レイ トレーシングがオフの場合、放射パーティクルは無効になります。
- アセンブリのあるシーンのフォトン放出で発生する可能性があったクラッシュが修正されました。
- ラスタライザで、環境シェーダがゼロ以外の
miState::pri
で呼び出されていました。この問題が修正されました。
- モーション ブラーが使用されているシーンでのキャッシングが有効になっているアンビエント オクルージョンで、シャッターオープン時にすべてのアンビエント オクルージョン値が計算されるために発生していたビジュアル アーティファクトが修正されました。
- ビュー依存の近似を持つヘア オブジェクトで、ビュー依存フラグが正しく設定されました。
- Catmull-Clark メッシュで、導関数を持つオブジェクトで発生する可能性があったクラッシュが修正されました。
- プラットフォーム固有: Windowsプラットフォームで、イメージ処理に関連する IO エラー レポートが修正されました。
シェーダの変更
- マルチ出力バージョンの高速サブサーフェス スキャタリング シェーダ
misss_fast_shader_x
が、マルチ出力の建築マテリアル シェーダと同じ規則に従うよう変更されました。 ライトのスペキュラおよび拡散プロパティは、建築マテリアル シェーダと同じ方法で機能するようになりました。
- 高速サブサーフェス スキャタリング シェーダで、光沢のある反射の重要度主導型のサンプリングが追加されました。これにより、特定のシーンでパフォーマンスが大幅に向上します。
- 高速サブサーフェス スキャタリング シェーダで、ライトマップ解像度が 1 ピクセル以下の非常に小さい分散半径を持つオブジェクトで発生する可能性があったアーティファクト エッジが修正されました。
- メタリック ペイント シェーダと同じ、新しいマルチ出力の
mi_metallic_paint_x
シェーダが追加されました。この新しいシェーダでは、建築マテリアルの仕様に従った複数出力が可能です。
- 建築マテリアル シェーダが、
mi_ward_anisglossy
関数の引数が不一致であることから発生していた mental ray のデバッグ バージョンでのアサーションを回避するよう変更されました。 この変更により、パフォーマンスも少し向上します。
- プロダクション シェーダ
mip_mirrorball
と建築ポータル ライト シェーダ mia_portal_light
で、回復可能なシーンの問題の共通規則に従って、エラーが警告に変更されました。
- 建築ポータル ライト
mia_portal_light
シェーダは、方向が指定されていないポイントスタイルのエリア ライトと互換になりました。
バージョン 3.7.1.10 での変更点
バグ修正
- 複数のモーションステップがあり、モーションベクトルが指定されていない Catmull-Clark メッシュで生じる、不正なモーションバウンディングボックスが修正されました。
バージョン 3.7.1.9 での変更点
旧バージョンとの互換性に影響する変更
バージョン 3.7.1.8 での変更点
機能強化
- シェーダ インタフェースで、文字列オプション ルックアップ(
mi::shader::Options::get
)とフレームバッファ(mi::shader::Access_fb
/ Edit_fb
)のアクセスのパフォーマンスが大幅に向上しました。 文字列オプションへのアクセスには、引き続きハッシュテーブル ルックアップが含まれます。このため、パフォーマンスの理由から、これらへのアクセスは init シェーダで一度に行うことが推奨されます。
Map
コンテナで、内部ルックアップ アクセラレーション構造の不要な再構築が回避されます。
バグ修正
- アセンブリのあるシーンで、ヘア レンダリングが有効になっているアセンブリの不要なロードが回避されます。
{_MI_REG_SHARED_DISPLACEMENT}
レジストリで有効化される、共有ディスプレイスメント モードにおけるアーティファクトが修正されました。
- 上記の共有ディスプレイスメント トリガなどを含む、カーネル修正を指定するレジストリのエコーが修正されました。
- ポリゴンと trilist のディスプレイスメント近似のエコーが修正されました。
- 文字列オプション インタフェースでのメモリ リークが修正されました。
- 環境変数の .mi パーサの
$ifeq
プリプロセッサ命令が修正されました。
- プラットフォーム固有: Windows で、大規模なフォトン マップまたはファイナルギャザー マップのネットワーク ドライブへの保存で発生する可能性がある失敗が修正されました。
旧バージョンとの互換性に影響する変更
mi::shader::Interface
のバージョンが 3 に上げられました。mental ray 3.7 アルファ バージョン用にコンパイルされたシェーダは再コンパイルする必要があります。 mental ray 3.6/3.6+ 向けにコンパイルされたシェーダは、mi::shader::Interface
バージョン 2 を使用することで、mental ray 3.7 との制限付きのバイナリ互換性を維持しています。
- シェーダ インタフェース
Map
で、いくつかの const 修飾子が修正されました。
- miObject_type 列挙は、mental ray 3.6+(特にプロダクション シェーダ
mip_binaryproxy
)とのバイナリ互換性を含めるため、mental ray 3.6+ と同じ値を保持するよう変更されました。。
シェーダの変更
- 重要でないライティングを複数回呼び出さないようにすることで、ポータル ライト シェーダのパフォーマンスを向上しました。
- プロダクション シェーダ
mip_binaryproxy
が mental ray 3.7 と互換になりました。
mia_roundcorner
シェーダで、バンプ パラメータにアタッチされたシェーダが、複数の出力からなる構造体を返したときに発生する可能性があったクラッシュが修正されました。
- 建築環境シェーダ
mia_envblur
で、パラメータ環境が設定されておらず(カメラ/マテリアル環境シェーダの使用を意味します)、共有自体がこのようなシェーダとして設定されているエラー状態でのシェーダの動作が改良されました。この状態は、再帰的なシェーダ呼び出しの原因となっていました。
- 建築マテリアル シェーダで、シェーダのアンビエント オクルージョン機能がシャドウを投影しないオブジェクトを無視するよう変更されました。
バージョン 3.7.1.7 での変更点
旧バージョンとの互換性に影響する変更
sizeof
(enum)で生じる可能性がある非互換を避けるため、BSDF の Type
が miUint
に型定義されました。
Map
コンテナで、miMatrix
を使用する get
および set
メソッドのシグネチャが調整されました。 これは、miMatrix
が float[16]
に型定義されており、コンパイラが miMatrix への参照と関数呼び出しのスカラーのポインタを見分けることができないために必要な措置です。
機能強化
- mental ray バージョン 2 以前で使用されている、廃止予定のバージョン 1 ファイル フォーマットが解析された場合の警告が追加されました。
- 壊れたジオメト リデータが解析される場合の、ジオメトリ テッセレーションの堅牢性が向上しました。
バグ修正
- マルチホスト レンダリングで、BSP2 アクセラレーションが使用されている場合のシャットダウンで発生する可能性があったクラッシュが修正されました。
- プラットフォーム固有: Windows で、DNS サーバが IPv6 型のアドレス ルックアップ(
"::1"
)を IPv4 アドレスに解決した場合に発生する可能性があった、ライブラリが初期化されないという問題が修正されました。
バージョン 3.7.1.6 での変更点
放射パーティクルの使用方法に関するチュートリアルが追加されました。
新機能
- 新しい object フラグ "
triangle estimate <int>
" が .mi 構文に追加され、新しいメンバーフィールド miObject::tri_est
が追加されました。 指定された場合、このフィールドは、トランスレータまたはエクスポータによって設定され、特定のオブジェクトで予測される三角形のおよその数を提供します。 多くの場合 CAD アプリケーションは正確な数を把握していますが、おおよその規模だけしか分からない場合にも、このフィールドを提供することが推奨されます。 将来のバージョンでは、mental ray はこれをパフォーマンスおよびメモリ使用の最適化のヒントとして使用する予定です。
- mental ray 統合およびジオメトリ シェーダ API に、以下の新しい関数
mi_api_rename(char *target, char *source)
および以下の対応する .mi 構文が追加されました。
rename "target" "source"
この関数は、既存のシーン エンティティを再作成することなく名前変更する目的で使用できます。これは特にユーザとの対話に従うアプリケーション インタフェースで使用されます。
この関数には以下の制限事項があります。
- スコープ全体での名前変更は、設計上、サポートされていません。
- インクリメンタル エコーの互換性は制限があります。mental ray カーネルは名前変更のリストを保持しません。 名前変更が終了し、シーン変更がエコーされた場合、以前にエコーされたシーンの部分に古い名前が含まれる可能性があるため、アプリケーションは名前変更コマンドのセットを出力する必要があります。
- API Notify コールバックは、この関数では呼び出されません。
- PHCR GUI の名前変更はサポートされていません。
- シェーダ宣言の名前変更は可能ですが、対応する関数がシェーダ宣言と同じ名前を使用してリンクされているため推奨されません。
機能強化
- ディスプレイスメント テッセレーションで、ゼロ(に近い)領域の三角形を削除するときの警告がサブオジェクトごとに 1 回だけ出力されるようになり、削除される三角形の数が示されるようになりました。
バグ修正
- Windows プラットフォームのみ:
miSCENE_NBOX
タイプの mi_scene_recreate
を呼び出すシェーダの壊れていた shader.lib
プロキシが修正されました。
- スタンドアローンについて、不正なプロセス終了値 1 が修正されました。
バージョン 3.7.1.5 での変更点
このバージョンのマニュアルが改良されました。
新機能
構文およびアプリケーション API が、バージョン 3.7.1.2 で導入された Map コンテナに追加されました。
構文はユーザ データ要素と似ています。 マップのレイアウトは以下を使用して宣言できます。
declare map "name"
[ dim int , ]
paremeter1,
...
paremeterN
end declare
各パラメータは以下のいずれかです。
integer "parname"
scalar "parname"
vector "parname"
color "parname"
transform "parname"
array int integer "parname"
array int scalar "parname"
使用可能なパラメータタイプには 32 ビット integer、単精度 float、float 3d vector、4 コンポーネント float カラー、4x4 float 行列に加えて、integer および float の固定サイズ配列があります。
宣言レイアウトで、マップコンテンツは以下のように指定されます。
map "mapname" "layout"
(
["mapfile1", ... "mapfileN"] |
{ <rec1field1>, ... , <rec1fieldM> },
....,
{ <recKfield1>, ... , <recKfieldM> }
)
end map
つまり、バイナリ マップ データを含むファイル名のリストが指定されるか、またはマップの各パーティクルのフィールドのリストが指定されます。
各 recSfieldT エントリは、スペースで区切られた float または integer 値の正しい数値で構成される必要があります。 各行の 1 番目のレコードは、N 次元マップのパーティクルの位置に対応する N float です。
Map タイプが、有効なシェーダ パラメータタイプのリストに追加されました。以下の通常の規則に従います。 Map は、シェーダの出力にはなりません。
同等の API 機能が mi_api_map_*
関数ファミリで提供されています。
追加のドキュメントとチュートリアルが次のリリースで追加される予定です。
機能強化
- バージョン 3.7.1.4 で導入された BSDF で、BSDF コンポーネント タイプが bitmask に変換されました。
バグ修正
- DDS イメージ ファイル フォーマットで、mipmap ピラミッドを持つ正方形でないイメージがロードされませんでした。 この問題が解決されました。
- 空のフォトン マップがファイルからロードされ、
finalgather fastlookup
オプションが有効になっていた場合に発生するクラッシュが修正されました。
バージョン 3.7.1.4 での変更点
新機能
- mental ray カーネルに Bidirectional Scattering Distribution Function(BSDF または非伝達マテリアルの BRDF)サポートが追加されました。
現在のバージョンでは、mental rayは Lambert、Phong、および Ashikhmin BRDF をサポートしており、これらはカーネルに組み込まれています。 これらの BSDF を実装する組み込みシェーダは、mental ray API に以下のように事前登録されています。
declare shader color "builtin_bsdf_phong" (
color "diffuse",
color "glossy",
scalar "exponent",
array light "lights",
integer "mode" )
version 1
end declare
declare shader color "builtin_bsdf_lambert" (
color "diffuse",
array light "lights",
integer "mode" )
version 1
end declare
declare shader color "builtin_bsdf_ashikhmin" (
color "diffuse",
color "glossy",
scalar "exp_u",
scalar "exp_v",
array light "lights",
integer "mode" )
version 1
end declare
さらに標準の BSDF が続きます。
特定のパラメータを持つ BSDF シェーダのインスタンスを通常の構文を使用して指定できます。 BSDF シェーダの入力パラメータは、他のシェーダの結果として指定でき、通常のシェーディング ツリーとフェノメナの使用が可能になります。 miMaterial
構造は bsdf
スロットで拡張されており、これにより、上に挙げた BSDF シェーダのいずれかのインスタンスを指定できます。 .mi 構文は、bsdf
キーワードで拡張され、マテリアルの BSDF シェーダの指定が可能になりました。
マテリアル シェーダは、mi::shader::Access_bsdf
クラスを使用して現在のシェーディング状態にアタッチされている BSDF にアクセスできます。 BSDF との対話に使用する API は、新しい shader_bsdf.h
ヘッダファイルで宣言されます。 これは、マニュアルの doxygen ドキュメントで説明されています。
BSDF は、最大で 6 個のコンポーネントに分割できます(それぞれ拡散、光沢、スペキュラ コンポーネントを持つ反射と屈折)。 eval
関数は、受信および発信命令のペアのすべての BSDF コンポーネント、つまりそのサブセットを評価します。 Bsdf
インタフェースは、さらに sample
関数を提供しています。この関数では、指定された入力命令について出力命令の重要度サンプリングが可能です。 加えて、この関数は、サンプリングされたコンポーネントとサンプルの重みに関する情報を提供します。 後者は、吸収のロシアン ルーレットと簡単に組み合わせることができ、たとえばフォトン シェーダの書き込みなどに使用できます。
BSDF シェーダは、マテリアル シェーダとして miMaterial
にアタッチできます。 この場合、mental ray が BSDF に基づいてマテリアル シェーダのシミュレーションを処理します。
BSDF シェーダがある場合、フォトン シェーダは省略できます。 BSDF シェーダを持ち、フォトン シェーダが指定されていないマテリアルの場合、mental ray は自動的に BSDF シェーダを使用し、その sample
関数を使用してフォトン シェーダの動作をシミュレートします。 将来のバージョンでは、この BSDF へのフォールバックが、その他の間接イルミネーション テクニックでも有効になる予定です。
バグ修正
- レジストリ変数を使用する .mi パーサの
$ifeq
プリプロセッサ命令が修正されました。 未定義のレジストリへの単一参照からなる文字列に適用される mi_string_substitute
関数が、空の文字列の代わりに変更のない文字列を返していました。
バージョン 3.7.1.3 での変更点
機能強化
- mental ray スタンドアローン実行ファイルの SPM 保護バージョンで、ブーリアン文字列オプション
-maxlics
が追加されました。 このオプションは、同じマシンで複数の mental ray 実行ファイルを実行するレンダーファームなどで使用できます。 オンに設定されている場合、各実行ファイルでいくつのスレッドが実行されているかにかかわらず、特定のマシンに適用されるライセンスの最大数が割り当てられ、すべての mental ray 実行ファイル間で共有されます。
- 交差コードによって初期化される
miState::dot_nd
とライト ループによって返される dot_nl
パラメータが、確実に [-1, 1] の範囲となります。 精度の問題により、わずかに逸脱することがありました。
- mental ray スタンドアローン実行ファイルで、コマンドラインで指定された(一部の) .mi ファイルが見つからない場合の終了コードが 1 に変更されました。 複数のファイルが指定されている場合、最初のファイル欠落の後、レンダリングは停止します。
- mental ray 3.5 で使用されていたレンダリング開始時のシーン範囲情報メッセージが復元されました。
バグ修正
- デバッグ ビルドのみ: シャドウマップのレンダリングでの誤ったアサートが修正されました。
- ライトマップのレンダリングで、不要な大きいメモリ ブロックの割り当てが行われなくなりました。 これにより、認証の数が多いオブジェクトでメモリ消費量が大幅に低減されます。
- 前のバージョンで導入された Catmull-Clark メッシュの適応テッセレーションにあった、数個のバグが修正されました。
- ファイナルギャザー自動モードで、法線方向が大きく異なるファイナルギャザー ポイントを含むオブジェクト(両面またはオブジェクトコーナーで間接光が計算される薄いオブジェクトなど)で発生する可能性があった暗いアーティファクトが修正されました。
旧バージョンとの互換性に影響する変更
mi_shader_if.h
ヘッダファイルのコンテンツに、mi::shader::Interface
クラスの機能に従って、いくつかの部分的なヘッダファイルが含まれるようになりました。 シェーダ開発者は、引き続き mi_shader_if.h
ファイルをシェーダの C++ ファイルにインクルードするよう求められます。
シェーダの変更
- 建築環境シェーダ
mia_envblur
で、自身をポイントする "environment"
引数の不正な使用の検出が追加されました。また、自己参照を発生させる、mia_envblur
シェーダがグローバル環境マップの一部となっていて "environment"
パラメータが指定されていない同様のケースの検出が追加されました。 エラーメッセージが出力され、環境シェーダは無効になります。
バージョン 3.7.1.2 での変更点
新機能
- Catmull-Clark メッシュの適応テッセレーションが実装されました。 各領域が異なる洗練レベルをもてるようになりました。隣接領域の洗練レベルがさまざまに異なる t 頂点は、三角形ファンによって修正されます。 位置は常に有限サーフェス上で計算されます。
- Map コンテナの初期実装が追加されました。 マップは N 次元空間のパーティクルシステムです。 各パーティクルは、割り当てられた位置とセットデータを持ちます。
mental ray カーネルは、マップを作成、アクセス、編集する機能に加えて、これらをファイルからロードしファイルに保存する機能を提供します。 効率的なニアレスト ネイバーのルックアップ機能が実装されています。これは、ユークリッド距離またはユーザが提供した任意の距離のファンクタを使用します。 この距離ファンクタは、miHUGE_SCALAR
値を返すことにより、拒否を示すことができます。
パーティクル データは、スカラー、整数、ベクトル、カラー、トランスフォームなどの一般タイプで構成される任意の構造体です。 単一マップ内のすべてのパーティクルは同じレイアウトを持ちます。
パーティクルの位置は、N 次元の浮動小数点ベクトルです。N は現在の実装で 1 から 6 の範囲内で変動します。
このバージョンでは、マップはアプリケーションまたはシェーダで作成またはロードする必要があります。 名前付きマップの API インタフェースと .mi 構文は、次のバージョンで追加される予定です。 さらにルックアップ インタフェースのマイナー修正が見込まれています。 この機能についてのドキュメントを提供の予定です。 インタフェース関数は、mi_shader_if.h
にあります。
機能強化
- OpenEXR テクスチャで、ディスプレイ ウィンドウを使用する機能が追加されました。 _MI_OPENEXR_WINDOW レジストリが "display" に設定されている場合(有効な値は "display" と "data")、OpenEXR ディスプレイ ウィンドウが使用されます。 このディスプレイ ウィンドウは、フィルタされたローカル テクスチャの mipmap ピラミッドとは互換性がないことに注意してください。
- raylib の統合バージョンで、メモリ不足となった場合のレンダリングの緊急終了が修正されました。 関数
mi_rc_run
は、1 秒でアプリケーションに戻るようになり、すべてのレンダリング スレッドがブロックされるまで待ちません。 レンダリング スレッドは、メモリまたはデータベース操作で引き続きブロックされますが、mi_rc_run
が戻った後になると考えられます。 すべてのスレッドがブロックされた後 mi_rc_run
が最初に戻っていた以前の同期モードは堅牢性に劣っていました。内部ロックでブロックされたスレッドがカウントされず、アプリケーションがフリーズする原因になることがありました。
- BSP2 アクセラレーションで、モーション ブラー シーンを中心にメモリ消費とコンストラクション時間に改良が加えられました。 いくつかのバグが修正されました。
- 文字列オプションで、シェーダがブーリアン値に整数としてアクセスできるようになりました。 これは、シェーダが int にタイプ定義されている
miBoolean
タイプの変数を使用する場合に便利です。
バグ修正
- フレームバッファで、拡張子のないイメージ ファイル名が使用された場合に発生する可能性があったクラッシュが修正されました。
- アセンブリのあるシーンで、メイン シーンからアセンブリへのフラグ継承が修正されました。 これにより、レンダリングに必要のないアセンブリが不要にロードされるいくつかのケース(たとえば、シャドウ レイにのみ可視であるアセンブリと
off
に設定されたシャドウ オプションの組み合わせなど)が解決されます。
- バージョン 3.6.52.5 で導入されたファイル名検索の
'{{'
と '}}'
エスケープで、エスケープ解除が正確に 1 回適用されない可能性があるという問題が修正されました。
- テクスチャ キャッシュで、多量のテクスチャとデータベース フラッシュがアクティブになっている大きなシーンで発生する可能性があった、テクスチャ ページへの参照がすぐに解放されない(新しい参照の割り当てよりも遅い)問題が修正されました。
- OpenEXR イメージのテクスチャ キャッシュで、ピクセル座標の原点に位置合わせされていないタイルを持つファイルで発生する可能性があったクラッシュが修正されました。
- ビュー依存のディスプレイスメントを持つ多重インスタンスの trilist オブジェクトで、すべてのインスタンスで使用されていた不正な同一のディスプレイスメント品質が修正されました。
- 大量の二次レイが単一の視覚レイの子として発生した場合に、BSP2 アクセラレーションが交差を認識できないことがあるというバグが修正されました。 建築マテリアル シェーダのキャッシュされた光沢のレイでは、このような認識されなかった交差が白いドットまたはブロック状のアーティファクトとして見えていました。
- 多重インスタンスの移動オブジェクトで使用される BSP2 アクセラレーションについて、不正なモーション ブラーが修正されました。
- mental ray の統合バージョンで、メモリに完全に収まらずにデータベースのフラッシュをトリガする、大規模シーンのレンダリングの
中断
で発生する可能性があったクラッシュが修正されました。 このクラッシュは、BSP2 アクセラレーションが使用されている場合に、より発生しやすい傾向がありました。
- shutter_delay > 0、モーションがオン、samples_motion > 1 の設定でラスタライザを使用した場合、一部のケースで、不正なモーションが計算されていました。 この問題が解決されました。
- サブディビジョン サーフェス互換性モード(
MI_SURF_CCMESH
環境変数で有効にします)で、マルチセグメントモーションの壊れたモーションベクトルが修正されました。
- カメラ モーションおよびスキャンライン モードがオフになっているシーンで、バージョン 3.7.1.1 のモーション ブラーが欠落するリグレッションが修正されました。
- プラットフォーム固有: Linux および Mac OS X で、40 億個のデータベースの作成および編集操作の後、非常に長いレンダリングセッションで発生する可能性があったフリーズが修正されました。
- プラットフォーム固有: Windows で、接続エラーの原因となる場合がある rayserver サービスのバグが修正されました。
旧バージョンとの互換性に影響する変更
- 放射パーティクルと組み合わせて使用される、インポートン密度のデフォルト値が変更されました。 新しい値は、
0.1
(ピクセルあたり)です。 フォトンと組み合わせる場合は、古いデフォルト値である 1 が引き続き使用されます。
シェーダの変更
- プロダクション シェーダ
mip_render_subset
で、ファイナルギャザー事前計算モードでレンダリングされた不正なジオメトリのサブセットが修正されました。
- 正射投影カメラとともに使用されるプロダクション シェーダ
mip_motionblur
および mip_motoin_vector
でのレンダリングが修正されました。
- プロダクション シェーダ
mip_mirrorball
および mip_greyball
で、ゼロ以外のブラーを使用し、テクスチャがアタッチされていない場合に発生する可能性があったクラッシュが修正されました。
- プロダクション シェーダ
mip_binaryproxy
で、ディスプレイスメントの量がバウンディング ボックスの計算で考慮されていませんでした。この問題が修正されました。
- 建築マテリアル ライブラリで、透明なポータルライトが Z バッファに表示されなくなるよう修正されました。
- 物理的な "
transmat
" シェーダは、セグメント シャドウ モードをサポートしていませんでした。 この問題が解決されました。
バージョン 3.7.1.1 での変更点
新機能
- ヘア近似。 近似セグメントの数を直接指定する古い近似構文に加えて、ビュー依存の近似を含む、適応長さ、適応距離、適応角度の近似を指定できるようになりました。 ヘアのカーブの角度に依存するパラメトリック近似もサポートされています。
特に、カーブしたヘアや視距離が比較的長いヘアでは、この新しい近似の基準によって、必要な領域に限定された高い近似解像度を実現できます。 ヘアのセグメント数が少ないほど、メモリの使用量が低減し、レンダリング速度が上がります。
近似は、ヘア オブジェクトに対して以下の構文を使用して指定できます。
approximate hair <curve_approx>
<curve_approx
> は任意のカーブ近似テクニックで、たとえば以下のようになります。
approximate hair view length 3 distance 0.1 angle 5 0 7
曲率依存の近似を有効に利用するには、ヘアを次数を 1 より大きい値で適切にモデリングする必要があります。
- ディスプレイスメント付きの移動ポリゴン オブジェクトで、ビジュアルモーションの量によるディスプレイスメントの精度を自動コントロールする機能が追加されました。
高速に移動するオブジェクトでは、静止または低速移動のオブジェクトに比べて、低いディスプレイスメント テッセレーション精度で同等のビジュアル品質を持つイメージを実現できます。 ディスプレイスメント近似をオブジェクトごとに調整することも可能ですが、これには手動での作業が多量に必要となり、実際にはほとんど行われません。 また、オブジェクトごとの精度は、部分ごとに異なる量のモーションを持つオブジェクトには十分でない場合があります。 この新しい近似モーション係数は、ディスプレイスメント精度を特定のオブジェクト部分の移動量に従って自動的に調整する方法を提供します。
それなりの品質のビュー依存のディスプレイスメントで、適応サブディビジョンによって、スクリーン空間でのモーションの長さがチェックされます。 計測されたモーションの長さは、近似定数の使用を修正するために使用されます。 大きな動きを持つオブジェクトの領域でのみジオメトリが低減されます。
文字列オプション "geom displace motion factor" f
を使用すると、浮動小数点 f >= 0
である静止に対して、ジオメトリの削減量を修正できます。 係数 f=0
でこの機能はオフになります。 係数 f=1
が現在のデフォルトで、f
の値が大きいほど削減量が大きくなります。 このデフォルト値は、実験的な値で、やや控えめな値です。このジオメトリの簡略化は約 16 ピクセルのモーションに効果を与えます。 より低速のモーションに効果を与えるには、これよりも高い値を使用する必要があります。 たとえば、係数の値が 8 の場合、フレームあたり 2 ピクセルの速度で移動するオブジェクトの領域でジオメトリが削減されます。
- 実験的: mental ray 3.6/3.6+ では、オブジェクトサイズに依存しない近似テクニックは、角度ベースの近似だけでした。この方法では、場合によってはパフォーマンスが最適なメッシュが得られないことがありました。 エッジとそのエッジの長さに従った近似エラーによって駆動される、新しい距離比率ベースの近似テクニックが実装されました。
現在のバージョンでは、環境変数 MI_DISTANCE_RATIO
を設定し、距離近似テクニックを使用することでこれを有効化できます。 推奨される値は、0.02 程度の値です。この値では、より小さな値に対応するより精度の高い近似が得られます。
機能強化
- BSP2 アクセラレーションのコンストラクションに重大なアルゴリズムの変更が加えられました。
- モーション ブラーのあるシーンでは、コンストラクション時間が飛躍的に短縮されます。
- 静止シーンでは、コンストラクションに必要なメモリが低減され、構築時間も大幅に短縮されます。
- 静止とモーションの両方の BSP2 ツリーで、構築されたツリーの品質が大幅に向上され、交差テストのパフォーマンスが向上します。
- 放射パーティクルが IBL スタイル機能で拡張されました。この機能は、文字列オプション "irradiance particles indirect passes" を -1 に設定することにより有効化できます。
放射パーティクルの補間が無効になっている場合、環境プリサンプリング マップだけが構築され、それ以上の事前計算ステップは必要ありません。
放射パーティクルの補間が有効になっている場合、パーティクルは事前計算パスで通常どおりに放出されますが、補間ポイントとしてのみ使用されます。
どちらのケースでも、環境マップ ライティングだけが考慮され、拡散バウンスは考慮されません。
- ファイルに保存された詳細なシャドウマップ: すべてのシャドウマップ タイルがレンダリングされ、格納されます(実際に使用されているものだけでなく)。
- OpenEXR のバージョンが 1.6.1 にアップデートされました。
バグ修正
- 放射パーティクルで、環境の寄与度が係数 PI によってオフになっていました。この問題が修正されました。
- autovolume がオフに設定された、セグメント シャドウ モードのボリューム シェーダで、最後のセグメント(最後のオクルーダとライトの間のセグメント)に欠落していたボリューム シェーダの呼び出しが追加されました。
- mental ray のスタンドアローン バージョンで、ライセンス数がコマンド ライン パラメータとして指定された場合に、ハイパースレッド CPU を持つマシンの使用ライセンス数が正しくないという問題が修正されました。
旧バージョンとの互換性に影響する変更
- mental ray 3.7 コードは、専用のネームスペース MISTD でコンパイルされた STLPORT を使用するよう変更されました。 これにより、アプリケーションとサード パーティ プラグインとの統合で発生する可能性があったシンボルの競合が解決されます。コンパイラの互換性/バージョンの一致における要件が少なくなります。
- OpenEXR ライブラリが静的にリンクされます。
mi_openexr.dll
にリンクしようとすると、警告メッセージが出力されます。
- 暗黙的なパッチについて、廃止された構文と API インタフェースが削除されました。
miGeoBox
構造体から廃止されたボックスタイプが削除されました。
miMaterial
構造体が、bsdf スロットで拡張されました。
miHair_list
構造体のレイアウトが近似で拡張されました。 使用されていない整数近似が削除されました。
mi::shader::Interface
クラスにマップ コンテナが追加されました。
バージョン 3.6.52.10 での変更点
機能強化
バグ修正
- マルチホスト レンダリングで、アセンブリのあるシーンのクラッシュが修正されました。
- プラットフォーム固有: Windows で、接続エラーの原因となる場合がある rayserver サービスのバグが修正されました。
シェーダの変更
- プロダクションおよび建築マテリアル シェーダ ライブラリで使用される関数
gloss_to_shine
の潜在的なリンクの問題が修正されました。
バージョン 3.6.52.8 での変更点
バグ修正
- BSP2 アクセラレーションを使用してライトマップを作成するときに発生する可能性があったクラッシュが修正されました。
バージョン 3.6.52.7 での変更点
バグ修正
- 放射パーティクルを BSP2 アクセラレーションとともに使用した場合に発生するクラッシュが修正されました。
- 補間に使用される放射パーティクル数の不正なデフォルト値が修正されました。
- 複数フレームのレンダリングで、ジオメトリテッセレーションで発生する可能性がある不明なタグの致命的エラーが修正されました。
シェーダの変更
- プロダクション シェーダで、クリッピングプレーンが無視されていました。 この問題が解決されました。
- プロダクション シェーダで、"invisible" に設定されたオブジェクトが対象オブジェクトへのビューをブロックしていました。 この "invisible" オブジェクトが正しくトレースされるよう修正されました。
- プロダクション シェーダで、特定のオブジェクトを設定すると、選択したインスタンスだけでなく、誤ってそのオブジェクトのすべてのインスタンスがレンダリングされていました。 この問題が解決されました。
バージョン 3.6.52.6 での変更点
バグ修正
- プラットフォーム固有: 32 ビット Linux プラットフォームで、
mi_trace_continue
関数と組み合わせて使用される BSP アクセラレーションの精度の問題により発生する可能性があったアーティファクトが修正されました。
バージョン 3.6.52.5 での変更点
機能強化
- 検索パスで、
{{
および }}
サブ文字列はそれぞれ {
および }
記号のエスケープとして扱われます。
バグ修正
- キャッシュされたフレームバッファが 4,096 ピクセル(x_resolution × y_resolution)未満の小さなイメージのレンダリングに使用された場合に起こるクラッシュが修正されました。
- 32 ビットプラットフォームで誤ったデフォルトメモリ上限を表示していた、mental ray スタンドアローンのヘルプバナーが修正されました。 デフォルト値は 32 ビットプラットフォームでは 1000 MB、64 ビットプラットフォームでは無制限です。
バージョン 3.6.52.4 での変更点
バグ修正
- 圧縮タイプが指定されているイメージのフレームバッファのエコーが修正されました。
- 放射パーティクルで、ミラー領域の推定が修正されました。この結果、特定のシーンでイメージの品質とパフォーマンスがわずかに向上します。
- BSP2 アクセラレーションで、レイが座標プレーンにほぼ平行な場合にバウンディング ボックスの交差のエラーによって発生する可能性があるアーティファクトが修正されました。
バージョン 3.6.52.3 での変更点
バグ修正
- raylib の統合バージョンのみ: メモリ不足致命的エラー(
mi_par_abort
の miABORT_RAY_FREEZE
フラグ)での安全な終了で発生する可能性があったフリーズが修正されました。
バージョン 3.6.52.2 での変更点
バグ修正
- OpenEXR イメージで、3.6.50.17 以降、デフォルトで圧縮が有効になっていませんでした。この問題が修正されました。
- BSP2 アクセラレーションで、シャッター間隔の長さがゼロ(
shutter open == shutter
、shutter open > 0
)のモーションシーンで発生する可能性があったクラッシュが修正されました。
- BSP2 アクセラレーションで、メモリ割り当ての統計情報が修正されました。
バージョン 3.6.52.1 での変更点
バグ修正
- RLA イメージフォーマットで、カラー + Z デプス イメージの出力が修正されました。
- ファイナルギャザー レイによってサンプリングされた
user
エリア ライトで、ライトごとに 1 つのサンプルが実施されません。 これは、ユーザ ライト シェーダのエイムと競合する可能性があります。
バージョン 3.6.50.21 での変更点
バグ修正
- セグメントまたはソートされたシャドウと組み合わせて使用される BSP アクセラレーションで、頂点法線を持たないポリゴン オブジェクトのジオメトリ法線変換が欠落していた問題が修正されました。
- ラスタライザで、ボリューム シェーダから
mi_query miQ_NUM_TEXTURES
モードが呼び出された場合に発生する可能性があるクラッシュが修正されました。
- BSP2 アクセラレーションで、モーション ブラーのあるシーンの後続フレームのレンダリングで発生する可能性があったクラッシュが修正されました。
シェーダの変更
- 建築の空のシェーダで、拡散水平輝度から天頂の輝度を計算するときに Pi 係数が欠落している問題が修正されました。
バージョン 3.6.50.20 での変更点
バグ修正
- アセンブリで欠落していたレイトレース ヘアの問題が修正されました。
バージョン 3.6.50.19 での変更点
機能強化
シェーダの変更
- 建築の物理的な太陽シェーダで、イルミネーションモードがシェーダ実装で初期化されていませんでした。この問題が修正されました。
バージョン 3.6.50.18 での変更点
機能強化
- バージョン 3.6.50.8 で追加されたレジストリに加えて、以下のレジストリが mental ray カーネルによって提供されています。
{_MI_RAY_MAJOR_VERSION}
: mental ray が含まれます(このリリースでは "3")。
{_MI_RAY_MINOR_VERSION}
: mental ray が含まれます(このリリースでは "3.6")。
{_MI_RAY_BRANCH}
: ブランチのバージョンが含まれます("3.6.50")。
{_MI_RAY_SYSTEM}
: 現在のシステムクラスを表す短い文字列が含まれます("windows" など)。
{_MI_RAY_OEM_ID}
: 設定されている場合、OEM パートナーの ID が含まれます。
- インテグレータ: 新しい関数 mi_mi_parse_assembly が追加されました。 この関数は、完全な .mi 構文を受け入れ、手続き型のアセンブリコールバックからのみアセンブリ ファイルの解析のために呼び出すことができます。 mi_mi_parse 関数は、OEM raylib バージョンの .mi 構文のサブセットのみを受け入れます。
バグ修正
- ラスタライザまたはスキャンラインと組み合わせて使用される BSP2 アクセラレーションで、多重インスタンス オブジェクトを持つシーンで発生する可能性がある自己交差アーティファクトが修正されました。
- ヘアのレンダリングで、メモリ割り当ての一部がメモリ統計情報に含まれていませんでした。この問題が修正されました。
- アセンブリ ファイル名のタグ リークが修正されました。
- データベース ダンプで、アセンブリ タグ タイプの名前が修正されました。
- インテグレータ: アプリケーションのコールバックの呼び出しを妨げていた
mi_par_aborted()
チェックの誤字が修正されました。
シェーダの変更
- ペイント シェーダで、欠落していた
edge_factor
が宣言に追加されました。
バージョン 3.6.50.17 での変更点
バグ修正
- アセンブリタグが
mi_api_delete
関数で削除された場合に発生するタグ リークが修正されました。
- OpenEXR 出力イメージで使用されている不正な圧縮オプションが修正されました。
バージョン 3.6.50.16 での変更点
バグ修正
- ローカルホストの IPv4 または IPv6 インタフェースのいずれかが使用できない場合に発生する可能性があったクラッシュが修正されました。
- ジオメトリ シェーダの担当として呼び出された状態シェーダが
miCamera::buffertag
にアクセスした場合に発生するクラッシュが修正されました。
- BSP2 アクセラレーションで、
mi_trace_continue
関数によって生成される可能性があったアーティファクトが修正されました。
- アセンブリと組み合わせて使用される BSP2 アクセラレーションで、前バージョンで発生していたクラッシュが修正されました。
- OpenEXR ファイルで、1 つのファイルに 8 個を超えるイメージが格納された場合に発生するクラッシュが修正されました。 この修正は
mi_openexr.so
ライブラリで行われています。
- プラットフォーム固有: MacOSX 64 ビット PPC マシンで、壊れていた
mi_openexr.so
が修正されました。
バージョン 3.6.50.14 での変更点
バグ修正
ccmesh
オブジェクトで、発生する可能性があったテクスチャ継ぎ目のアーティファクトが修正されました。
- BSP2 アクセラレーションで計算される、ライトマップのクラッシュが修正されました。
- BSP2 アクセラレーション、ラスタライザ(または詳細なシャドウマップ)、およびヘアの組み合わせが使用されている場合に発生するクラッシュが修正されました。
- ボリューム シェーダからライト サンプル ループが呼び出され、BSP2 アクセラレーションが使用されている場合に発生するシャドウの欠落が修正されました。
- シーンオプション情報バナーの誤字が修正されました。
シェーダの変更
- 建築の物理的な太陽シェーダで、直接法線輝度の明示的な設定を可能にするパラメータが追加されました。
バージョン 3.6.50.13 での変更点
バグ修正
- 移動するインスタンスにアタッチされたアセンブリのモーション変換の継承が修正されました。
- BSP2 アクセラレーションで、モーションのオーバーサンプリングをトリガする可能性があるエラーが修正されました。
- BSP2 アクセラレーションで計算される、ライトマップのクラッシュが修正されました。
- ヘアレンダリングで、発生する可能性があるシャドウアーティファクトが修正されました。
バージョン 3.6.50.12 での変更点
バグ修正
- セグメントまたはソートされたシャドウと組み合わせて使用される BSP2 アクセラレーションで、メモリ合計不足の原因となる可能性がある無限自己交差ループが修正されました。 根底にある精度の問題は、32 ビット Linux プラットフォームでのみ確認されています。
- BSP2 アクセラレーションのメモリ配分の一部が mental ray のメモリ統計情報に含まれていませんでした。この問題が修正されました。
- モーション ブラーおよびレイトレースシャドウと組み合わせて使用されるBSP2 アクセラレーションで、モーションの検出とモーション ブラーのオーバーサンプリングのトリガに失敗する場合があるという問題が修正されました。
バージョン 3.6.50.11 での変更点
機能強化
バグ修正
シェーダの変更
- 建築マテリアルで、明るい環境と光沢の補間のある屋内シーンのレンダリングを、
"detail distance"
と組み合わせて使用した場合に発生する可能性のある、ドット アーティファクトの問題が修正されました。
バージョン 3.6.50.10 での変更点
バグ修正
- シャドウシェーダ
miState::scanline
は指定されたとおり 0 になることが保障されます。
- シーンのエコーで、ライトまたはライトインスタンスのエコーが無効になっている場合、インスタンスライトのリストが出力されなくなりました。
バージョン 3.6.50.9 での変更点
機能強化
- mental ray DISP プロトコルのソケット レイヤ(レンダリングされたタイルの即時表示)に IPv6 サポートが追加されました。mental ray は、同じポート id で TCP または TCPv6 のいずれかで行われた接続をリッスンします。
imf_disp
ツールは、TCPv6 および TCP プロトコルのいずれかを使用して接続の取得を試行します。
- 進捗文字列 enum が放射パーティクルエントリで拡張されました。
- 放射パーティクルエントリが
mi_query
モード miQ_STAGE
に追加されました。
バグ修正
- マルチセグメント モーションと組み合わせて使用される BSP2 アクセラレーションで、BSP2 のコンストラクション時に行われる内部ボックスの計算にあった重大なバグが修正されました。 これにより、発生する可能性があったアーティファクトが解決され、これに該当するシーンのパフォーマンスが大幅に向上します。
ccmesh
オブジェクトで、三角形メッシュと四角形メッシュが混在する場合に発生する可能性があったクラッシュが修正されました。
- テクスチャ キャッシングで、カラー イメージがスカラー テクスチャとして開かれたときに発生するイメージ変換のクラッシュが修正されました。
- コマンド ライン オプション
-ip
で、このオプションが指定された場合のデフォルト値が off
に修正されました。
バージョン 3.6.50.8 での変更点
新機能
- 新しいグローバルイルミネーションテクニック 放射パーティクル(短縮形: IP)が追加されました。これは、多くの場合、イメージ品質、使いやすさ、パフォーマンスの点において、ファイナルギャザーやフォトン マッピングよりも優れています。
これは簡単に説明すると、「レンダリング前にカメラからシーンに向かってインポートンを放出する」テクニックです。 これらがヒットした位置と、その位置に達する直接(または間接)イルミネーションの量に関する情報(「放射パーティクル」という名前はこれに由来しています)がマップに結合されます。 必要に応じて、1 つまたは複数の間接光のパスを計算できます。 アルゴリズムの性質上、この計算は重要度によって駆動されます。 レンダリング中、すべてのシェーディングポイントの放射の推定に放射パーティクルが使用されます。放射パーティクルに直接イルミネーションだけが収集された場合、これは間接ライティングのバウンス 1 回に相当します。 放射は、パーティクルの位置で事前計算された値から補間することもできます。
放射パーティクルは、グローバルイルミネーションおよびファイナルギャザーと組み合わせて使用することはできません(使用しようとすると、オプションは自動的に調整されます)。 ただし、放射パーティクルはコースティクス フォトンと互換性があります。
以下の文字列オプションを使用して、放射パーティクルを制御できます。
"irradiance particles" <boolean>:
この文字列オプションは、放射パーティクルを有効化します。 デフォルトはオフです。
"irradiance particles rays" <int>:
この文字列オプションは、放射の推定中にショットされるレイの数をコントロールします。 この数は、ファイナルギャザーで使用されるレイの数と似ていますが、最大数を指定しており、同じレイ数で使用されるファイナルギャザーに比べて良い品質が得られます。 最小は 2 で、デフォルト値は 256 です。
"irradiance particles indirect passes" <int>:
有効な間接ライティングのパスの数。 この数が 0 よりも大きい場合、複数の間接イルミネーションバウンスからの放射を収集するために、一連のパスが計算されます。 この場合、放射パーティクルは、直接イルミネーションと間接イルミネーションの両方の情報を持つことになります。 この数が 0 である場合、放射パーティクルは直接イルミネーションの情報だけを持ちます。 デフォルト値は 0 です。
"irradiance particles scale" <float> | <color>:
これは、レンダリング中に放射の強度に適用されるグローバル スケール係数です。 デフォルト以外の値を使用すると、物理的に正確なレンダリングは行われませんが、アーティスティックな目的には便利です。 単一の値またはカラーを指定できます。 単一の値は、同一の R、G、B 要素を持つカラーに展開されます。 デフォルト値は 1.0 です。
"irradiance particles interpolate" <int> | <string>:
この文字列オプションは、補間の使用をコントロールするのに使用されます。 値は数値か文字列のいずれかです。 0
は補間を行わない、1
は常に補間する、2
は二次レイのみ補間する(つまり視点からのレイは補間せず、反射や収縮などは補間する)ことを指定します。 代わりに、文字列 "never"
、"always"
、または "secondary"
も使用できます。 デフォルト値は "always"
です。
"irradiance particles interppoints" <int>:
ルックアップ補間に使用する放射パーティクルの数。 デフォルト値は 64 です。
"irradiance particles env" <boolean>:
このフラグは、放射計算の環境マップの使用を有効化します。 この場合、独立したパーティクル マップが環境用に構築され(環境シェーダが存在する場合)、イメージ ベース ライティングのレンダリングでこのマップが使用されます。 デフォルト値はオンです。
"irradiance particles env scale" <float> | <color>:
環境の放射成分に適用されるグローバル スケール係数です。 "irradiance particle scale"
文字列オプションと同じく、単一のスカラーかカラーのいずれかを指定できます。 スケール係数は環境放射にのみ適用されるため、相対的です。ユーザが "irradiance particle scale"
文字列オプションを使用してグローバル スケール係数を指定すれば、環境放射をさらに(乗法的に)スケールできます。 デフォルト値は 1.0 です。
"irradiance particles env rays" <int>:
環境マップからの放射の計算に使用されるレイの数。 この数は、特に環境の大部分がシーン ジオメトリに覆われている場合に(典型的な例は、1 つないし 2 つの窓がある部屋です)、通常の放射計算に使用されるレイの数より大きくすることがあります。 屋外のシーンでは、これより小さい数のレイで十分に機能します。 デフォルト値は、"irradiance particles rays"
文字列オプションで指定されるレイの数と同じです。
"irradiance particles file" <file_name_string>:
放射パーティクル マップのファイル名を指定します。 ファイルが存在する場合、mental ray はこのファイルから放射パーティクルを読み込もうとします("irradiance particles rebuild"
文字列オプションがオンに設定されている場合を除く)。 放射パーティクル マップがファイルから(正しく)読み込まれなかった場合、mental ray はこれを計算し、指定された名前のファイルに保存します。 これは、フォトン マップのオプションと一致しています。 デフォルト値は名前なしです。つまり、放射パーティクルはファイルに関連付けられません。
"irradiance particles rebuild" <boolean>:
on
に設定されている場合、前の文字列オプションで指定された名前のファイルが存在していても、mental ray は放射パーティクル マップを計算します。 off
に設定されている場合、mental ray はファイルからこれを読み込むか("irradiance particles file"
文字列オプションが使用されている場合)、以前にレンダリングされたフレームからの放射パーティクル マップを再利用します。 後者は、フリッカのないアニメーションに役立ちます。 ただし、オブジェクトとカメラが動いている場合、放射パーティクル マップの品質が低下することがあります。このため、これは実際にはフライスルーでのみ実行できます。 さらに、パーティクル マップはビュー依存であるため、フレームイメージの境界が不正確になる可能性があります。 デフォルト値は on
です。
上にリストした文字列オプションに該当するコマンド ライン オプションは次のとおりです。-ip
、-ip_rays
、-ip_indirect_passes
、-ip_scale
、-ip_interpolate
、-ip_interppoints
、-ip_env
、-ip_env_rays
、-ip_env_scale
、-ip_file
、-ip_rebuild
。
このリリースには、この機能のドラフト版ミニチュートリアルが含まれています。
- 以下のレジストリが mental ray カーネルによって書き込まれます。
{_MI_RAY_VERSION}
: mental ray バージョンが含まれます。
{_MI_RAY_PLATFORM}
: プラットフォーム名が含まれます。
{_MI_RAY_DATE}
: mental ray 日付が含まれます。
- オプションの
{_MI_RAY_REVISION}
: 設定されている場合、実行ファイルの構築元である内部リポジトリのバージョンが含まれます。
これらのレジストリは、複数の mental ray バージョンとプラットフォーム(32 ビットシェーダと 64 ビットシェーダなど)を同じマシン上にセットアップするのに使用できます。
機能強化
- 新しい文字列オプション
"importon emitted"
が追加されました。 放出するインポートンの合計数を指定すると、"importon density"
文字列オプションがオーバーライドされます。 オプションは似ていますが、"importon emitted"
はイメージ解像度に依存しない値を指定します。このため、チューニングにより適しています。
- 新しいフレームバッファ インタフェースで、
"+rgba"
のような符号付きの互換性スタイル ファイル タイプの処理が追加されました。 このファイル タイプの使用は意図されておらず推奨もされませんが、よくある誤りを解決します。
- raylib を統合するアプリケーション: アンビエント オクルージョン計算パスに、進捗メッセージの新しいタイプが追加されました。
シェーダの変更
- 建築シェーダ
mia_physicalsky
が、明示的な Perez モデルで拡張されました。
- 建築シェーダで、コレクションに
mia_ciesky
シェーダが追加されました。
- 建築の物理的な太陽シェーダで、
"automatic_photon_energy"
モードが修正されました。
- 建築マテリアル シェーダで、ファイナルギャザー レイのバンプを無視することでパフォーマンスが向上しました。
- 建築マテリアル シェーダで、ファイナルギャザー レイのスペキュラ ハイライトを取り除くコードが修正されました。
- 建築マテリアル シェーダで、一部のボリュームエフェクトの不正な反射が修正されました。
- 建築マテリアル シェーダで、環境シェーダが使用されていない場合に、「詳細の距離」機能が原因で発生する可能性があるアーティファクトが修正されました。
- 建築出力シェーダで、「once per render」エラーメッセージのトリガで発生するマイナーな問題が修正されました。
バージョン 3.6.50.7 での変更点
機能強化
- アンビエント オクルージョンキャッシュで、レンダリングの中止の反応時間が短縮されました。
バグ修正
- ファイナルギャザーがボリューム シェーダから呼び出され、BSP アクセラレーションが使用されている場合に発生する可能性があったクラッシュが修正されました。
- BSP2 アクセラレーションで、欠落したモーション(時間のコントラスト)のオーバーサンプリングが原因で発生する可能性があるアーティファクトが修正されました。
- モーション変換の継承がアセンブリインスタンスに修正されました。
- 多重インスタンスアセンブリが BSP2 アクセラレーションと組み合わせて使用されている場合に発生する、重大なアーティファクトが修正されました。
- 複数のイメージを含む OpenEXR 出力ファイルで、
-file_dir
コマンド ライン オプションが正しく使用されていませんでした。この問題が修正されました。
- 複数のイメージを含む OpenEXR 出力ファイルで、特定のフレームバッファ イメージでイメージタイプ変換が必要な場合に発生する可能性があったクラッシュが修正されました。
- レンダリング中にオブジェクトを編集した場合に、誤って表示されるエラーメッセージが削除されました。 アセンブリでのこの操作は有効です。
バージョン 3.6.50.6 での変更点
新機能
- フレームバッファ イメージのキャッシュ。 このオプションは、高解像度イメージのレンダリングに使用されるメモリを大幅に低減します。 有効にした場合、メモリ内に存在するのは生成される各イメージのごく一部分(新たにレンダリングされたタイルおよびディスプレイ コールバック、出力シェーダによって最近アクセスされたタイル)のみとなり、一部の診断モードでのみファイルおよびカーネルに最終イメージが書き込まれます。
フレームバッファ イメージのキャッシュは、仮想フレームバッファ(-fb_virtual
on
コマンド ライン オプション)よりも優れています。仮想フレームバッファでは、出力イメージを全体としてメモリマップまたはマップ解除されます。つまり、複数のフレームバッファをレンダリングする場合にのみメリットがあります。
フレームバッファキャッシュは、コマンド ライン オプション -fb_virtual cache
で有効化します。または、統合バージョンでは、miOptions::fb_virtual
値を 2
に設定することで有効化できます。 miOptions::fb_virtual
のタイプが整数に変更されました。 有効な値は、インメモリフレームバッファの場合は 0
、メモリマップ(仮想)フレームバッファの場合は 1
、キャッシュフレームバッファの場合は 2
です。
出力シェーダ操作によるフレームバッファの使用時には、mi_img_get*
および mi_img_put*
関数を使用してください。miIMG_ACCESS
および miIMG_LINEACCESS
マクロ、mi_img_access
および mi_img_cache_get
関数は避ける必要があります。 また、出力シェーダでは image->height
および image->width
に直接アクセスせず、代わりに mi_img_get_width
および mi_img_get_height
関数を使用することが推奨されます。
機能強化
- モーション ブラーと組み合わせて使用される BSP2 アクセラレーションのコンストラクション時間が飛躍的に短縮されました。 現在のバージョンでは、コンストラクションの間、一時的に追加メモリが割り当てられます。 このメモリの量は、将来のリリースで削減されます。
バグ修正
ccmesh
オブジェクトで、継ぎ目のテクスチャリングが修正されました。
- ラスタライザを使用するヘアのレンダリングで、ヘア プリミティブの不正な
miState::normal_geom
初期化が原因で発生する可能性があるアーティファクトが修正されました。
- 文字列オプションのタグ リークが修正されました。
Framebuffer::remove
メソッドのメモリ リークと発生する可能性があったクラッシュが修正されました。
- ファイナルギャザーの事前計算統計情報で、ライト シェーダ呼び出しの数が出力されなくなりました。
シェーダの変更
ベース ライトマップ シェーダ(mib_lightmap_write
)で、ライトマップのファイナルギャザー ポイントの事前計算をコントロールする新しい fg_mode
パラメータが追加されました。 このパラメータの有効な値は、-1(事前計算なし、互換性動作)、0
(すべてのメッシュ頂点)、N>0
(N ピクセルごとに 1 つのファイナルギャザー ポイント)です。 デフォルト値は 3 です。
バージョン 3.6.50.5 での変更点
機能強化
- モーション ブラーと組み合わせた場合の BSP2 のパフォーマンスが向上しました。
- シェーダの再宣言がネームスペースの範囲内(たとえばアセンブリまたはジオメトリ シェーダでは「anonymous」ネームスペース)で実行された場合、この再宣言に対する API 警告は出力されません。 これは、シェーダ宣言をアセンブリ ファイルに含めるために使用されることがあります。
Framebuffer
クラスにフレームバッファの削除を可能にする remove()
メソッドが追加されました。
mi_geoshader_echo_tag
関数で、nolinkcommand
エコーオプションが設定されていない場合にリンクステートメントがエコーされます。
バグ修正
miLight
に直接アタッチされている(つまりライト シェーダ引数として使用されていない)ライトプロファイルのパーサ エラーが修正されました。
miLight
に直接アタッチされている(つまりライト シェーダ引数として使用されていない)ライトプロファイルのパーサ エラーが修正されました。フレームバッファ インタフェースで、get_index
は、特定の名前の バッファが見つからない場合、インデックス値を -1 に変更しなくなりました。
バージョン 3.6.50.4 での変更点
機能強化
- BSP2 アクセラレーションの全体的なパフォーマンスが向上しました。
- BSP2 アクセラレーションで、プレースホルダオブジェクトが使用されている場合の並列化が向上しました。
- BSP2 進捗メッセージでより分かりやすい名前が使用されます。
- フレームバッファ インタフェースクラスで、フレームバッファの数および特定のインデックスを持つフレームバッファの名前を返すメソッド
get_buffercount
および get_buffername
が追加されました。
mi::shader::Options::get(const char *, int*)
インタフェース関数で、ブーリアン オプション値が認識され、この値が 0 または 1 に変換されます。これにより、miBoolean
タイプの変数が使用されている場合の非直感的なブーリアン オプションのルックアップ エラーが解決します。
バグ修正
- ラスタライザおよび 1 に設定された
motion samples
オプションと組み合わせて使用される BSP2 アクセラレーションでは、スタティック(モーションなし)アクセラレーションが構築されます。 これにより、メモリ消費が大幅に減少し、このオプションの組み合わせでのパフォーマンスが向上します。
- BSP2 アクセラレーションの欠けていたエコーが修正されました。
- アセンブリのあるシーンで、アセンブリモーションのバウンディング ボックスの誤りが原因で発生する可能性があった不正なモーションと欠落したシーンの一部が修正されました。
- アセンブリのあるシーンで、シーンのメイン部分にジオメトリが含まれない場合またはテクスチャ空間を持たないジオメトリだけが含まれる場合に発生する可能性があったクラッシュが修正されました。
- ディスプレイスメントのある trilist オブジェクトで、ディスプレイス近似のエコーが修正されました。
- レンズ シェーダの適用されたラスタライザを BSP 診断モードと組み合わせて使用している場合に発生する可能性があったクラッシュが修正されました。
シェーダの変更
- 建築マテリアル シェーダで、セグメント シャドウ モードが使用されている場合のパフォーマンスが大幅に向上しました。
バージョン 3.6.50.3 での変更点
機能強化
- フレームバッファで、ブーリアン
user
フラグが追加されました。名前はより分かりやすくなっています。 そのセマンティクスは、autofill
の逆です。設定されている場合、フレームバッファのコンテンツは mental ray カーネルによって提供されません。 autofill
フラグは、逆の意味を持つものとして引き続き使用できますが、いずれ廃止される予定です。
バグ修正
- アセンブリでディスプレイスメント シェーダを使用する場合に発生する可能性がある問題が修正されました。
- 複数のフレームバッファ出力を含む OpenEXR ファイルで、ユーザ フレームバッファの不正な出力が修正されました。
- 「failed to create frame buffer」エラーメッセージの原因となるフレームバッファカウントの問題が修正されました。
- プラットフォーム固有: GCC4 コンパイラを使用するプラットフォーム上のタグ付けされていない primlist オブジェクトで発生する可能性があった、解析エラーが修正されました。
バージョン 3.6.50.2 での変更点
機能強化
- mental ray ライブラリの OEM 統合で、ファイルアセンブリが有効になりました。
- raylib 統合: 2 つの新しい関数
mi_disp_fbmap_name
、mi_disp_fbunmap_name
が追加されました。 これらの関数は、DISP コールバックによって使用されます。機能的には mi_disp_fbmap
、mi_disp_fbunmap
と同じですが、引数としてインデックスではなくフレームバッファの名前を受け取ります。
バージョン 3.6.50.1 での変更点
機能強化
- BSP2 アクセラレーションで、モーションのあるシーンのパフォーマンスが大幅に向上され、メモリ消費量が低減されました。
- フレームバッファに、新しい
autofill
フラグが追加されました。 このフラグが設定されていると、フレームバッファのコンテンツは mental ray カーネルによりフレームバッファのタイプ(カラー、法線、Z デプスなど)に従って初期化されます。 autofill
フラグのデフォルト値は true です。 autofill
フラグは、カラー フレームバッファに対してのみ有効である useprimary
フラグより優先されます。 useprimary
フラグは互換性のため引き続きサポートされますが、統合には代わりに新しい autofill
フラグを使用することが推奨されます。
バグ修正
- BSP2 アクセラレーションで、シーン内に複数のインスタンスのあるオブジェクトで発生する可能性があった欠落ジオメトリが修正されました。 このようなシーンで発生する可能性があったセルフシャドウのアーティファクトが修正されました。
- デバッグ ビルドのみ: マルチセグメントのモーション ブラーが使用されている場合に発生する可能性があったクラッシュが修正されました。
- シェーディングサブツリーで単一の視覚レイにより非常に多数のレイが生成された場合に発生する可能性があった、アーティファクトが修正されました。
state->pri == 0
が指定された miState
で使用される mi_query
モード miQ_PRI_INDEX
のクラッシュが修正されました。
- ディスプレイスメントのある
ccmesh
オブジェクトで、-maxdisplace よりも小さい負のディスプレイスメント値のクリッピングが追加されました。 ディスプレイスメント シェーダによって返される NaN ディスプレイスメント値の警告が追加されました。
ccmesh
以外のサブディビジョン サーフェスオブジェクトで、ジオメトリ シェーダによって呼び出される即時テッセレーションのディスプレイスメントの欠落が修正されました。
ccmesh
オブジェクトで、物理メモリに収まらない大きなシーンで発生する可能性があった問題が修正されました。
ccmesh
オブジェクトで、考慮されなかったインスタンスとインスタンス オーバーライド近似が修正されました。ccmesh
オブジェクトで、ジオメトリ シェーダによって呼び出された即時テッセレーションで、不正なサブディビジョンレベルが選択される可能性があるという問題が修正されました。
- 正射投影カメラが使用されている場合に NURBS で発生する可能性があった、ビュー依存のテッセレーション品質のアーティファクトが修正されました。
- プラットフォーム固有: Mac OS X プラットフォームで、エッジのマージで発生する可能性があったテッセレーション アーティファクトが修正されました。
- フレームバッファ C 互換性インタフェースで、以下の問題が修正されました。
- 一次フレームバッファカラーがユーザ バッファに誤ってコピーされる
- インデックスが 8 以上のユーザ フレームバッファの出力が壊れる
- ユーザ フレームバッファのエコー
シェーダの変更
- 建築マテリアル シェーダで、バージョン 3.6.0.25 の変更が展開されました。mental ray カーネルのトレース デプスの制限に達した場合、環境カラーの代わりに黒色が返されます。
- 建築マテリアル シャドウ シェーダで、不透明マテリアルが使用されている場合のパフォーマンスが大幅に向上しました。
バージョン 3.6.3.1 での変更点
バグ修正
- mental ray スタンドアローンで、いくつかのコマンド ライン オプションのコマンド ライン ヘルプが間違っていた問題が修正されました。
シェーダの変更
- バンプ マッピングと組み合わせて使用される建築丸角シェーダで、丸角シェーダがシャドウ シェーダとして呼び出されたときに生じるクラッシュが修正されました。 このような組み合わせでシェーダを使用するシーンでは、パフォーマンスが大幅に向上します。
- 建築マテリアル シェーダで、ファイナルギャザー トレース デプスの制限が低いファイナルギャザーおよび HDR 環境シェーダを使用するシーンで発生する可能性があった「グロー オブジェクト」アーティファクトが修正されました。
バージョン 3.6.2.8 での変更点
機能強化
- (三角形および四角形だけでなく) n 角形のポリゴンを持つ
ccmesh
オブジェクトで、バージョン 3.6.0.20 で導入された新しい高速サブディビジョン サーフェス実装が有効になりました。 パフォーマンスの向上に加えて、このようなオブジェクトのテクスチャマッピングの品質も向上しました。
- 新しい
mi_query
モード miQ_PRI_ASSEMBLY_INST_TAG
が追加されました。 有効な交差状態では、ヒット プリミティブのアセンブリ リーフ インスタンスが返されます。 ジオメトリがアセンブリに属していない場合、null タグが返されます。 この照会モードは、シェーダが、メイン シーンファイルからのカスタム アトリビュートの継承を実装するのに使用できます。
バグ修正
- マルチホスト レンダリングで、大きな bsp アクセラレーションを使用するシーンでまれに確認されているクラッシュの問題が修正されました。
- マルチホスト レンダリングで、NULL モジュールで発生する可能性があったデータベース統計情報とダンプ レポート タグが修正されました。
- ボリューム シェーダと組み合わせて使用されるラスタライザで、たとえば、物理
parti_volume
シェーダなど、state->pri
が 0 に設定されたシェーダで発生する可能性があるクラッシュが修正されました。
- OpenEXR イメージで、
"A"
チャンネルだけを含む単一チャンネルイメージで生じるクラッシュが修正されました。
バージョン 3.6.2.7 での変更点
バグ修正
- 不正な法線変換から生じる球体およびシリンダ エリア ライトで発生する可能性があったアーティファクトが修正されました。
- BSP2 アクセラレーションで、ジオメトリがヒットしなかった場合に
miState::dist
がゼロに設定されていませんでした。この問題が修正されました。
- オブジェクトライトからの無効なフォトン放出が修正されました。
シェーダの変更
- サブサーフェス スキャタリング シェーダで、インスタンス ライト リストのサポートが有効になりました。
- 物理ライト シェーダで、可視の長方形ライトおよびシリンダ ライトのエネルギー スケーリングが不正であるという問題が修正されました。 この修正は、レイのライトとの交差の色にのみ影響し、シーンのイルミネーションには影響しません。
バージョン 3.6.2.6 での変更点
機能強化
- BSP アクセラレーションで、インタフェースから使用されていない bsp メモリ コントロールが削除されました。
.mi
ファイルから解析した場合、警告が出力されます。
バグ修正
mi_query
の miQ_LIGHT_NORMAL
モードがシリンダ ライトで使用された場合に発生する可能性があったクラッシュが修正されました。
- 輪郭レンダリングと
miState::raster_x/raster_y
を変更するシェーダの組み合わせが使用されている場合に発生するクラッシュの問題が修正されました。 現在レンダリングされているタイルの外にある輪郭は無視されます。
- テクスチャ キャッシュで、あるイメージタイプから同じイメージタイプへのオンザフライ変換が必要であるという誤った情報メッセージが削除されました。
シェーダの変更
- 建築マテリアル シェーダで、輪郭レンダリングが有効な場合に反射と屈折の補間が無効になります。
バージョン 3.6.2.5 での変更点
機能強化
- 複数のフレームバッファを含む OpenEXR 出力ファイルで、チャンネルの命名スキームが変更されました。 カラー フレームバッファ
buffername
で使用されるチャンネル名は、buffername.R
、buffername.G
、buffername.B
、buffername.A
になります。 一次フレームバッファの場合、チャンネル名 R
、G
、B
、A
が引き続き使用されます。
バグ修正
- アセンブリのあるシーンのレンダリングに使用されるBSP2 アクセラレーションで、不要なアセンブリのロードが修正されました。 これにより、メモリ消費の低減に加えて、アセンブリ ロードの並行化が改善されることにより、多数のアセンブリを含むシーンの速度が大幅に上がります。
ccmesh
オブジェクトで発生する可能性があったアーティファクトが修正されました。複数の領域が作成された場合、同じサーフェスの他の領域から誤ったマテリアルが使用されることがあります。
- 単純な
shadow on
モードが BSP アクセラレーションと組み合わせて使用されていた場合、かつシャドウシェーダがレイ トレース関数またはシャドウ トレース関数を呼び出した場合に、レイトレース シャドウのクラッシュが発生する可能性があるという問題が修正されました。
シェーダの変更
- 輪郭シェーダの一部は、Windows プラットフォームにエクスポートされませんでした。この問題が修正されました。
- 建築マテリアルフォトン シェーダで、初期化されていない方向にフォトンがトレースされる可能性があるという問題が修正されました。
- シェーダ ライブラリの日付/バージョンの組み込み文字列が改良されました。
バージョン 3.6.2.3 での変更点
機能強化
- シーンエコーで、不適切な宣言タイプ
object space
の要件が追加されません。
バグ修正
- 3.6.1.3 でのリグレッションが修正されました。
scanline on
、trace off
、volume on
、autovolume on
オプションが組み合わされたシーンは黒くレンダリングされていました。
- BSP2 アクセラレーションを多数のアセンブリと組み合わせて使用する、大規模なシーンで発生する可能性があったクラッシュが修正されました。
- アセンブリ ロードでのマイナーなメモリ リークが修正されました。
バージョン 3.6.2.2 での変更点
機能強化
- ラスタライザで、統計情報の出力が改善されました。
- フレームバッファで、カラー + Z ファイルの C スタイル インタフェースとの後方互換性を保持するため、新しい
useprimary
キーワードが追加されました。
- 一貫性のため、3.6.2.1 で導入された
useopacity
の名前がわずかに変更されました。
バグ修正
- マルチホスト レンダリングで、アニメーション レンダリングのクラッシュが修正されました。 一部のタグで、2 番目以降のフレームに対し、ネットワークを介して古いコンテンツが再転送されていました。
- アセンブリと BSP2 アクセラレーションの組み合わせを使用する、物理メモリに収まらないシーンのレンダリングで、不明なタグ アクセスの致命的エラーが発生する可能性があるという問題が修正されました。
- ラスタライザで、スローモーションのオブジェクトの不要なテッセレーションが増えることによってシェーディングレートが上がり、パフォーマンスが低下する問題が修正されました。
- 3.6.0.30 のリグレッションが修正されました。詳細なシャドウマップで、ライト
shadowmap detail samples
が指定されていない場合に発生するシャドウの欠落が修正されました。
- マルチホスト レンダリングで、フレーム末尾の後に、解放されたメモリへのアクセスが生じる場合があるという問題が修正されました。
- フレームバッファで、欠落していたデフォルトのファイル フォーマットが追加されました。
- C スタイル バッファ インタフェースを使用する Iff および RLA ファイルで、カラー + Z 結合出力が修正されました。
シェーダの変更
バージョン 3.6.2.1 での変更点
機能強化
バグ修正
- マルチ ホスト レンダリングで、レンダリングの終了後すぐにレンダリングホストのリストからスレーブが削除された場合に、クラッシュが発生する可能性があるという問題が修正されました。
- ccmesh テッセレーションで発生する可能性があった、テクスチャ継ぎ目のアーティファクトが修正されました。
- 出力状態と非一次(ユーザ)フレームバッファの特定の組み合わせで、ピクセルあたりのビット数の値が正しく検出されるようになりました。
シェーダの変更
- ベース シェーダで、組み込みのアンビエント オクルージョンをベースとする
mib_fast_occlusion
シェーダが追加されました。
バージョン 3.6.0.32 での変更点
機能強化
- ファイナルギャザーで、連続メモリ ブロックサイズの要件が大幅に低減されました。 これにより、大きなファイナルギャザー マップを使用してレンダリングする 32 ビットマシンでのメモリ使用が改善されます。
バグ修正
- TIFF イメージ ファイル フォーマットで、RGB(アルファなし)イメージのファイルヘッダが修正されました。
バージョン 3.6.0.31 での変更点
バグ修正
- ラスタライザで、オブジェクトごとのシェーディング サンプルが考慮されます。
- アンロードされたアセンブリで発生する可能性があったクラッシュが修正されました。
バージョン 3.6.0.30 での変更点
バグ修正
- マルチホスト レンダリングで、ラスタライザまたはシャドウマップが使用されている場合に発生する可能性があったクラッシュが修正されました。
- 内部メモリ カウントをバイパスしていたメモリの直接割り当て(ライトマップが使用されている場合は大量になります)が修正されました。
- ライトマップレンダリングでの不要なメモリ消費が回避されます。 ライトマップのメッシュ プリミティブに対して呼び出された
mi_state_set_pri
関数により、以前の miState::pri
ヒット ポイントはすべて無効になります。
- ジオメトリ シェーダによってテッセレーションされた
ccmesh
の null タグ アクセスの致命的エラーが修正されました。
- 正射投影カメラで、使用するスプリットオブジェクトの数の不正な決定が修正されました。
- レンダリングの最後に出力されるテッセレーションの統計情報に trilist が含まれています。
シェーダの変更
- 建築マテリアル シェーダで、「アンビエント ライト」(dot_nl が 1 に設定されているシェーダによるライト)が使用されている場合に発生する可能性があったアーティファクトが修正されました。
バージョン 3.6.0.29 での変更点
バグ修正
- 正射投影カメラで、スプリットするポリゴンおよびフリー フォーム サーフェスオブジェクトの、不良なテッセレーション品質が修正されました。
- サブオブジェクト トリミングカーブのクリッピングで、数値安定性を向上することによりトリミング アーティファクトが低減されました。
- フリー フォーム サーフェスの導関数で欠落していたエコーが追加されました。
- ccmesh で欠落していたオブジェクトビュー依存性フラグが追加されました。 複数フレームのレンダリングで欠落していた再テッセレーションが修正されました。
- ファイナルギャザーがラスタライザ(BSP アクセラレーションが使用されており、サンプルモーションが 1 に設定)と組み合せて使用されている場合に発生する可能性があったアーティファクトが修正されました。
バージョン 3.6.0.28 での変更点
機能強化
- サブディビジョン サーフェスで、不良なトポロジ(非二次元多様体)のオブジェクトをインターセプトし、これらを無視することでクラッシュが解消されました。
- raylib 統合: 潜在的な名前競合を回避するためのネームスペースで C++ により JPG モジュールがコンパイルされます。
バージョン 3.6.0.27 での変更点
機能強化
- バージョン 3.6.0.23 で追加された透明度のデプスの制限を使用してレンダリングされてる、デプスの大きい複雑なシーン(ヘアのあるシーンなど)で、ラスタライザのパフォーマンスが大幅に向上しました。
- MetaSL シェーダで、シャドウ シェーダのサポートが追加されました。
バグ修正
- プラットフォーム固有: Windows スレーブ/サテライト ホストを使用するマルチ ホスト レンダリングで生じるフリーズが修正されました。
- 多数のアセンブリのあるシーンで、アセンブリの事前処理が高速化しました。
バージョン 3.6.0.26 での変更点
バグ修正
- ヘアで使用されるプローブ レイとアンビエント オクルージョンのクラッシュが修正されました。
- サブディビジョン サーフェスの折り目とコーナーで欠落していたエコーが追加されました。
シェーダの変更
- 建築マテリアル シェーダで、マルチ出力マテリアルがフェノメナまたはシェーディング ツリーのルート以外の一部として使用されていた場合に生じるクラッシュが修正されました。
- 建築シェーダおよびプロダクション シェーダのドキュメントが改善されました。
バージョン 3.6.0.25 での変更点
機能強化
- 新しい mi_query モード miQ_STAGE が追加されました。 シェーダは結果の照会値を使用して、現在のレンダリング段階を特定できます。 shader.h に有効な値である、normal tile rendering(法線タイルレンダリング)、finalgather precomputing(ファイナルギャザー事前計算)、occlusion cache creation(アンビエント オクルージョンキャッシュ作成)、photon and importon emission(フォトンおよびインポートン放出)、lightmapping(ライトマッピング)がリストされます。
- BSP2 アクセラレーションの冗長さが低減されました。
シェーダの変更
- 建築マテリアル シェーダで、カラー ブリーディング モードでのアンビエント オクルージョンのアーティファクトおよび発生する可能性があるクラッシュが修正されました。
- 建築マテリアル シェーダで、mental ray のカーネルトレース デプスの制限に達した場合、反射と屈折により環境カラーが返されます。 以前の動作(黒色)は、他の mental ray シェーダと一貫していませんでした。 シェーダ固有のトレース デプス制限に達した場合の動作は変更されていません。
バージョン 3.6.0.24 での変更点
機能強化
- 3.6.0.22 で互換性を保持するために導入されたエリア ライトサンプリングパターンの変更が、部分的に元に戻されました。新しいパターンは、サンプル ライト ループの最初のサンプルで(
miTRUE
の代わりに)値 3 を返すライト シェーダによって明示的に有効化する必要があります。 これにより、既知のサンプル数を持つパターンの品質が向上し、同時にスマートライト シェーダで可変のサンプル数を使用できるようになります。
バグ修正
- 長いレンダリングシーケンスでタグ不足の原因となる重大なタグ リークが修正されました。
- アンビエント オクルージョンのファイナルギャザー レイが、ファイナルギャザーの事前計算の段階で無効になっていました。 この問題が解決されました。
- ボリューム シェーダのインスタンス ライト リンクが修正されました。 ライト リストは、ボリューム シェーダで null でになる miState::pri ではなく、miState::instance に従って考慮されるようになりました。 インスタンスのライト リストを取得するためには、インスタンス オブジェクトに現在のレンダリング タイルのレイがヒットする必要があります。
- ディスプレイスメントのない
fine parametric
近似を使用するフリー フォーム サーフェス オブジェクトで、メモリ不足によるクラッシュが発生する可能性があるという問題が修正されました。
- スカラー テクスチャのエコーが修正されました。
- マージ グループのレンダリングでのクラッシュが修正されました。
ccmesh
で、価数が 64 を超える頂点で発生する可能性があったクラッシュが修正されました。
- オブジェクトエリア ライトのアーティファクトが修正されました。
- raylib 統合のみ: オプション、カメラ、およびレンダリング呼び出しが複数のスレッドからアクセスされた場合に発生するフレームバッファ統合の問題が修正されました。
シェーダの変更
- プロダクション マット シェーダで、反射に見られるオブジェクトへの環境反射が欠落している問題が修正されました。 デフォルトのシェーダ パラメータ値が改善されました。
- プロダクション シェーダ
mip_motion_vector
で、raw_floating_point
引数が floating_point_format
という名前に変更され、タイプが整数に変更されました。 有効な値は 0(浮動小数点の書き込みなし)、1(raw 浮動小数点ピクセル値を書き込み、旧 "on" 値と同様)、2(x
コンポーネントがピクセルアスペクト比を考慮)です。
- 建築マテリアルで、NaN の報告が向上しました。最初の報告だけが出力され、従属する報告は出力されません。
バージョン 3.6.0.23 での変更点
本バージョンから、シェーダ パッケージの変更は個別のリストで示されます。
機能強化
- ラスタライザで、デプスの複雑さを制限するための文字列オプション
"rast transparency depth"
と対応する -rast_transparency_depth
が追加されました。 デプスの高いシーンでは、このオプションを使用することで、レンダー イメージには目立つ変更を与えることなくパフォーマンスを大幅に向上することができます。
- ラスタライザで、文字列オプション
"motion factor"
とコマンド ライン オプション -motion_factor
が、一貫性を取るため "rast motion factor"
と "-rast_motion_factor"
という名前に変更されました。
- 同じシーンがラスタライザありとラスタライザなしで 2 回レンダリングされた場合に、ディスプレイスされたジオメトリで発生する差異が小さくなりました。
- フリーフォーム サーフェスで、C1 不連続性の検出のパフォーマンスが向上しました。
バグ修正
- インスタンスで定義されたシェーディング サンプルの継承が修正されました。
- サブディビジョン サーフェスで、インスタンスの欠落の原因となる初期化されていないモーション バウンディング ボックスが修正されました。
- 一次フレームバッファが明示的に仮定された場合、ユーザ フレームバッファは作成されませんでした。 この問題が解決されました。
シェーダの変更
- 建築ポータル シェーダで、
"multiplier"
引数のセマンティクスが調整されました。 "visible"
シェーダ引数が設定されている場合、放出されたライトに加えて、可視のライトサーフェスにも適用されます。
- 建築丸角シェーダが、ベクトルを返すよう変更されました。
"bump_mode"
パラメータと "bump_vector"
パラメータが追加されました。 "bump_mode"
は、ベクトル引数と戻り値のセマンティクスを定義します。 モード 0(デフォルト)の場合、シェーダは後方互換となる動作をし、法線自体を摂動させます。 モード 1 では、引数として "bump_vector"
を受け取り、変更したバンプ ベクトルを返します。
- 建築環境ブラー シェーダで、強いブラーの品質が向上しました。
バージョン 3.6.0.22 での変更点
機能強化
- 新しい高速の
ccmesh
実装にシャープな折り目が追加されました。
- エリア光源のサンプリング パターンが変更されています。
mi_sample_light
ループを使用するマテリアル シェーダは、正確な 2 の累乗個のサンプルが取得された後、大きなバイアスを受けることなくループをブレイクできます。
ccmesh
で、メモリ消費量が低減され、サブオブジェクトにスプリットされないオブジェクトのパフォーマンスが向上しています。
バグ修正
ccmesh
で、テクスチャの継ぎ目で発生する可能性があった不正なテクスチャリングが修正されました。
ccmesh
で、発生する可能性があった不正なバウンディング ボックスが修正されました。
- ラスタライザで、ボックスフィルタが常にサイズ 1 を使用していました。この問題が修正されました。
バージョン 3.6.0.21 での変更点
バグ修正
- chained ユーザ データブロックのインクリメンタル変更でのフリーズが修正されました。
- サブディビジョン サーフェスのパラメトリック近似での、不正な最大サブディビジョン レベル クリッピングが修正されました。
- テッセレーションされたサブディビジョン サーフェスのエコーで、raylib の終了時のフリーズが修正されました。
- 建築の空のシェーダで、太陽が部分的に地平線よりも下にある場合に発生するアーティファクトが修正されました。
バージョン 3.6.0.20 での変更点
機能強化
- 三角と四角が混在するサブディビジョンスキームをベースとする完全に新しいサブディビジョン サーフェス実装が追加されました。 この新しい実装は、以前のものより数倍高速です。
この新しい実装では、以下の近似タイプがサポートされています。
parametric
[fine] [view] length [min max]
バージョン 3.6.0.20 では、以下の特性を持たない三角、四角の ccmesh
入力オブジェクトに新しいコード パスが使用されます。 この新しい高速実装でのこれらの特性のサポートは、今後のバージョンで追加される予定です。
- シャープな折り目(バージョン 3.6.0.22 で追加)
- ややシャープな折り目
- 頂点機能
ccmesh
での n 角形ポリゴン(三角、四角以外)(バージョン 3.6.2.8 で追加)
上記の特性のいずれかを含むオブジェクトまたは他の近似タイプには、mental ray 3.5 ベースのサブディビジョン サーフェス実装が使用されます。
- BSP2 アクセラレーションで、マスター bsp ツリー デプスのコントロールを改良することにより、多数の小さいオブジェクトを含むシーンのパフォーマンスが向上しました。
- プロダクション シェーダが新しいフレームバッファ インタフェースを使用するよう変更されました。
バグ修正
- アセンブリ プレースホルダのコールバックで、
miState::global_lock
が初期化されていませんでした。 これは、バージョン 3.6.0.18 で修正が終了しました。
バージョン 3.6.0.19 での変更点
機能強化
- フレームバッファが新しいインタフェースでエコーされます。
バグ修正
mi_api_framebuffer_add function
で、filetype および filename 引数に null を指定できるようになりました。 これにより、関連付けられたイメージ ファイルを持たないフレームバッファを C スタイル API で宣言できます。
- インスタンス ライト リストと組み合わせたヘアのレンダリングで発生する、タイル アーティファクトが修正されました。
- ヘアのレンダリングで、ヘア サブディビジョンが原因で 2 回シェーディングされた半透明なヘアのひずみに生じるアーティファクトが修正されました。 ヘアレンダリングのパフォーマンスが向上しました。
- ユーザ データ ブロック エコーの不正な構文が修正されました。
- 内部スタックのオーバーフローチェックが
mi_call_shader
関数呼び出しを除き、機能していませんでした。 この問題が解決されました。
- アセンブリとオブジェクトインスタンスの両方を含むシーンで、ジオメトリが欠落する問題が修正されました。
- 建築マテリアル シェーダで、最近追加された反射の不正なバンプ マッピングが修正されました。
バージョン 3.6.0.18 での変更点
バグ修正
- 出力シェーダを持つカメラで、2 番目のフレームでの不明なタグの致命的エラーが修正されました(バージョン 3.6.0.17 で発生したエラー)。
- カメラ出力とフレームバッファのエコーが修正されました。 このエコーは、mental ray 3.5 互換性構文を使用し、新しいフレームバッファ構文へのスイッチが後ろに続きます。
- ジオメトリ シェーダとアセンブリの呼び出しで、
miState::global_lock
が初期化されていませんでした。 この問題が解決されました。
- 建築ポータル ライト シェーダで、スキャンライン レンダリングが使用されている場合に発生する可能性があったアーティファクトが修正されました。
- 建築丸角シェーダで、スケールされたオブジェクトで発生する可能性があったアーティファクトが修正されました。
- 互換性複数出力モードで使用される建築マテリアル シェーダで、"specular" から "translucency" への不正な接続が修正されました。
バージョン 3.6.0.17 での変更点
機能強化
- BSP2 アクセラレーションで、ローカルオブジェクト bsp ツリーのヒューリスティックが向上しました。
バグ修正
mi_trace_probe
がマテリアルのないオブジェクトにヒットした場合のクラッシュが修正されました。
- フレームバッファによって、レンダリングに使用され、レンダリング終了後に正しくクリーンアップされる
miCamera::output
リストがプリペンドされます。 これにより、複数フレームのレンダリングで発生する可能性があった、不明なタグ評価の致命的エラーが解決されます。
- バージョン 3.6.0.16 のリグレッションが修正されました。ファイルへの出力が指定されていない場合、ユーザ フレームバッファが作成されませんでした。
- バージョン 3.6.0.16 のリグレッションが修正されました。インクリメンタル カメラで、出力ステートメントは蓄積されなくなります。
-finalgather_display
モードでのクラッシュが修正されました。
- サブサーフェス シェーダ: シェーダの複数出力バージョンでの初期化されないアルファ チャンネルが修正されました。
- 建築マテリアル: マテリアルのないオブジェクトを含むヘアおよびシーンで発生する可能性があったクラッシュとアーティファクトが修正されました。
バージョン 3.6.0.16 での変更点
機能強化
- ディスプレイスメントとともに使用される、またはラスタライザで使用される trilist オブジェクトでのメモリ消費量が大幅に低減されました。
- 以下の新しい関数が追加されました。
miBoolean mi_api_framebuffer_add(
miTag buffertag,
char *datatypes,
char *filetype,
float *fileparams,
char *filename);
これらは、C スタイルフレームバッファ API で使用します。 関数 mi_api_output_file_parameter と mi_api_output_file_def は廃止される予定です。 パーサは、新しい関数を使用するよう変更されました。
- 複数出力をサポートする建築マテリアル シェーダの拡張版 mia_material_x が追加されました。他のシェーダ パッケージとの統合を改良するバンプ入力引数が追加されました。
- プロダクション シェーダで、新しいシェーダ mip_gamma_gain が追加されました。これは、カラーにガンマを掛けたり適用したりするシンプルなシェーダです。 ヒット タイプ(背景、その他など)に基づいて選択を行う新しい mip_rayswitch_environment シェーダが追加されました。 ミラーおよびグレー ボール環境マップのシェーダが追加されました。 マット シャドウでは、インスタンス ライト リスト、複数出力、アンビエント オクルージョン、グレースケール シャドウ受影、およびいわゆる照明(実際にマットオブジェクトを照射する 2 番目のライト リスト)のサポートが追加されました。
- 高速サブサーフェス スキャタリング シェーダに複数出力が追加されました。
- スペクトル レンダリングで、スペクトルシェーダ引数を(インタリーブされた)波長のリストおよび値として直接指定できます。
- 文字列ルックアップ(検索パス リストなど)で未定義のレジストリまたは環境変数が使用された場合、文字列全体が空の文字列であるとして評価されていました。 レジストリ名がアンダースコアで始まる場合、これは暗黙的に行われていました(デバッグメッセージのみ)。 この動作が、レジストリだけを空の文字列として評価するよう変更されました。 これにより、特に .rayrc 構成ファイルが見つからない場合やこのファイルに標準レジストリが含まれていない場合の有用性が向上します。
- BSP2 アクセラレーションで、ショットされた視点からのレイあたり 100万 レイの制限が追加されました。 これにより、シェーダが周期的なヒット シーケンスの原因となる複数の連続および透明レイをトレースする場合に、まれに発生する問題の重大度が低下します。
バグ修正
- ユーザ フレームバッファ宣言で mental ray 3.5 互換性フレームバッファ api が使用されている場合に、クラッシュとフレームバッファの欠落が発生するという問題が修正されました。
- ラスタライザで、シェーダの state->pri が 0 に設定されている場合に発生する可能性があったクラッシュが修正されました。
- シーン内のすべてのライトを含むインスタンス排他シャドウ ライト リストの不正な処理が修正されました。
- BSP2 アクセラレーションで使用される mi_trace_continue 関数で発生する可能性があったアーティファクト(ヒットの欠落)が修正されました。 初期レイの原点からのオフセットが 2 回適用されていました。
- いくつかのメモリ リークが修正されました。
- 64 ビットの Linux で動作する 32 ビット実行ファイルのマルチコアカウントが修正されました。
- autovolume が使用されている場合にラスタライザで発生する可能性があったクラッシュが修正されました。
- ファイナルギャザーで、何もヒットしなかった場合に state->pri が 0 に正しく設定されないことがありました。 これは、特定の環境シェーダでアーティファクトの原因になっていました。
- ファイナルギャザーがアセンブリと組み合わせて使用された場合のクラッシュが修正されました。
- ファイナルギャザーがライトマッピングおよび BSP アクセラレーションとともに使用された場合に、クラッシュが発生する可能性があるという問題が修正されました。
- レイ トレーシングがフェノメナ要件またはファイナルギャザーなどのテクニックによって有効化された場合、アクセラレーションは自動的に BSP2 に設定されなくなりました。
- BSP2 アクセラレーションで、三角形が少なく多数のオブジェクトがあるシーンで、bsp コンストラクションが明らかに非効率である問題が修正されました。
- ヒットの精度に強く依存するヘア シェーディングのヘア レンダリングで、アーティファクトが発生する可能性があるという問題が修正されました。
- スペクトル レンダリングで、入力スペクトルの波長がソートされます。
- スペクトル レンダリングで、スペクトル シェーダ引数が正しくエコーされるようになりました。 エコーされたリストには、内部計算に使用される波長と値が含まれます。
- プラットフォーム固有: Windows で、アセンブリを持つシーンに mi_trace_continue が使用されている場合に発生する可能性があったクラッシュが修正されました。
- プラットフォーム固有: GCC4 ビルドで、壊れたデシリアライズによりネットワーク レンダリングで発生する、無限の再起呼び出しまたは空のタイルが修正されました。
バージョン 3.6.0.14 での変更点
機能強化
- mi_trace_eye 関数で、交差テストの前に state->pri が null に初期化されます。 これにより、複数の視点からのレイをショットするチェーン化されたレンズシェーダでアーティファクトが発生する可能性があるという問題が修正されました。 視点からのレイをトレースする前にシェーダの state->pri が null に設定されているため、physical_lens_dof シェーダの動作には影響しません。
- BSP2 アクセラレーションで、深くネストされた再帰を防ぐため、単一の視点からのレイによって生成できるレイの合計数に厳しい制限が追加されました。 これまでは、再帰デプスのみコントロールできました。
- ローカルでフィルタされたテクスチャにピラミッドが含まれておらず、イメージフォーマットでテクスチャ キャッシュがサポートされている(OpenEXR、Iff 、BMP など)場合、このようテクスチャはキャッシュできないことを示すメッセージが警告から情報にダウングレードされました。
バグ修正
- 古い mental ray 3.5 互換性インタフェースで作成されたユーザ フレームバッファと出力シェーダの特定の組み合わせで生じるクラッシュが修正されました。
- アセンブリと組み合せて使用されるファイナルギャザーのクラッシュが修正されました。
- C++ クラスの new 演算子と STL コンテナアロケータのメモリ配分の一部は、malloc 呼び出しで直接行われていました。 これらは、mi_mem_allocate を使用するよう変更されました。 これにより、メモリ統計情報の誤りと、mental ray メモリ制限が設定されていない場合に malloc で発生する可能性があったクラッシュが修正されました。
- プラットフォーム固有: Mac OS X で、DDS イメージ読み込みで生じるクラッシュが修正されました。
- ネットワーク転送でのメモリ リークが修正されました。
- 空のタイルのラスタライザで生じるマイナーなメモリ リークが修正されました。
- large bsp アクセラレーションが使用されている場合に発生する可能性があったクラッシュが修正されました。
バージョン 3.6.0.12 での変更点
機能強化
- ライブラリの統合: フレームバッファセットの内部表現がクリーンアップされました。 miRCQ_FB モードの mi_rc_run_query が戻ったときのタグ/ポインタ キャストが不要になりました。
バグ修正
- ディスプレイスメントのある小さな trilist オブジェクトで発生する可能性があったメモリ リークが修正されました。
バージョン 3.6.0.11 での変更点
機能強化
- パーサが、Reality Server® での使用のために Reality Designer™ プラグインによって生成された文法を許可するよう変更されました。 ほとんどの拡張子が無視され、オプションアトリビュートは文字列オプションにマップされます。
- ラスタライザと組み合わせたポリゴン ディスプレイスメントのパフォーマンスが向上しました。
バグ修正
- 誤って削除された -fb_virtual コマンド ライン オプションが復元されました。
- シャドウマップで作成されたシャドウのモーション ブラーの欠落が修正されました。
- 名前付きチェーンレンズ、カメラのボリューム シェーダと環境シェーダ、およびマテリアルのすべてのタイプの名前付きチェーンシェーダのインクリメンタル変更: インクリメンタル変更の解析後にチェーンが壊れるのを防ぐため、.mi パーサが変更されました。 このようなシェーダは複数のチェーンでは使用できないため、名前付きチェーン シェーダの使用が強く推奨されています。
バージョン 3.6.0.10 での変更点
機能強化
- miSHADERSTATE_STATE_INIT モードで呼び出された状態シェーダで、miState::type が正しく初期化されます。 これは、フォトン放出、ライトマップ、または出力シェーダの段階を検出するために状態シェーダによって使用することができます。
- miState::cache は、交差の最適化に使用されなくなりました。 互換性を保持するためメンバーは保持されますが、廃止される予定です。 マーカ機能(マニュアルに記載されているとおり、特定のシェーダ タイプでレイトレース機能を呼び出せるようにするため miState::cache を 0 に設定)は引き続き使用できます。 この変更により、パフォーマンスがわずかに向上します。
- デバッグバージョンのみ: データベース関連コードの使用が改良されました。
- mi_shaderstate_get 関数のパフォーマンスが向上しました。 この関数は、特定のシェーダ パッケージでよく使用されます。
バグ修正
- マルチホスト レンダリングで、以前のバージョンで組み込まれたネットワーク接続エラーが発生する可能性があるという問題が修正されました。
- マルチホスト レンダリングで、Framebuffer データベース タイプのネットワーク転送が修正されました。
- mi_opengl.so ロードエラーが修正されました。
バージョン 3.6.0.9 での変更点
機能強化
- シャドウ シェーダとして呼び出された場合の misss_physical シェーダの動作が改良されました。 このような場合、material パラメータが評価されます。 これにより、material パラメータにアタッチされたシェーダをシャドウ シェーダとして使用できる場合の有用性が向上します。
- シェーダおよびフェノメナの呼び出しを担当する PHEN モジュールのパフォーマンスが向上しました。
- フリーフォーム サーフェスサブディビジョンのパフォーマンスがわずかに向上しました。
バグ修正
- ヘアのあるシーンでのフォトン放出が使用されている場合に発生する、クラッシュの問題が修正されました。
- シェーダがシャドウ シェーダからライト サンプリングを呼び出し(これは違反操作です)、セグメント シャドウ モードが使用されている場合に発生するスタック オーバーフロー クラッシュが修正されました。
- mi_mem_set_allocator は、割り当て、再割り当て、および解放の関数を正しく上書きしていませんでした。 この問題が解決されました。
バージョン 3.6.0.8 での変更点
新機能
- アンビエント オクルージョンのキャッシュが追加されました。 このキャッシュは、各パスが前のパスを洗練する複数のパスで、イメージ タイル レンダリングの前に作成されます。 以下の文字列オプションを使用して、アンビエント オクルージョンのキャッシュをコントロールできます。
- "ambient occlusion cache": キャッシュを有効にします。 off に設定した場合、アンビエント オクルージョンパスはスキップされ、各 mi_ambient_occlusion 関数呼び出しでオクルージョン値が計算されます。 デフォルトは off です。
- "ambient occlusion cache density": すべての洗練パスの後、ピクセルあたりのポイント数として、アンビエント オクルージョン ポイントの最大密度を指定します。 デフォルトではアンビエント オクルージョン ポイントはピクセルあたり 1 つです。
- "ambient occlusion cache points": 補間に使用されるアンビエント オクルージョン ポイントの数を指定します。 デフォルト値は 64 です。
対応するコマンド ライン オプションが追加されています。それぞれ、-ao_cache、-ao_cache_density、および -ao_cache_points に略されます。
機能強化
- BSP2 アクセラレーションで、モーションのオーバーサンプリングのサポートが追加されました。
- BSP2 アクセラレーションを使用するモーション ブラー シーンのパフォーマンスとサポートが向上しました。
- BSP2 アクセラレーションの性質上、bsp デプスとリーフのサイズは自動的に構成されます。 このため、bsp 診断モードは無関係です。 これらは、パフォーマンスを向上するため、BSP2 で削除されます。
- アンビエント オクルージョンで、アンビエント オクルージョン値を計算するのに使用するレイの数と、キャッシュ補間で使用されるポイントの数を区別するため "ambient occlusion samples" 文字列オプションが "ambient occlusion rays" という名前に変更されました。 実験的な文字列オプション "ambient occlusion spread"、"ambient occlusion spreadexp"、"ambient occlusion near"、および "ambient occlusion far" が削除されました。 miAmbient_occl 構造体で、samples メンバーが rays という名前に変更され、cache_points メンバーが追加されました。
- DISP モジュールのレンダリング タイル数について、指数関数的な複雑さが取り除かれました。 これにより、解像度が高くタイルサイズの小さいシーンが大幅に高速化されます。
- ラスタライザおよびスキャンラインレンダリングで、最大ディスプレイスメント値が非常に低く displace presample オプションを使用していないディスプレイスメント付きのシーンのパフォーマンスが大幅に向上しました。
- インポートンのコマンド ライン オプションが追加されました。
- 建築マテリアル シェーダで、透明オブジェクトのシャドウ品質が向上しました。 古いバージョンでは、"total internal reflection" が考慮されており、これによりガラス オブジェクトのシャドウが完全な黒になることがありました。 新しいバージョンのシェーダでは、少し明るいシャドウがレンダリングされるため視覚的印象が向上し、物理的に正しいシャドウに近いものとなります。 物理的に正しいライティングは、コースティクスでのみ得られることに留意してください。
- 建築マテリアル シェーダで、一次レイの法線ベクトル方向を無視するようシェーダに強制する 2 つの新しいモードが thin_walled パラメータに追加されました。 thin_walled が 2 に設定されている場合、ヒットしたオブジェクトはソリッド(厚い壁を持つ)ガラスとして処理されますが、視点からのレイがヒットしたサーフェスは法線の方向にかかわらずガラスの外側にあるものとみなされます。 モード 3 も同様で、一次レイの相互作用は媒質内にあるものとしてレンダリングされます。これは、水中ショットのレンダリングに便利です。
- 建築マテリアル シェーダで、mode パラメータが 4 に設定されている場合に、インスタンス ライト リストのサポートが追加されました。これは、他のシェーダで使用される mode 規則に従います。
バグ修正
- ヘア オブジェクトで欠落していたインスタンス シャドウ ライト リストの処理が追加されました。
- ボリューム シェーダでは、mi_instance_lightlist が常に空のライト リストを返していました。 この問題が解決されました。
- フレームバッファのピクセルあたりのビット値が出力ファイルで要求されたものとは異なる場合に、CT イメージ ファイル フォーマットのイメージ出力が壊れるという問題が修正されました。
- グリッド アクセラレーションが指定されている場合のクラッシュが修正されました。BSP2 アクセラレーションへのマッピングは正しく行われます。
- ボリューム フォトンを含むシーンのフォトン放出でのクラッシュが修正されました。
- カメラに filename を持たない framebuffer が指定された場合のクラッシュが修正されました。
- mi::shader::Framebuffer::get_index() から返される不正なインデックスが修正されました。
- レンダリングの開始時に出力されるオプション バナーによって、ファイルへの書き込みに使用されるフレームバッファだけでなく、すべてのフレームバッファがリストされます。
バージョン 3.6.0.7 での変更点
機能強化
- パフォーマンスを向上する複数の変更が行われました。
- カラー ユーザ フレームバッファのクリッピング方法が変更されました。 メインのカラー バッファと同じクリッピングを使用する代わりに、各ユーザ フレーム バッファのビット デプスが個々に考慮されるようになりました。
バージョン 3.6.0.6 での変更点
新機能
機能強化
- BSP2 アクセラレーションのパフォーマンスが向上しました。
- TARGA イメージフォーマットで、RGBA イメージ ファイルヘッダのイメージ記述子バイトは TARGA 仕様(TARGA32 サブフォーマット)で推奨される「8ビットアトリビュートデータ」に設定されます。
バグ修正
- ネットワーク レンダリングで、BSP2 アクセラレーションが使用されている場合に発生する可能性があったフリーズとクラッシュが修正されました。
- レイトレース シャドウが使用されている場合に発生する可能性があったシャドーのアーティファクトが修正されました。
- オブジェクト エリア ライトが修正されました。
バージョン 3.6.0.5 での変更点
機能強化
バグ修正
- いくつかのメモリ リークが修正されました。
- 大規模なシーンをレンダリングするときにクラッシュの原因となる不正なピンカウントが修正されました。
- ラスタライザおよび BSP2 アクセラレーションで、アセンブリ内のオブジェクトの不正な変換が発生する可能性がある問題が修正されました。
- アセンブリで使用される BSP2 アクセラレーションで発生する可能性がある自己交差アーティファクトが修正されました。
- 可視のエリア ライトで発生する可能性がある不正な変換が修正されました。
- シェーダが mi_trace_continue 関数を使用した場合にラスタライザで生じるクラッシュが修正されました。
- ラスタライザのフィルタリングで発生する可能性があったメモリ破損が修正されました。
- -o コマンド ライン オプションが使用されており、出力シェーダ ステートメントが存在する場合に出力が欠落する問題が修正されました。
- autovolume モードでのボリュームレンダリングで発生する可能性があったクラッシュが修正されました。
- 正射投影カメラがラスタライザで使用されている場合に発生する可能性があったシェーディングのアーティファクトが修正されました。
バージョン 3.6.0.3 での変更点
新機能
- アセンブリ サポート。 アセンブリは、バウンディング ボックスにアタッチされたサブシーンで、バウンディング ボックスにレイがヒットしたときに要求に応じてロードされます。または、ラスタライザが使用されている場合、アセンブリはレンダリング タイルに含まれており、完全にはオクルードされません。 メモリが不十分である場合、アセンブリは自動的にアンロードされ、次に必要になったときにリロードされます。
アセンブリには、オブジェクト、インスタンス、グループに加えて、テクスチャ、マテリアル、シェーダ、フェノメナ、ライト プロファイル、およびその他のシーン要素を含む、すべてのシーン DAG 要素が含まれます。 ライトとカメラもアセンブリに含めることができますが、これらはレンダリング処理では無視されます。 このため、シェーダとインスタンス ライト リストは、メイン シーンのライトのみを参照する必要があります。 この要件は、レンダリング カーネルが、異なるアセンブリまたはメイン シーンのオブジェクトにライトを適用するときに、すべてのアセンブリがロードされるまでこれらを認識しないことによるものです。 アセンブリ内の mental ray 3.6 ライトは、そのアセンブリ内のジオメトリを照射しませんが、この制限は後のバージョンで取り除かれる可能性があります。
アセンブリは、ジオメトリ シェーダ呼び出しの結果としてプロシージャルに作成できます。または .mi ファイルからロードすることもできます。
ジオメトリ シェーダは、アセンブリ コンテキストを作成する場合は要求に応じて呼び出され、アセンブリをアンロードする場合は複数回呼び出されることもあるコールバックを登録できます。 API は、プレースホルダ オブジェクトのコールバックに似ています。 詳細は、マニュアルのAssembly APIセクションに記載されています。
メイン シーンにファイル アセンブリを追加するには、以下の構文を使用する必要があります。
assembly "assembly_name"
box [min_x min_y min_z max_x max_y max_z]
[ motion box [min_x min_y min_z max_x max_y max_z] ]
file "file_name"
end assembly
個々のパラメータについて以下に説明します。
- box ステートメントは、アセンブリの空間内でアセンブリのバウンディング ボックスを指定します。 これは、アセンブリ空間に変換されるアセンブリで定義されたすべてのジオメトリ オブジェクトのすべてのバウンディング ボックスを結合したものです。 アセンブリをロードしないとバウンディング ボックスの計算は不可能であるため、box パラメータは常に指定する必要があります。
- motion box は box に似ていますが、すべてのモーション ベクトルの最小/最大コンポーネントを含んでいます。 モーションを含むアセンブリでは、モーションボックスを必ず指定する必要があります。 オブジェクト モーションのバウンディング ボックスとは異なり、アセンブリ モーションのバウンディング ボックスはオブジェクトのモーション ベクトルだけでなく、アセンブリ内のモーション変換も考慮しなくてはなりません。
- file ステートメントは、サブシーンが格納されるファイルの名前を指定します。 ファイルの検索先とするディレクトリのリストは、-assembly_path path_list コマンド ライン オプション、{_MI_REG_ASSEMBLY} レジストリ、または MI_ASSEMBLY_PATH 環境変数で指定できます。
アセンブリ ファイルは、末尾にルート ステートメントを含める必要があります。
root "group_name"
グループ "group_name" は、アセンブリのメイン シーンにアタッチされます。
ネストされたアセンブリはサポートされません。
詳細は、マニュアルのAssemblyセクションに記載されています。
現在バージョンの既知の制限
- 標準の BSP ツリーは、アセンブリをサポートしません。 以下に説明する新しい BSP2 アクセラレーションは、レイトレースに使用されます。
- アセンブリのアンロードが不安定です。 特に、アンロードの際に、名前のないシェーダとマテリアルでマイナーなメモリ リークとタグ リークが発生する可能性があります。
- アセンブリの終了コールバックが呼び出されません。
注: オブジェクトとは異なり、アセンブリにはデフォルトで有効になっている visible、trace、shadow などのフラグはありません。 シーンの事前処理で、継承ルールがアセンブリのアタッチメント レベルまで適用されます。 これは特に、アセンブリのインスタンス(またはより高い階層レベルの特定のインスタンス)は、明示的に設定された対応するフラグを持っている必要があることを意味します。 アセンブリ内の継承は、アセンブリのロード時にのみ適用されます。
- MetaSL サポート。 MetaSL は、現在および将来のシェーディング要件をターゲットにした強力なシェーディング言語です。mental images 社の製品である mental mill® を使用すると、MetaSL シェーダを作成し、シェーダ グラフやフェノメナをグラフィカルに編成できます。 mental mill 独自のコンパイラ テクノロジにより、シェーダおよびフェノメナの抽象構文ツリー表現が生成されます。 次にこれらは、mental mill によってソフトウェアおよびハードウェア シェーダ ライブラリに変換されます。 ソフトウェア シェーダは、通常のダイナミック ライブラリとしてリンクされます。
mental mill は、mental ray の一部ではないことに注意してください。 mental mill で作成されたシェーダ ライブラリは、mental ray によって C++ などの標準的なプログラミング言語でコンパイルされた「ネイティブ」のシェーダと同じように使用されます。
mental ray シェーディング機能は、MetaSL シェーダを十分にサポートするよう拡張されました。
ネイティブ シェーダと MetaSL シェーダを同じシーンで混合して使用することも可能です。 また、「ネイティブ」のソフトウェア mental ray シェーダと MetaSL シェーダを、レンダリング時にシェーダ ツリーまたは mental ray フェノメナに結合することもできます。
- 新しい BSP アクセラレーション テクニック。 BSP アクセラレーション テクニックは、大規模な BSP ツリーを効率的にレンダリングすることを目的として開発されました。 これは、"-acceleration bsp2" コマンド ライン オプションまたは .mi ファイルの "acceleration bsp2" オプションで有効化できます。
従来の BSP アクセラレーション(現在も使用可能)とは異なり、この新しいテクニックは、BSP トラバーサル パフォーマンスやメモリ消費を向上するための手動調整を必要としません。 シーンによっては、新しい BSP2 ツリー アクセラレーションのほうが従来のものより速い場合と遅い場合(小さいシーン)があります。 ただし、メモリの要件は格段に低くなります。 このため、大規模なシーンのレンダリング、特にマシンの物理メモリに収まらないシーンやアセンブリを含むシーンのレンダリングには新しい BSP2 が推奨されます。 新しい BSP2 アクセラレーション テクニックをアセンブリを含むシーンで使用した場合、アセンブリごとに独立したツリーが作成されます。 これにより、アセンブリがメモリからアンロードされる場合、bsp に関連付けられたすべての構造は完全に削除することができます。
現在バージョンの制限: モーションを含むシーンでは、時間のコントラストのオーバーサンプリングはまだサポートされていません。
- インポートン。 インポートンはフォトンによく似た「パーティクル」です。 ただし、これらはカメラから放射され、逆の順序でシーンをトラバースします。 これらは「エネルギー」の代わりに、最終イメージへの寄与の重要度である品質を保持します。 カーネルはインポートンからの情報を使用して、レンダーするイメージへの最終的な寄与度に従ってレンダリング エフォートを配分します。これは重要度主導型のサンプリングと呼ばれます。 インポートンはこのため、新しいビュー依存の間接イルミネーション テクニックの基盤となります。 このようなテクニックの最初の 1 つとして、mental ray 3.6 は、以下に説明する重要度主導型のフォトン マップを追加します。 その他のテクニックも開発中です。
インポートン放出は、フォトン放出とタイル レンダリングの前に行われます。 インポートンをコントロールする文字列オプションは以下のとおりです。
- ブーリアン "importon" は、インポートン放出を有効化します。 デフォルト値は off です。
- 浮動小数点 "importon density" は、カメラから放出されるピクセルあたりのインポートンの数をコントロールします。 このオプションの現在の実装での最小値は 0.02 です。これは、50 ピクセルあたり約 1 インポートンにあたります。 デフォルト値および推奨値は 1 です。 値が低いほど、インポートン放出の速度が上がりますが、最終イメージの品質も下がります。
- 浮動小数点 "importon merge" は、ワールド空間の距離で、この距離内にあるインポートン同士がマージされます。 デフォルト値は 0.0 で、マージは無効になります。
- 整数 "importon task size" は、インポートン放出ジョブのピクセル サイズをコントロールします。 デフォルト値は 64 です。ほとんどの場合、インポートン放出にかかる時間はイメージのレンダリングよりもずっと短くなります。このため、これは微調整のためのオプションです。
- 整数 "importon trace depth" は、シーン内のインポートンの拡散をコントロールします。 ゼロに設定した場合、インポートンは拡散バウンス上で散乱しません。 一部のケースでは、拡散バウンスを複数使う必要があります。 たとえば、ファイナルギャザーとの組み合わせで使用されている場合、または "importon traverse" オプションが off に設定されている場合です。
- ブーリアン "importon traverse" は、on に設定されている場合、カメラからトレースされるインポートンの特殊な動作を有効にします。 このようなインポートンは、完全に不透明なジオメトリにもブロックされません。 代わりに、これらのインポートンは、カメラから無限に放射されるレイ上にあるジオメトリとのすべての交差で格納されます。 このため、シーンで格納されるインポートンの数は非常に大きくなります。 ただし、camera関数への可視性によって生じる、インポートンの配分での不連続性が取り除かれます。
既存のフォトン シェーダのほとんどは、そのままの状態でインポートンを使用できます。
現在バージョンの制限: インポートン放出は、魚眼レンズなど視点からのレイの方向を著しく変更するレンズ シェーダでは正しく機能しません。
- 重要度主導型のフォトン マップ。 上で説明したインポートン マップをベースとするテクニックが実装されました。 このテクニックは、mental ray 3.5 で導入されたフォトン マージよりも優れています。 インポートンが有効になっている場合、これらを使用して、グローバル イルミネーション マップの密度をコントロールし、ルックアップ時間を向上できます。
インポートンが有効な場合、"globillum merge" オプションは効力を持ちません。 代わりに、マージの密度は、インポートンのマージ距離によってコントロールします。
フォトン マップのマージと同じく、通常、シーンに放出されるフォトンの数はマップに格納されるフォトンの数よりもかなり多くなります。 シンプルなフォトンのマージとは異なり、マージ後のフォトン マップには制限があります。フォトンは、これに近いインポートンが見つかった場合にのみ、フォトン マップに保持されます。 これにより、シーンに格納されるフォトンの数がインポートンの数を大きく超えることができず、またフォトンの数は、イメージ解像度および "importon density" 文字列オプションの値に単純に依存するため、フォトン マップのサイズは自然に制限されます。
付加的な効果として、フォトン カウントが減少するため、フォトン マップのルックアップが高速化します。 最終イメージへの寄与度に基づいてフォトンを配分することで、結果のビジュアル品質が大幅に向上します。 オブジェクトの輪郭およびカメラからのオクルージョンのエッジのアーティファクトを防ぐため、"importon traverse" オプションは on に設定することをお勧めします。
現在の実装では、インポートンはフォトン マップの作成にのみ使用されます。 このため、インポートンは、フォトン放出が終了すると破棄されます。
アンビエント オクルージョン。 アンビエント オクルージョンのネイティブ実装が追加されました。 シェーダは以下の新しい関数を呼び出すことができます。
miScalar mi_ambient_occlusion (
miState *state,
struct miAmboccl_options *amboccl_options,
miVector *bent_normal);
オプションの bent_normal 引数には、null 以外の場合、オクルードされない方向の平均が入れられます。 アンビエント オクルージョン オプションの構造体は以下のとおりです。
struct miAmboccl_options {
int size; /* size of the structure */
int rays; /* number of probe rays */
miVector axis; /* the axis for the cone */
miScalar spread; /* cosine of the spread angle */
miScalar spread_exp; /* the exponent of the cosine distr */
miScalar mindist; /* near clipping distance */
miScalar maxdist; /* far clipping distance */
int cache_points; /* # ao points for lookup */
};
size 引数には、mental ray の現在バージョンの構造体のサイズが含まれます。これにより、バイナリ互換性を壊すことなく将来の拡張が可能になります。 samples 引数は、シェーディング ポイントでのアンビエント オクルージョンを計算するためのプローブ レイ照射の数です。 axis 引数と spread 引数は、メインの方向と角度の余弦を含み、アンビエント オクルージョン サンプルを取得するコーンを定義します。 spread 値が 1 はゼロ度になり、値が 0 は90 度、つまり半球に相当します。 cosine_exp 引数は、サンプルの重み付けに使用する指数を定義します。 mindist 引数および maxdist 引数は、オクルージョンを計算するためのニア クリップとファー クリップの距離を定義します。 効率性を高めるため、maxdist 値は比較的小さい値にすることをお勧めします。
マクロ miAMBOCCL_DEFAULT(ao_options, state) は、アンビエント オクルージョン オプションにデフォルト値を設定するのに使用できます。
以下の文字列オプションを使用すると、アンビエント オクルージョン オプションのグローバル デフォルトを指定できます。
- "ambient occlusion rays" は、シェーディング ポイントでショットされるプローブ レイの数を設定します。 デフォルト値は 256 です。
現在バージョンの制限: アンビエント オクルージョン キャッシュは、バージョン 3.6.0.8 以降で使用できます。 追加すると、アンビエント オクルージョン オプション構造体と、これに対応するグローバル デフォルト オプションのリストが拡張されます。 spread 値は負には設定できません。 計算に使用される spread_exp 値は常に 1 です。これは Lambertian BRDF に従うアンビエント オクルージョンを示します。
- 単一テクスチャおよび立方体マップの DDS イメージ ファイル フォーマットのサポートが追加されました。 立方体マップは内部的に 6 つすべてのフェースを含む単一のテクスチャとして格納されます。
- 新しい mi_query モード miQ_FUNC_IS_ROOT が追加されました。 miBoolean 引数は、シェーダがシェーダ グラフまたはフェノメナの「ルート」としてカーネルから直接呼び出された場合に、miTRUE に設定されます。 大きな構造体を返すシェーダは、マテリアルまたはライトにこれを直接アタッチすることでクラッシュが発生するのを防ぐために、この値を使用できます。
- カー ペイントのシミュレーション用のシェーダを持つペイント シェーダ ライブラリは、mental ray 3.5.3.1 で使用可能になりました。 ドキュメントについては、付属のペイント シェーダのドキュメントを参照してください。
機能強化
- ライト リストを作成すると、サンプリング コーンの軸と拡がる角度の余弦を提供することにより、サンプリング コーンを指定できます。たとえば、以下のコード サンプルのようになります。
mi::shader::Interface* iface;
mi_query(miQ_RAY_INTERFACE, state, 0, (void*)&iface);
auto_ptr<MI::RAY::LightList> llist(iface->createLightList(
state, state->normal, 0.5));
for (mi::shader::LightIterator light = llist->begin();
light != llist->end(); ++light) {
while (light->sample()) {
miColor c = light->get_contribution();
// ...
}
if (light->get_number_of_samples()) {
// ...
}
}
これは、state->pri=0 のトリックなしに、サーフェスの両側からライトをサンプリングするために使用できます。.
- ラスタライザで、新しい文字列オプション "motion factor" 浮動小数点値が追加されました。 この値を設定すると、移動するオブジェクトに対し有効なシェーディング レートを調整できます。 このオプションを使用することで、視覚的な品質を低下させずに、モーションシーンのレンダリング パフォーマンスを向上することができます。
- ラスタライザで、miObject と miInstance に新しい shading_samples フィールドが追加されました。このフィールドでは、オプションで指定されたグローバル シェーディング サンプルをオーバーライドできます。 .mi ファイルでの対応する構文は、shading samples float です。
- miState に新しい importance フィールドが追加されました。 これは、子レイに伝達されます。 レンダリング品質とパフォーマンスの向上のため、間接イルミネーションを使用するシーン用に作成されたシェーダは、このフィールドに特定の係数を乗じてから、mi_compute_irradiance または mi_trace_... 関数を呼び出します。 この係数は、シェーダの結果に関数の結果を加算するのに使用するカラーの強度として選択されます。もしくは、複数の(光沢のある)レイをトレースする場合には、ショットされるレイの数の逆数として選択できます。
- miLight 構造体に新しいブーリアン フィールド photons_only が追加されました。 設定した場合、ライトからのイルミネーションは間接として処理されます。 ライトのライト サンプリングは黒を返します。 補正のため、ライトから放出されるフォトンは、2 番目以降のバウンドに加えて最初のバウンドでも格納されます。 このため、物理的に正確なシーンでは、イルミネーション モデルは同じです。
このオプションを使用して、強度の低いライトを多数含むシーンのパフォーマンスを大幅に向上することができます。ライト リストの長さ、つまりライト シェーダ呼び出しとシャドウ レイの数は、フォトン マップが大きくなることと引き換えに大幅に低減されます。
ライト セクションの対応する .mi 構文は、photons only boolean です。
- 新しいファイナルギャザー モードが追加されました。 文字列オプション "finalgather mode" が "force" に設定されている場合、ファイナルギャザー マップの作成と補間は無効になります。ファイナルギャザー レイのセットは、mi_compute_irradiance または mi_compute_avg_radiance が呼び出されるたびに放出されます。 レンダリング速度は他のファイナルギャザー モードに比べてずっと低速ですが、イメージ品質は優れています。
- OpenEXR 出力ファイルでは、任意のフレームバッファを単一の出力ステートメントに結合できます。 このアップデートの前は、メイン カラー バッファと Z バッファの組み合わせだけが可能でした。 このようなファイルに、最初の 8 ユーザ フレームバッファ(つまり "fb0" ~ "fb7")の任意のサブセットの書き込みが可能になりました。 OpenEXR 出力ファイルにユーザ フレームバッファと1 つ以上の他のバッファが含まれている場合、ユーザ フレームバッファ チャンネルの名前は "Rn"、"Gn"、"Bn"、"An" となります。ここで、n は、カラー タイプ出力のユーザ フレームバッファのインデックスで、たとえば "Zn" は Z デプス出力を表します。
- シェーダ インタフェースに mi_img_type_query 関数が復旧されました。 この便宜関数は、特定のイメージ タイプで、コンポーネントの数とコンポーネントあたりのビット数を返します。 また、オプションとして 4 つのブーリアンで構成される配列が指定された場合、これにコンポーネントのフラグをセットします。
- raylib 統合: mi_disp_fbmap 関数が、範囲外のインデックスで呼び出された場合に 0 を返すよう変更されました。 これにより、特に、ファイナルギャザー事前計算プレビュー モードでのディスプレイ コールバックの統合が容易になります。
- 多数の CPU と不均一なメモリ アクセス(NUMA)を使用する特定のプラットフォーム上で、並列パフォーマンスが大幅に向上しました。
- 物理ライブラリで、dgs_material、dielectric_material、および path_material シェーダが "mode" 引数を取得します。この引数は、ベース シェーダのものと同じです。 mode の有効な値は以下のとおりです。
- モード 0: 互換性のための動作で、ライト リストがそのまま取得されます。
- モード 1: mi_inclusive_lights を適用します。
- モード 2: mi_exclusive_lights を適用します。
- モード 4: シェーダにインスタンス ライト リストの使用を強制します。
シェーダのバージョンが上げられました。
- 新しいブーリアン文字列オプション "contrast all buffers" が追加されました。 設定されている場合、ユーザ フレームバッファを含むすべてのカラー バッファに基づいて、コントラストのオーバーサンプリング テストが実行されます。
- 文字列オプションを削除するための mi::shader::Options::remove が追加されました。
- mental ray ライブラリ統合で、mi_api_variable_set 関数が null に設定された name および value 引数を使用して呼び出された場合、API 変数テーブル全体がクリーンアップされます。
mental ray 3.5 との後方互換に影響する変更
- サブオブジェクト ボックスの三角形のインデックスである miState->pri_idx は削除されました。 アセンブリ サポートのために行われた変更により、シーン内のプリミティブは miState->pri によって完全に特定されます。 ライトマップと一部の輪郭シェーダは、新しい miQ_PRI_INDEX 照会モードを使用して三角形のインデックスを取得する必要があります。 ライトマップ シェーダは、新しい mi_state_set_pri 関数を使用して現在の三角形インデックスを設定する必要があります。
- インタフェース関数に、いくつかの欠落していた const 修飾子が追加されました。 コンパイラの警告またはエラーは意図しない使用を示すものであり、重大であるとみなす必要があります。 ただし少なくとも 1 つの例外として、GCC 4 が使用されている場合、mi_tri_vectors で警告を出力することがあります。これは無視してください。
- mi::shader:Interface クラスは、新しいバージョン 2 を持つようになりました。この新しいクラスは、mental ray 3.5 で使用されるバージョン 1 とは非互換です。 ただし、インタフェースのバージョン 1 は引き続きサポートされ、mi_ray_interface_version で取得できます。このため、mental ray 3.5 シェーダをこの変更のために再コンパイルする必要はありません。
- カメラ空間(特に古い .mi1 で使用される)は、サポートされなくなりました。 ジオメトリは正しくロードされますが、テクスチャ空間およびその他の座標系は不正となる可能性があります。
- グリッド アクセラレーションは、サポートされなくなりました。 グリッドの主な利点は、何度も多重インスタンス化が行われるシーンでのメモリ フットプリント(所要量)が低いことでした。 アセンブリを使用する BSP2 アクセラレーション テクニックは、これよりも優れています。
- miOptions で、フィールド rapid_shading_samples、rapid_collect_rate、および rapid_motion_resample は、それぞれより分かりやすい rast_shading_samples、rast_collect_rate、および rast_motion_resample という名前に変更されました。
- Windows のインテグレータ: stdin でのバイナリ モードの設定は適用されなくなりました。 パイプ モードで使用できるスタンドアローン スタイルの製品に raylib を統合する場合、統合されたコードで _setmode( _fileno(stdin), _O_BINARY) 呼び出しによって、モードを明示的に設定しなくてはなりません。
- mental ray 3.6 は、ファイル出力と出力ステートメントを個別に保持します。 すべての出力イメージ ファイルは、すべての出力シェーダが適用された後で書き出されます。 フレームバッファを 1 つのファイルに書き込む、出力シェーダをそのフレームバッファに適用する、および変更されたバッファを異なるファイルに書き込む、という操作は不可能です。
バグ修正
- 1 文字よりも長い名前を持つ名前付き構造体を含んだフェノメナの解析で発生するクラッシュが修正されました。
- iff ファイル フォーマットでサポートされている浮動小数点カラーと Z デプス出力の組み合わせ("+rgba_fp,+z" および "+rgb_fp,+z" 出力ステートメント)で発生するクラッシュが修正されました。
- ファイナルギャザーがシンプル モードまたはマルチフレーム モードで使用されており、mi_compute_avg_radiance が変動する FG ポイント数で呼び出された場合に発生するメモリ破損が修正されました。
- マルチホスト レンダリングで、ローカル テクスチャがフレーム間で削除された場合に発生する可能性があったクラッシュが修正されました。
- 長方形および円盤のエリア ライトからのフォトン放出で、投影マップがすべての放出方向を拒否した場合に発生するクラッシュが修正されました。
- miSCENE_NBOX タイプで呼び出される mi_scene_growedit 関数でのクラッシュが修正されました。
- すべてではなく一部の頂点がバンプ ベクトルを持つ不正なオブジェクトのテッセレーション中に発生するクラッシュが修正されました。
- ポリゴン オブジェクトの分割で発生する可能性があったメモリ破損が修正されました。
- 詳細なシャドウ マップ レンダリングで mi_sample 関数が使用されている場合に発生するクラッシュが修正されました。
- 「自動」ファイナルギャザー モードを使用し、ファイナルギャザー ポイントの数を 0 に設定した場合に発生する可能性があったクラッシュが修正されました。
- ファイナルギャザーの fastlookup モードで、拡張されたフォトン マップを読み込むときに発生する可能性があったメモリ破損が修正されました。
- レジスタ _MI_REG_MEMORY_LIMIT の値がメガバイト単位になりました。
- ラスタライザの使用時に、Z バッファに、1 つ目の完全に透明でないヒットではなく、1 つ目の完全に不透明なヒットのデプスが含まれていました。 この問題が解決されました。
- ラスタライザで、1 つの軸でフリップされた(つまり、負の変換行列式を持つ)オブジェクト インスタンスのフロント/バック フェース チェックが修正されました。
- モーション ステップの使用時にラスタライザで発生する可能性があったモーション アーティファクトが修正されました。
- シーンの事前処理でヘア プレースホルダ オブジェクトのコンテンツにアクセスされていました。これにより、すべてのヘア オブジェクトが不要に生成されていました。 この問題が解決されました。
- ヘアのマルチホスト レンダリングでの黒いタイルのアーティファクトが修正されました。
- mi_finalgather_store 関数を使用したファイナルギャザーの二次バウンスをベイクするライトマップの欠落が修正されました。
- mi_trace_continue 関数を使用するシェーダのシェーディング アーティファクトが修正されました。 返される state->dist 値が誤っていました。
- スポット アーティファクトの原因となる 3 番目以降のファイナルギャザー拡散バウンスの不正なデフォルト重要度値が修正されました。
- ラスタライザで、レンズ シェーダの state->dir の初期化が欠落していた問題が修正されました。
- シーン直径が小さく、カメラまでの距離が大きいシーンで、BPS との交差の数値精度が向上しました。
- 共有終点が 2 つあるケースでのトリミング カーブのイン/アウト計算の精度の問題が修正されました。
- カラー プロファイルを持つ 16 ビット Half Float フォーマットのイメージを使用する場合、カラー プロファイルが正しく適用されませんでした。 この問題が解決されました。
- シングル スカラー チャンネルを持つ TIFF イメージからのスカラー テクスチャの読み込みが修正されました。 これまで、このようなテクスチャは、3 コンポーネントのカラー テクスチャに変換する必要がありました。
- デバッグ バージョンのみ: ライト プロファイル補間の不正なアサートが削除されました。
- デバッグ バージョンでのみ、90 ~ 270 度の対称なプレーンと、2 つの補正フラグ(回転とフリップ)セットを持つタイプ C の IES ライト プロファイルのアサートが修正されました。
- プラットフォーム固有、デバッグバージョンのみ: 64 ビット Windowsで mi_lock 関数の不正なアサートが削除されました。
- プラットフォーム固有: GCC 4 でコンパイルされた 64 ビット Linux プラットフォームの実行ファイルで、フォトン マップのアーティファクトが修正されました。
- プラットフォーム固有: MacOsX X86 でジオメトリ マージのアーティファクトが修正されました。
- プラットフォーム固有: Linux で、LD_BIND_NOW 環境変数が設定されている場合に発生する可能性があった mi_openexr.so リンク エラーが修正されました。
- プラットフォーム固有: 64 ビット Linux で、致命的エラー メッセージが発行された場合に、スタンドアローン mental ray で発生する可能性があったクラッシュが修正されました。
- プラットフォーム固有: AIX で、テッセレーションの破損の原因となるフリー フォーム サーフェス変換が修正されました。
- インスタンスにアタッチされた、名前付きジオメトリ シェーダのエコーが修正されました。
- ジオメトリ シェーダ引数として使用されるインスタンス グループの要件のエコーで生じる可能性があった、不正なエラーメッセージが削除されました。
- 複数の近似を持つ特定のオブジェクトのエコーが修正されました。
- mental ray スタンドアローンで、ファイナルギャザー モードのヘルプ ラインが修正されました。
- base、physics、paint シェーダのライト リンクの互換性の問題が修正されました。 空のライト リスト引数がシェーダに渡されると、インスタンス ライトのリストが代わりに使用されていました。 これが修正され、インスタンスのインスタンス リストは、mode 引数が 4 に設定されている場合にのみ使用されるようになりました。
- 排他インスタンス ライト リストのバグが修正されました。このリストにシーンのすべてのライトが含まれていた場合、空のリストの代わりに、結果のライトのイテレータはすべてのライトのリストをループしていました。
- 以下の条件の組み合わせで発生する可能性があったフィルタリング アーティファクトが修正されました。
- フィルタが重要である(box 1 1 ではない)、
- 常にデフォルトの box 1 1 フィルタでフィルタされたフレームバッファが存在する(たとえば、Z デプス フレームバッファ)
- min samples サンプリング レートが負である
- 大きい u_spread および v_spread 値とともに使用される mib_glossy_reflection シェーダで、粗くテッセレーションされたオブジェクトで発生する可能性があったアーティファクトが修正されました。 ジオメトリと補間された法線との違いによって反射が地平線よりも下に位置する場合、常に少なくとも 1 つのレイが地平線の上に放射されます。
- 20 億個以上のフォトンが放出された場合に発生する可能性があるアーティファクトが修正されました。
- チェーン化されたレンズ シェーダで、state->pri と state->instance が正しく伝達されます。 レンズ シェーダでは、state->pri を使用して、オブジェクトに視点からのレイがヒットしたかどうかを調べることができます。
- ラスタライザのレンズ シェーダで、state->pri はヒットした最も近いプリミティブを参照し、ヒットがない場合には null になります。 これにより、レンズ シェーダはヒットがなかったケースを検出できます。
- サブサーフェス スキャタリング シェーダで、シェーダがファイナルギャザーと組み合せて使用された場合に、間接イルミネーションの品質が低くなる問題が修正されました。
- physical_lens_dof シェーダで、ファイナルギャザー プレビュー モードのイメージが暗くなりすぎる原因となる誤字が修正されました。
- physical_lens_dof シェーダで、シェーダが他のレンズ シェーダとチェーン接続されている場合に、ヒットしないアーティファクトが修正されました。
- shader.h および geoshader.h パブリック ヘッダとリンク用に公開された mental ray 関数との間の不一致が修正されました。
OpenEXR のサポート
OpenEXR は Industrial Light & Magic 社が設計した柔軟性の高いイメージフォーマットで、mental ray 3.3.0.389 以降のバージョンに統合されています。 OpenEXR には、mental ray の OpenEXR 部分にのみ適用される以下の著作権情報が付属しています。
Copyright © 2004, Industrial Light & Magic, a division of Lucasfilm Entertainment Company Ltd. Portions contributed and copyright held by others as indicated. All rights reserved.
ソースおよびバイナリ形式での再配布および使用は、改変されているかどうかにかかわらず、以下の条件を満たしている場合に許可されます。
- ソース コードの再配布には、上記の著作権表記、この条件リスト、および以下の免責事項を含めること。
- バイナリ形式で再配布する場合は、配布物とともに提供するドキュメントおよび/またはその他の資料に上記の著作権表記、この条件リスト、および以下の免責事項を複製すること。
- Industrial Light & Magic の名前またはその貢献者の名前を、書面による事前の明確な許可なしに、このソフトウェアから派生する製品の保証または宣伝に使用しないこと。
THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS ``AS IS'' AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
OpenEXR の ``Pxr24'' 圧縮には、mental ray の OpenEXR 部分にのみ適用される以下の著作権情報が付属しています。
Copyright © 2004, Pixar Animation Studios
All rights reserved.
ソースおよびバイナリ形式での再配布および使用は、改変されているかどうかにかかわらず、以下の条件を満たしている場合に許可されます。
- ソース コードの再配布には、上記の著作権表記、この条件リスト、および以下の免責事項を含めること。
- バイナリ形式で再配布する場合は、配布物とともに提供するドキュメントおよび/またはその他の資料に上記の著作権表記、この条件リスト、および以下の免責事項を複製すること。
- Pixar Animation Studios の名前またはその貢献者の名前を、書面による事前の明確な許可なしに、このソフトウェアから派生する製品の保証または宣伝に使用しないこと。
THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS ``AS IS'' AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
著作権情報
Copyright © 1986-2008 mental images GmbH, Berlin, Germany.
All rights reserved.
本書には mental images GmbH の専有情報および機密情報が含まれており、著作権法によって保護されています。 本書の内容は、mental images GmbH の書面による承認を受けることなく、翻訳、コピー、複製のいかなる形式でも、その一部または全部を第三者に開示することはできません。
本書に含まれる情報は、予告なく変更される可能性があります。 mental images GmbH およびその従業員は、本書の使用による偶発的または間接的損害に対して、あるいは本書における技術的または編集上の誤りに対して一切責任を負いません。
mental images®、mental ray®、mental matter®、mental mill®、mental queue™、mental q™、mental world™、mental map™、mental earth™、mental mesh™、mental™、Reality™、RealityServer®、RealityPlayer®、RealityDesigner®、MetaSL™、Meta™、Meta Shading™、Meta Node™、Phenomenon™、Phenomena™、Phenomenon Creator®、Phenomenon Editor®、Phenomill®、Phenograph®、neuray®、iray®、imatter®、Cybernator®、3D Cybernator®、Shape-By-Shading™、SPM™、NRM®、および rendering imagination visible® は、mental images GmbH, Berlin, Germany の商標または一部の国では登録商標です。
本書に記載されたその他のすべての製品名は各所有者の商標または登録商標であり、ここに承認されています。