Форум: "Media";
Текущий архив: 2003.10.27;
Скачать: [xml.tar.bz2];
Внизалгорим подложки текстуры под битмап? Найти похожие ветки
← →
AlexT1000 (2003-06-18 15:06) [0]кто-нибудь знает алгоритм подложки текстуры под битмап ( см фотошоп эффекты слоя текстура)?
← →
Stexen (2003-06-19 23:25) [1]что именно нужно не очень понял фотошопом не пользуюсь? я понял как какую то полупрозрачность может и нет ну напиши по подробнее
← →
AlexT1000 (2003-06-20 12:03) [2]это когда текстура как бы проступает т.е передает свой рельеф тому битмапу, под который она подкладывается .
это не прозрачность!
пока сам не увидишь не поймешь. типа bump-mapping вроде того
← →
AlexT1000 (2003-06-20 14:57) [3]я нашел как это делается. это делается через блендингмоде Overlay!
← →
Fenik (2003-06-22 02:00) [4]> блендингмоде Overlay
Объясни, плз.
← →
AlexT1000 (2003-06-23 14:19) [5]ну это такой режим смешивания битмапов . см фотошоп . ты кста можешь скачать этот и несколько других режимов с сайта G32. там в выкладках пользователей
для остальных просто привожу код
procedure Underlay(B1,B2 :TBitmap32);
Var i , j ,ii,jj,xx,yy,h : integer ;
C : TColor32;
P1 ,P2 , P3 : PColor32Array;
begin
P1 := B1.Bits;
P2 := B2.Bits;
C := Color32(255,255,255,255);
h := B2.Height;
for i:=0 to B1.Height-1 do
for j:=0 to B1.Width-1 do begin
ii := i * B1.Width + j;
yy := i mod h ;
xx := j mod B2.Width ;
jj := yy * h + xx;
Overlay(P2[jj],P1[ii],C);
end;
end;
procedure Overlay(F: TColor32; var B: TColor32; M: TColor32);
var fR,fG,fB, bR,bG,bB, aM: cardinal;
begin
{Foreground Alpha and Master Alpha combined}
aM := M and $FF;
aM := F shr 24 * aM;
aM := aM shr 8;
if aM = 0 then exit; //exit if nothing changes ...
{Channel separation}
fR := F shr 16 and $FF;
fG := F shr 8 and $FF;
fB := F and $FF;
bR := B shr 16 and $FF;
bG := B shr 8 and $FF;
bB := B and $FF;
{Combine}
if bR < 128 then fR := bR * fR shr 7 else
begin
fR := 255 - fR;
bR := 255 - bR;
fR := bR * fR shr 7;
fR := 255 - fR;
bR := 255 - bR;
end;
if bG < 128 then fG := bG * fG shr 7 else
begin
fG := 255 - fG;
bG := 255 - bG;
fG := bG * fG shr 7;
fG := 255 - fG;
bG := 255 - bG;
end;
if bB < 128 then fB := bB * fB shr 7 else
begin
fB := 255 - fB;
bB := 255 - bB;
fB := bB * fB shr 7;
fB := 255 - fB;
( fR-bR) ну это такой режим смешивания битмапов . см фотошоп . ты кста можешь скачать этот и несколько других режимов с сайта G32. там в выкладках пользователей
для остальных просто привожу код
procedure Underlay(B1,B2 :TBitmap32);
Var i , j ,ii,jj,xx,yy,h : integer ;
C : TColor32;
P1 ,P2 , P3 : PColor32Array;
begin
P1 := B1.Bits;
P2 := B2.Bits;
C := Color32(255,255,255,255);
h := B2.Height;
for i:=0 to B1.Height-1 do
for j:=0 to B1.Width-1 do begin
ii := i * B1.Width + j;
yy := i mod h ;
xx := j mod B2.Width ;
jj := yy * h + xx;
Overlay(P2[jj],P1[ii],C);
end;
end;
procedure Overlay(F: TColor32; var B: TColor32; M: TColor32);
var fR,fG,fB, bR,bG,bB, aM: cardinal;
begin
{Foreground Alpha and Master Alpha combined}
aM := M and $FF;
aM := F shr 24 * aM;
aM := aM shr 8;
if aM = 0 then exit; //exit if nothing changes ...
{Channel separation}
fR := F shr 16 and $FF;
fG := F shr 8 and $FF;
fB := F and $FF;
bR := B shr 16 and $FF;
bG := B shr 8 and $FF;
bB := B and $FF;
{Combine}
if bR < 128 then fR := bR * fR shr 7 else
begin
fR := 255 - fR;
bR := 255 - bR;
fR := bR * fR shr 7;
fR := 255 - fR;
bR := 255 - bR;
end;
if bG < 128 then fG := bG * fG shr 7 else
begin
fG := 255 - fG;
bG := 255 - bG;
fG := bG * fG shr 7;
fG := 255 - fG;
bG := 255 - bG;
end;
if bB < 128 then fB := bB * fB shr 7 else
begin
fB := 255 - fB;
bB := 255 - bB;
fB := bB * fB shr 7;
fB := 255 - fB;
bB := 255 - bB;
end;
{Blend}
bR := bR + (fR-bR)*aM shr 8;// bR := ( fR*aM + bR*(255-aM) )shr 8
bG := bG + (fG-bG)*aM shr 8;
bB := bB + (fB-bB)*aM shr 8;
{Reset - keeping B alpha}
B := B and $FF000000 or bR shl 16 or bG shl 8 or bB;
end;
← →
Fenik (2003-06-24 19:28) [6]> AlexT1000 © (23.06.03 14:19)
Спасибо. Попробую понять..
Страницы: 1 вся ветка
Форум: "Media";
Текущий архив: 2003.10.27;
Скачать: [xml.tar.bz2];
Память: 0.46 MB
Время: 0.013 c