データ変換

カラーからグレースケールへ

アルファ コンポーネントだけを取り出すか、RGB を平均するか、緑を強調して赤を差し引いて表現する生理学的なカラー モデルによって RGB をウェイト付けするかして、カラーを RGBA グレースケールに変換します。その結果得られるグレースケールの値はスカラー量としても使用できます。返される R、G、B、および A の要素は同一の値を持ちます。

mib_color_alpha
color "mib_color_alpha" (
    color           "input",
    scalar          "factor")
mib_color_average
color "mib_color_average" (
    color           "input",
    scalar          "factor")
mib_color_intensity
color "mib_color_intensity" (
    color           "input",
    scalar          "factor")
input
グレースケールに変換されるカラーです。
factor
結果に乗算される係数です。alpha、average、および intensity の値をそれぞれ正確に得るためには 1.0 に設定する必要があります。0 にすると input は評価されず、黒が返されます。

カラー マップ補間

スカラー量またはカラーを与えると、マルチカラー マップのルックアップと補間を実行します。マップは最大 8 つのカラーの集合です(配列ではない)。実際のカラー数はパラメータで指定します。

mib_color_interpolate
color "mib_color_interpolate" (
    scalar          "input",
    integer         "num",
    scalar          "weight_1",
    scalar          "weight_2",
    scalar          "weight_3",
    scalar          "weight_4",
    scalar          "weight_5",
    scalar          "weight_6",
    color           "color_0",
    color           "color_1",
    color           "color_2",
    color           "color_3",
    color           "color_4",
    color           "color_5",
    color           "color_6",
    color           "color_7")
input
ルックアップするスカラーです。
num
カラー リスト内のカラーの数です。この値は最小で 1、最大で 8 です。
weight_*
カラー スプレッドにおけるカラー 1..6 の位置を指定します。0 の値は最も低い位置のカラー、1 の値は最も高い位置のカラーになります。ウェイトは一定の割合で増加していきます。カラー 0 のウェイトは常に 0、カラー num-1 のウェイトは常に 1 です。この 2 つの値の間のウェイトのみを指定する必要があります(つまりカラーよりも 2 少ない num-2 のウェイト)。
color_*
カラー スプレッドを指定します。最初の num カラーだけが定義されます。input が ≤ 0 である場合は color_0 だけが評価され、input が ≥ 1 である場合は color_(num-1) だけが評価されます。input が数値精度の範囲内でウェイトとまったく等しい場合は、対応するカラーだけが評価されます。その他のすべての場合は、2 つの隣り合ったカラーだけが評価され、補間されます。

Mix(混合)

ベース カラーおよび最大 8 の入力(正確な数はパラメータによって決定されます)を受け入れます。入力は入力カラー、ウェイト スカラー、モードで構成されます。入力は連続して評価され、それぞれが直前の入力の結果に基づいて動作します(最初の入力はベース カラー(既定で透明な黒)を使用します)。以下のモードがサポートされます。

mode動作計算
0Blend (ブレンド) R = A·(1−Ba)·w + B·w
1Mix (混合) R = A·(1−w) + B·w
2Add (加算) R = A + B·w
3Bounded Add (範囲つき加算) R = bound (A + B·w, 0, 1)
4Multiply (乗算) R = A·B·w
5Bounded Multiply (範囲つき乗算) R = bound (A·B·w, 0, 1)
6Replace Alpha (アルファの置き換え) Rrgb = Argb; Ra = Ba

R は次の結果、A は直前の結果、B は現在のカラー、w は現在のウェイトです。添え字の r、g、b、a はそれぞれ赤、緑、青、アルファの各コンポーネントです。モード 6 では結果となるアルファ値が正しい(赤、緑、青よりも大きくなっている)ことが確認されないことに注意してください。mental ray は、プリマルチプライ処理がオフになっていない限り、フレーム バッファ内にカラーを格納するときにアルファを補正します。

mib_color_mix
color "mib_color_mix" (
    integer         "num",
    integer         "mode_0",
    integer         "mode_1",
    integer         "mode_2",
    integer         "mode_3",
    integer         "mode_4",
    integer         "mode_5",
    integer         "mode_6",
    integer         "mode_7",
    scalar          "weight_0",
    scalar          "weight_1",
    scalar          "weight_2",
    scalar          "weight_3",
    scalar          "weight_4",
    scalar          "weight_5",
    scalar          "weight_6",
    scalar          "weight_7",
    color           "color_0",
    color           "color_1",
    color           "color_2",
    color           "color_3",
    color           "color_4",
    color           "color_5",
    color           "color_6",
    color           "color_7",
    color           "color_base")
num
有効な入力の数です。最小は 1、最大は 8 です。
mode_*
すでに説明した合成モードです。
weight_*
すでに説明した合成ウェイト w です。
color_*
すでに説明した合成後のカラー B です。
color_base
ベース カラーです。

スプレッド

1 つのカラー入力を最大 8 個のカラー出力に展開します(正確な数はパラメータによって決定されます)。個々の出力は、対応する入力にウェイトを乗算し、指定された変換を行ったものに等しくなります。計算式は以下のようになります。

mode動作計算
0ウェイト付けされたカラー R = w·A
1アルファからのグレースケール カラー Rrgba = w·Aa
2平均強度からのグレースケール カラー Rrgba = w·(Ar+Ag+Ab) ⁄ 3
3ウェイト付けされた強度からのグレースケール カラー Rrgba = w·(0.299·Ar+ 0.587·Ag+ 0.114·Ab)
4赤のコンポーネントからのグレースケール カラー Rrgba = w·Ar

R は現在の(最大 8 個の中の 1 つ)結果、w は現在のウェイト、mode は現在の変換、A はすべての出力によって共有される入力カラーです。モード 4 はスカラーをグレースケール カラーに変換する場合に使用します。

mib_color_spread
struct {
    color           "out_0",
    color           "out_1",
    color           "out_2",
    color           "out_3",
    color           "out_4",
    color           "out_5",
    color           "out_6",
    color           "out_7"
} "mib_color_spread" (
    color           "input",
    integer         "num",
    integer         "mode_0",
    integer         "mode_1",
    integer         "mode_2",
    integer         "mode_3",
    integer         "mode_4",
    integer         "mode_5",
    integer         "mode_6",
    integer         "mode_7",
    color           "weight_0",
    color           "weight_1",
    color           "weight_2",
    color           "weight_3",
    color           "weight_4",
    color           "weight_5",
    color           "weight_6",
    color           "weight_7")
num
計算する有効な出力の数です。最小は 1、最大は 8 です。
mode_*
すでに説明したモード mode です。
weight_*
すでに説明したウェイト w です。

Copyright © 1986, 2015 NVIDIA ARC GmbH. All rights reserved.