現在地 >> メニュー >> 基本編11 >> ブレンド処理 >> ブレンディング::計算式の設定

計算式の設定


ブレンディングの計算式の設定、つまり、ブレンディング係数の設定は「glBlendFunc()関数」で行う。

合成例


― アルファブレンド ―
  • glBlendFunc(GL_SRC_ALPHA, GL_ONE_MINUS_SRC_ALPHA);

―加算合成 ―
  • glBlendFunc(GL_SRC_ALPHA, GL_ONE);

― 乗算合成 ―
  • glBlendFunc(GL_ZERO, GL_SRC_COLOR);

― 反転合成 ―
  • glBlendFunc(GL_ONE_MINUS_DST_COLOR, GL_ZERO);

― スクリーン合成 ―
  • glBlendFunc(GL_ONE_MINUS_DST_COLOR, GL_ONE);

― 排他的論理和合成 ―
  • glBlendFunc(GL_ONE_MINUS_DST_COLOR, GL_ONE_MINUS_SRC_COLOR);

― 上書き(デフォルトはこれ) ―
  • glBlendFunc(GL_ONE, GL_ZERO)

[例1]


glBlendFunc(GL_SRC_ALPHA,GL_ONE_MINUS_SRC_ALPHA)

この場合、
  • 現在の色(Rd, Gd, Bd, Ad)
  • これから塗る色(Rs, Gs, Bs, As)
とした時、ブレンディング係数は
  • (Sr, Sg, Sb, Sa) → ( As, As, As, As)
  • (Dr, Dg, Db, Da) → (1-As, 1-As, 1-As)
となる。

つまり、「これから塗る色」のα値:Asが混ざり具合を決定する。(アルファブレンド)

[例2]


glBlendFunc(GL_ONE, GL_ZERO)

この場合、ブレンディング係数は
  • (Sr, Sg, Sb, Sa) → (1, 1, 1, 1)
  • (Dr, Dg, Db, Da) → (0, 0, 0, 0)
となる。

つまり、計算式は
[表示色]=(1*Rs + 0, 1*Gs + 0, 1*Bs+0, 1*As+0)
となり、上書きする事になる。



サンプルコード >> ブレンド処理::まとめコード

目次

― その他 ―

Wiki内検索

計測中...(07.10.8〜)

Save The World






▲よろしければ広告のクリックもお願いします


▲ランキングに参加しました

管理人/副管理人のみ編集できます