套件 | flash.display3D |
類別 | public final class Context3DBlendFactor |
繼承 | Context3DBlendFactor Object |
語言版本: | ActionScript 3.0 |
執行階段版本: | Flash Player 11, AIR 3 |
混合係數代表將混合公式中的來源或目標顏色相乘所得的特定四值向量。混合公式為:
result = source * sourceFactor + destination * destinationFactor
在公式中,來源顏色是像素著色器程式的輸出顏色。目標顏色是顏色緩衝區中目前有的顏色 (由上一個清除和繪製作業所設定)。
例如,如果來源顏色是 (.6, .6, .6, .4),而來源混合係數是 Context3DBlendFactor.ONE_MINUS_SOURCE_ALPHA
,則混合方程式的來源部分會計算為:
(.6, .6, .6, .4) * (1-0.4, 1-0.4, 1-0.4, 1-0.4) = (.36, .36, .36, .24)
最後計算會緊縮為 [0,1] 範圍。
範例
下列範例會示範使用來源顏色 = (.6,.4,.2,.4)、目標顏色 = (.8,.8,.8,.5) 以及各種混合係數的混合數學運算。
目的 | 來源係數 | 目標係數 | 混合公式 | 結果 |
---|---|---|---|---|
沒有混合 | ONE | ZERO | (.6,.4,.2,.4) * ( 1, 1, 1, 1) + (.8,.8,.8,.5) * ( 0, 0, 0, 0) | ( .6, .4, .2, .4) |
Alpha | SOURCE_ALPHA | ONE_MINUS_SOURCE_ALPHA | (.6,.4,.2,.4) * (.4,.4,.4,.4) + (.8,.8,.8,.5) * (.6,.6,.6,.6) | (.72,.64,.56,.46) |
加法 | ONE | ONE | (.6,.4,.2,.4) * ( 1, 1, 1, 1) + (.8,.8,.8,.5) * ( 1, 1, 1, 1) | ( 1, 1, 1, .9) |
色彩增殖 | DESTINATION_COLOR | ZERO | (.6,.4,.2,.4) * (.8,.8,.8,.5) + (.8,.8,.8,.5) * ( 0, 0, 0, 0) | (.48,.32,.16, .2) |
網屏 | ONE | ONE_MINUS_SOURCE_COLOR | (.6,.4,.2,.4) * ( 1, 1, 1, 1) + (.8,.8,.8,.5) * (.4,.6,.8,.6) | (.92,.88,.68, .7) |
請注意,並非所有的混合係數組合都有用,而且採用不同方式有時也會達到相同的效果。
相關 API 元素
常數 | 定義自 | ||
---|---|---|---|
DESTINATION_ALPHA : String = "destinationAlpha" [靜態]
混合係數是 (Da,Da,Da,Da),其中 Da 是像素程式所算出片段顏色的 Alpha 組件。 | Context3DBlendFactor | ||
DESTINATION_COLOR : String = "destinationColor" [靜態]
混合係數是 (Dr,Dg,Db,Da),其中 Dr/g/b/a 是顏色緩衝區中目前顏色的對應組件。 | Context3DBlendFactor | ||
ONE : String = "one" [靜態]
混合係數是 (1,1,1,1)。 | Context3DBlendFactor | ||
ONE_MINUS_DESTINATION_ALPHA : String = "oneMinusDestinationAlpha" [靜態]
混合係數是 (1-Da,1-Da,1-Da,1-Da),其中 Da 是顏色緩衝區中目前顏色的 Alpha 組件。 | Context3DBlendFactor | ||
ONE_MINUS_DESTINATION_COLOR : String = "oneMinusDestinationColor" [靜態]
混合係數是 (1-Dr,1-Dg,1-Db,1-Da),其中 Dr/g/b/a 是顏色緩衝區中目前顏色的對應組件。 | Context3DBlendFactor | ||
ONE_MINUS_SOURCE_ALPHA : String = "oneMinusSourceAlpha" [靜態]
混合係數是 (1-Sa,1-Sa,1-Sa,1-Sa),其中 Sa 是像素程式所算出片段顏色的 Alpha 組件。 | Context3DBlendFactor | ||
ONE_MINUS_SOURCE_COLOR : String = "oneMinusSourceColor" [靜態]
混合係數是 (1-Sr,1-Sg,1-Sb,1-Sa),其中 Sr/g/b/a 是像素程式所算出片段顏色的對應組件。 | Context3DBlendFactor | ||
SOURCE_ALPHA : String = "sourceAlpha" [靜態]
混合係數是 (Sa,Sa,Sa,Sa),其中 Sa 是像素程式所算出片段顏色的 Alpha 組件。 | Context3DBlendFactor | ||
SOURCE_COLOR : String = "sourceColor" [靜態]
混合係數是 (Sr,Sg,Sb,Sa),其中 Sr/g/b/a 是像素程式所算出片段顏色的對應組件。 | Context3DBlendFactor | ||
ZERO : String = "zero" [靜態]
混合係數是 (0,0,0,0)。 | Context3DBlendFactor |
DESTINATION_ALPHA | 常數 |
public static const DESTINATION_ALPHA:String = "destinationAlpha"
語言版本: | ActionScript 3.0 |
執行階段版本: | Flash Player 11, AIR 3 |
混合係數是 (Da,Da,Da,Da)
,其中 Da
是像素程式所算出片段顏色的 Alpha 組件。
DESTINATION_COLOR | 常數 |
public static const DESTINATION_COLOR:String = "destinationColor"
語言版本: | ActionScript 3.0 |
執行階段版本: | Flash Player 11, AIR 3 |
混合係數是 (Dr,Dg,Db,Da)
,其中 Dr/g/b/a
是顏色緩衝區中目前顏色的對應組件。
ONE | 常數 |
public static const ONE:String = "one"
語言版本: | ActionScript 3.0 |
執行階段版本: | Flash Player 11, AIR 3 |
混合係數是 (1,1,1,1)
。
ONE_MINUS_DESTINATION_ALPHA | 常數 |
public static const ONE_MINUS_DESTINATION_ALPHA:String = "oneMinusDestinationAlpha"
語言版本: | ActionScript 3.0 |
執行階段版本: | Flash Player 11, AIR 3 |
混合係數是 (1-Da,1-Da,1-Da,1-Da)
,其中 Da
是顏色緩衝區中目前顏色的 Alpha 組件。
ONE_MINUS_DESTINATION_COLOR | 常數 |
public static const ONE_MINUS_DESTINATION_COLOR:String = "oneMinusDestinationColor"
語言版本: | ActionScript 3.0 |
執行階段版本: | Flash Player 11, AIR 3 |
混合係數是 (1-Dr,1-Dg,1-Db,1-Da)
,其中 Dr/g/b/a
是顏色緩衝區中目前顏色的對應組件。
ONE_MINUS_SOURCE_ALPHA | 常數 |
public static const ONE_MINUS_SOURCE_ALPHA:String = "oneMinusSourceAlpha"
語言版本: | ActionScript 3.0 |
執行階段版本: | Flash Player 11, AIR 3 |
混合係數是 (1-Sa,1-Sa,1-Sa,1-Sa)
,其中 Sa
是像素程式所算出片段顏色的 Alpha 組件。
ONE_MINUS_SOURCE_COLOR | 常數 |
public static const ONE_MINUS_SOURCE_COLOR:String = "oneMinusSourceColor"
語言版本: | ActionScript 3.0 |
執行階段版本: | Flash Player 11, AIR 3 |
混合係數是 (1-Sr,1-Sg,1-Sb,1-Sa)
,其中 Sr/g/b/a
是像素程式所算出片段顏色的對應組件。
SOURCE_ALPHA | 常數 |
public static const SOURCE_ALPHA:String = "sourceAlpha"
語言版本: | ActionScript 3.0 |
執行階段版本: | Flash Player 11, AIR 3 |
混合係數是 (Sa,Sa,Sa,Sa)
,其中 Sa
是像素程式所算出片段顏色的 Alpha 組件。
SOURCE_COLOR | 常數 |
public static const SOURCE_COLOR:String = "sourceColor"
語言版本: | ActionScript 3.0 |
執行階段版本: | Flash Player 11, AIR 3 |
混合係數是 (Sr,Sg,Sb,Sa)
,其中 Sr/g/b/a
是像素程式所算出片段顏色的對應組件。
ZERO | 常數 |
public static const ZERO:String = "zero"
語言版本: | ActionScript 3.0 |
執行階段版本: | Flash Player 11, AIR 3 |
混合係數是 (0,0,0,0)
。
Tue Jun 12 2018, 03:47 PM Z