最終更新: mikk_ni3_92 2008年09月17日(水) 10:53:35履歴
現在地 >> メニュー >> 基本編11 >> ブレンド処理 >> ブレンディング::計算式の設定
― アルファブレンド ―
―加算合成 ―
― 乗算合成 ―
― 反転合成 ―
― スクリーン合成 ―
― 排他的論理和合成 ―
― 上書き(デフォルトはこれ) ―
glBlendFunc(GL_SRC_ALPHA,GL_ONE_MINUS_SRC_ALPHA)
この場合、
つまり、「これから塗る色」のα値:Asが混ざり具合を決定する。(アルファブレンド)
glBlendFunc(GL_ONE, GL_ZERO)
この場合、ブレンディング係数は
つまり、計算式は
[表示色]=(1*Rs + 0, 1*Gs + 0, 1*Bs+0, 1*As+0)
となり、上書きする事になる。
サンプルコード >> ブレンド処理::まとめコード
― アルファブレンド ―
- 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)
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が混ざり具合を決定する。(アルファブレンド)
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)
となり、上書きする事になる。
サンプルコード >> ブレンド処理::まとめコード