0
我需要將兩張圖片混合成一張照片和一個佔位符。我們的想法是,除了參與者具有特定顏色的地方之外,我們會看到佔位符,在這種情況下,用戶會看到照片。像色度鍵。限制使用PixelBender製作的自定義BlendMode - 如何合併圖像
爲此,我寫了一個Pixel Bender着色器,充當BlendMode。如果背景是正確的顏色輸出,那麼像素圖像會從佔位符中輸出像素。除了事實,我有多個佔位符,一個比其他和我着色器不檢查自己的佔位符的顏色,而是所有的照片下的顏色
<languageVersion : 1.0;>
kernel Crossfade
< namespace : "mynamesp";
vendor : "Artbits snc";
version : 1;
description : "description ... "; >
{
input image4 placeHolder;
input image4 myImage;
output pixel4 dst;
const float3 SPECIAL_COLOR = float3(159.0, 160.0, 161.0);
void evaluatePixel()
{
float4 imgPixel = sample(myImagee, outCoord());
float4 placeHolderPixel = sample(placeHolder, outCoord());
dst = placeHolderPixel;
if(placeHolderPixel.r == (SPECIAL_COLOR.r/255.0) && placeHolderPixel.g == (SPECIAL_COLOR.g/255.0) && placeHolderPixel.b == (SPECIAL_COLOR.b/255.0)){
dst = imgPixel;
}
}
}
,一切工作正常。
有沒有辦法強制BlendMode只考慮一個圖層或特定的背景顏色?
有沒有更智能的方法來獲得相同的結果?
感謝您的幫助!我知道這是一個相當漫長而複雜的問題,特別是對於我的英語:-)
我不確定我是否已經失手。如果我爲每個圖像和佔位符創建一個新的Sprite對象,BlendMode不會考慮這個新的Sprite下的其他變體?即使Sprite是透明的? – wezzy 2010-11-06 15:26:06