Главная страница
    Top.Mail.Ru    Яндекс.Метрика
Текущий архив: 2003.10.27;
Скачать: CL | DM;

Вниз

алгорим подложки текстуры под битмап?   Найти похожие ветки 

 
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 вся ветка

Текущий архив: 2003.10.27;
Скачать: CL | DM;

Наверх




Память: 0.46 MB
Время: 0.011 c
1-89275
Pavel Obishenko
2003-10-14 13:46
2003.10.27
Прозрачный цвет в иконках


1-89228
Ptr
2003-10-13 11:32
2003.10.27
Обработка WndProc(var Message: TMessage);


14-89522
Verg
2003-10-08 17:21
2003.10.27
Хорроший мальчик! :)))


3-89177
Woolen
2003-10-06 12:34
2003.10.27
Ограничения BLOB


1-89352
DimonA
2003-10-16 10:34
2003.10.27
PopupMenu





Afrikaans Albanian Arabic Armenian Azerbaijani Basque Belarusian Bulgarian Catalan Chinese (Simplified) Chinese (Traditional) Croatian Czech Danish Dutch English Estonian Filipino Finnish French
Galician Georgian German Greek Haitian Creole Hebrew Hindi Hungarian Icelandic Indonesian Irish Italian Japanese Korean Latvian Lithuanian Macedonian Malay Maltese Norwegian
Persian Polish Portuguese Romanian Russian Serbian Slovak Slovenian Spanish Swahili Swedish Thai Turkish Ukrainian Urdu Vietnamese Welsh Yiddish Bengali Bosnian
Cebuano Esperanto Gujarati Hausa Hmong Igbo Javanese Kannada Khmer Lao Latin Maori Marathi Mongolian Nepali Punjabi Somali Tamil Telugu Yoruba
Zulu
Английский Французский Немецкий Итальянский Португальский Русский Испанский