OpenEXR : BitmapIO

OpenEXR クラスは、3ds Max 2011 で導入された OpenEXR 出力プラグインの設定にアクセスするためのインタフェースを公開します。

この BitmapIO は、以前使用可能だった MaxOpenEXR BitmapIO プラグインの完全な置き換えです。以前の 3ds Max 8 で導入されたプラグインは完全に削除されました。

コンストラクタ:

Class instances not creatable by MAXScript

エイリアス:

OpenEXR fopenexr

インタフェース: fopenexr

引数は、 fopenexr interface exposes いいえ PROPERTIES そして the following メソッド::

メソッド:

defaults

<bool>fopenexr.setDefaults ()

OpenEXR 処理とその既定値を初期化します。

   

<bool>fopenexr.loadEXRParams <&String>exrName

exrName is In and Out parameter 

指定の EXR ファイル名から EXR パラメータをロードします。

   

<bool>fopenexr.saveEXRParams <&String>exrName

exrName is In and Out parameter

指定の EXR ファイル名から EXR パラメータを保存します。

   

<bool>fopenexr.delAllAppDatas ()

すべての AppData を削除します。

成功した場合は true を返し、成功しなかった場合は false を返します。

   

メイン レンダリング出力

The following メソッド give access → the フォーマット そして タイプ 設定 インチ the メイン レンダリング出力 : グループ / controls : OpenEXR 出力設定 : ダイアログ..

format

タイプ

グローバル オプション

The following メソッド give access → the 圧縮, , ストレージ タイプ : そして イメージ領域 : 設定 : OpenEXR 出力設定 : ダイアログ..

圧縮

<integer>fopenexr.getCompression ()

[圧縮](Compression)ドロップダウン リストの選択インデックスに対応する整数を返します。

有効な値については次の表を参照してください。

選択インデックスの基数は 0 ですので注意してください。

   

<bool>fopenexr.SetCompression <integer>compression

[圧縮](Compression)ドロップダウン リストを整数引数によって指定されたリストに設定してください。

使用可能な値は次のとおりです。

コード

圧縮タイプ

0

圧縮なし

1

Run Length Encoding (RLE)

2

ZLIB 圧縮、スキャンラインごと

3

ZLIB 圧縮、16 スキャンライン ブロック

4

PIZ ベース ウェーブレット圧縮

5

ロッシー 24 ビット 浮動小数圧縮

6

ロッシー 4 x 4 ピクセル ブロック圧縮

7

ロッシー 4 x 4 ピクセル ブロック圧縮 (固定圧縮率)

ストレージ タイプ

<bool>fopenexr.getSaveScanline ()

[ストレージ タイプ](Storage Type)が[イメージをスキャンラインとして保管](Store Image as Scanlines)に設定されている場合は true、[イメージをタイルとして保管](Store Image as Tiles)に設定されている場合は false を返します。

   

<bool>fopenexr.setSaveScanline <bool>saveScanline

引数が true の場合は[ストレージ タイプ](Storage Type)を[イメージをスキャンラインとして保管](Store Image as Scanlines)に設定します。

引数が false の場合は[ストレージ タイプ](Storage Type)を[イメージをタイルとして保管](Store Image as Tiles)に設定します。

   

<integer>fopenexr.getTileSize ()

[ストレージ タイプ](Storage Type)が[スキャンライン](Scanline)に設定されたときは、使用されているタイル サイズを返します。

タイル サイズはユーザ インターフェースに公開されていません。

注:[タイル サイズ](Tile Size)オプションはユーザ インターフェースに公開されていません。

   

<bool>fopenexr.setTileSize <integer>tileSize

[ストレージ タイプ](Storage Type)が[スキャンライン](Scanline)に設定されたときは、使用されているタイル サイズを設定します。

タイル サイズはユーザ インターフェースに公開されていません。

注:[タイル サイズ](Tile Size)オプションはユーザ インターフェースに公開されていません。

   

イメージ領域

<bool>fopenexr.getSaveRegion ()

[イメージ領域](Image Region)ドロップダウン リストが[地域を保存](Save Region)に設定されている場合、true を返します。

[イメージ領域](Image Region)ドロップダウン リストが[完全なイメージを保存](Save Full Image)に設定されている場合、false を返します。

   

<bool>fopenexr.setSaveRegion <bool>saveRegion

ブール値の引数が true の場合、[イメージ領域](Image Region)オプションを[地域を保存](Save Region)に設定します。

ブール値の引数が false の場合、[イメージ領域](Image Region)オプションを[完全なイメージを保存](Save Full Image)に設定します。

   

OpenEXR レイヤ

<integer>fopenexr.numLayers ()

EXR ファイル内の現在のレイヤ数を返します。

   

<integer>fopenexr.getLayerType <integer>layer

0 インデックス付きレイヤのタイプを整数として返します。

有効な値は次のとおりです。

0 - メイン レンダリング レイヤ - 引数 0 の場合常に返されます。

1 - レンダリング要素 レイヤ

2 - G-バッファ チャネル レイヤ

   

<Stringby value>fopenexr.getLayerName <integer>layer 

0 ベースの引数で指定されたレイヤの 3ds Max で使用される名前を返します。

メイン レンダリング レイヤ(整数 0)の場合、値は常に空の文字列("")になります。

これは、[レンダリング要素](Render Elements)の場合、[レンダリング設定](Render Setup)ダイアログの[レンダリング要素](Render Elements)パネルに表示される名前になります。

G-バッファ チャネルの場合、ユーザ インターフェースに表示される標準の名前になります。

   

<bool>fopenexr.setLayerName <integer>layer <&String>name

name is In and Out parameter 

3ds Max の名前を指定のレイヤーに設定します。

   

<Stringby value>fopenexr.getLayerOutputName <integer>layer

引数で指定されたレイヤの EXR ファイルで使用される名前を返します。

これは、[レンダリング要素](Render Elements)および[G-バッファ ID チャネル](G-Buffer Channels) リストの[レイヤ](Layer)列に表示される名前になります。

   

<bool>fopenexr.setLayerOutputName <integer>layer <&String>name

name は入出力パラメータです。

0 ベースの 1 番目の引数で指定されたレイヤの EXR ファイルで使用される名前を設定します。この場合、0 はメイン レンダリング レイヤを表します。

これは、[レンダリング要素](Render Elements)および[G-バッファ ID チャネル](G-Buffer Channels) リストの[レイヤ](Layer)列に表示される名前になります。

   

<integer>fopenexr.getLayerOutputType <integer>layer

指定された破片のタイプを返します。

可能なレイヤの出力タイプは次の通りです。

0 - RGBA

1 - RGB

2 - モノ

3 - XYZ (G-バッファ チャネルのみ)

4 - XY (G-バッファ チャネルのみ)

5 - UV (G-バッファ チャネルのみ)

   

<bool>fopenexr.setLayerOutputType <integer>layer <integer>type

1 番目の引数で指定されたレイヤの出力タイプを 2 番目の引数の値に設定します。

1 番目の引数が 0 として指定されている場合、メイン レンダリング レイヤのタイプが設定されます。

2 番目の引数として可能な値は次の通りです。

0 - RGBA

1 - RGB

2 - モノ

3 - XYZ (G-バッファ チャネルのみ)

4 - XY (G-バッファ チャネルのみ)

5 - UV (G-バッファ チャネルのみ)

   

<integer>fopenexr.getLayerOutputFormat <integer>layer

指定されたレイヤの出力フォーマットを返します。

有効な値は次のとおりです。

0 - FLOAT32

1 - FLOAT16

2 - INT32

   

<bool>fopenexr.setLayerOutputFormat <integer>layer <integer>format

1 番目の引数で指定されたレイヤの出力フォーマットを 2 番目の引数で指定されたタイプに設定します。

1 番目の引数が 0 として指定されている場合、メイン レンダリング レイヤのフォーマットが設定されます。

2 番目の引数として可能な値は次の通りです。

0 - FLOAT32

1 - FLOAT16

2 - INT32

   

例:

以下に、メイン レイヤの出力フォーマットとタイプを設定する例を示します。

fopenexr.setLayerOutputFormat 0 0 -- set Main Render to FLOAT32
fopenexr.setLayerOutputType 0 1 -- set Main Render to RGB

   

レンダリング要素 レイヤ

<maxObject>fopenxr.getRenderElementByLayer <integer>layer

3ds Max 2017 の 新機能 : レンダラー要素を指定したレイヤの MAXObject として返します。

   

<bool>fopenxr.getLayerEnabled <integer>layer

3ds Max 2017 の 新機能 : 指定したレイヤが有効な場合は、true を返します。

   

<bool>fopenexr.isAutoAddRenderElements ()

[レンダリング要素の自動的な追加/削除](Automatically Add/Remove Render Elements)オプションの現在の状態を返します。

   

<bool>fopenexr.setAutoAddRenderElements <boolean>add

[レンダリング要素の自動的な追加/削除](Automatically Add/Remove Render Elements)オプションの現在の状態を設定します。

   

<bool>fopenexr.addRenderElementLayer <&String>name <&String>outname <integer>type <integer>format 

name is In and Out parameter
outname is In and Out parameter

レンダリング要素レイヤを追加します。 (3ds Max) の名前、出力 (EXR) の名前、タイプ、フォーマットを指定する必要があります。

   

<bool>fopenexr.delRenderElementLayer <&String>name 

name is In and Out parameter

レンダリング要素レイヤを、(3ds Max) での名前で指定して、削除します。

   

<bool>fopenexr.addRenderElementLayerRef <maxObject>element <&String>outname <integer>type <integer>format 

outname is In and Out parameter

標準のレンダリング要素マネージャから取得した MAXObject をレンダリング要素として追加します。

   

<bool>fopenexr.delRenderElementLayerRef <maxObject>element

MAXObject として渡される指定のレンダリング要素レイヤを削除します。

   

例:

以下は、MAXObject 変数を使用してレンダリング要素レイヤに追加する例です。

reMgr = maxOps.GetCurRenderElementMgr ()
el = reMgr.getRenderElement 1
fopenexr.addrenderelementlayerref el "diffuse" 0 0
注:

上記の 2 つの参照関数で、同じ名前を持つレンダリング要素レイヤを管理できます。

<integer>fopenexr.delAllRenderElementLayers ()

すべてのレンダリング要素レイヤを削除します。

削除されたレイヤの数を返します。

   

G-バッファ チャネル レイヤ

<bool>fopenexr.addGBufferChannelLayer <integer>channel <&String>name <integer>type <integer>format 

name is In and Out parameter

G-バッファ チャネル レイヤを追加します。チャネル、(3ds Max) 名前、タイプ、形式を指定する必要があります。

   

<bool>fopenexr.delGBufferChannelLayer <&String>name 

name is In and Out parameter

(3ds Max) 名前で指定された G-バッファ チャネル レイヤを削除します。

   

<integer>fopenexr.delAllGBufferLayers ()

すべての G-バッファ レイヤを削除します。

削除されたレイヤの数を返します。

   

カスタム アトリビュート

MAXScript を使用して、カスタム アトリビュートまたは「メタデータ」を OpenEXR ファイルに保存できます。これらのアトリビュートは、任意のデータを含むことができ、3ds Max で無視されます。

他の OpenEXR アプリケーションで読み込んで使用できるアトリビュートは、データ (ここで説明されているカメラ アトリビュートなど)の 場合もあります

注:

目的は 3ds Max のユーザ インターフェースでオブジェクトのプロパティとして定義できるカスタム アトリビュートと似ていますが、EXR ファイルのカスタム アトリビュートは、オブジェクトのアトリビュートから完全に独立しています。

カスタム アトリビュートごとに名前とインデックスがあります。

名前はユーザ定義の文字列です。

インデックスは、アトリビュートがファイルに追加された順序を示す基数 0 のインデックスです。

カスタム OpenEXR アトリビュートを取得する

<integer>fopenexr.numAttributes ()

EXR ファイルのカスタム アトリビュートの数を返します。

   

<Stringby value>fopenexr.getAttributeName <integer>attribute

基数 0 のインデックスが付いたアトリビュートの名前を返します。

   

<integer>fopenexr.getAttributeType <integer>attribute

整数値に基数 0 のインデックスが付いたアトリビュートのタイプを返します。

アトリビュートのタイプのコードは以下のとおりです。

FOPENEXR_ATTRIB_STRING=0

FOPENEXR_ATTRIB_FLOAT=1

FOPENEXR_ATTRIB_INT=2

FOPENEXR_ATTRIB_MATRIX=3

   

<Stringby value>fopenexr.getAttributeStringValue <integer>attribute

指定された基数 0 インデックスが付いた文字列アトリビュートの値を返します。

   

<float>fopenexr.getAttributeFloatValue <integer>attribute

指定された基数 0 インデックスが付いた浮動小数点アトリビュートを返します。

   

<integer>fopenexr.getAttributeIntValue <integer>attribute

指定された基数 0 インデックスが付いた整数アトリビュートを返します。

   

<matrix3 by value>fopenexr.getAttributeMatrixValue <integer>attribute

指定された基数 0 インデックスが付いた変換行列のアトリビュートを返します。

   

カスタム OpenEXR アトリビュートを追加する

<bool>fopenexr.addStringAttribute <&String>attribute <&String>value 

attribute is In and Out parameter
value is In and Out parameter

文字列値のアトリビュートを追加し、名前と値を指定します。

   

<bool>fopenexr.addFloatAttribute <&String>attribute <float>value 

attribute is In and Out parameter

浮動小数点値のアトリビュートを追加し、名前と値を指定します。

   

<bool>fopenexr.addIntAttribute <&String>attribute <integer>value 

attribute is In and Out parameter

整数値のアトリビュートを追加し、名前と値を指定します。

   

<bool>fopenexr.addMatrixAttribute <&String>attribute <matrix3 by value>value 

attribute is In and Out parameter

変換行列値のアトリビュートを追加し、名前と値を指定します。

   

カスタム OpenEXR アトリビュートを削除する

<bool>fopenexr.delAttribute <&String>attribute 

attribute is In and Out parameter

指定された頂点を削除します。

   

<integer>fopenexr.delAllAttributes ()

EXR ファイルからすべてのカスタム アトリビュートを削除します。

削除されたアトリビュートの数を返します。

   

SavingCamera アトリビュート

EXR ファイルでカメラ アトリビュートを保存できます。

[カメラ](Camera)ビューポートからレンダリングする必要があります。

注: カメラ アトリビュートの保存 ユーザ インタフェースに公開されていなく、MAXScript でのみアクセス可能です。

EXR ファイルに保存されるカメラ アトリビュートは以下のとおりです。

  • cameraTransform

  • cameraProjection

  • cameraFov

  • cameraAperture

  • cameraNearClip

  • cameraFarClip

  • cameraNearRange

  • cameraFarRange

  • cameraTargetDistance

カメラ アトリビュートは、カスタム アトリビュートの特殊なケースです。

<bool>fopenexr.getSaveCameraAttributes ()

[カメラ アトリビュートの保存](Save Camera Attributes)オプションの現在の状態を返します。

True の場合カメラ アトリビュートは OpenEXR で保存されます。

False の場合カメラ アトリビュートは OpenEXR で保存されません。

   

<bool>fopenexr.setSaveCameraAttributes <bool>saveCamera

ブール値の引数に対してカメラ アトリビュートの保存の状態を設定します。