|
|
发表于 2004-5-14 21:56:00
|
显示全部楼层
Re:关于粒子火焰中模糊算法的问题
其实那两篇文章还是我去年做c语言课设时候写的,呵呵
后来一直没琢磨过图形方面的东西,所以都还是dos下的
ddraw的话如果用flip()似乎速度是不快,我把blur的代码贴出来吧
文章里忘了,嘿嘿
void Blur (LPVGA lpVga,LPUCHAR lpSurface)
{
for (int y=0;y<199;y++)
{
for (int x=2;x<318;x++){
UCHAR c=(lpVga->GetPixel(lpSurface,x,y+1)+
lpVga->GetPixel(lpSurface,x+1,y+1)+
lpVga->GetPixel(lpSurface,x-1,y+1)+
lpVga->GetPixel(lpSurface,x,y))>>2;
if (c>0){
lpVga-> utPixel (lpSurface,x,y,c--);
if ((x>4)&&(x<316)){
if ((c>20)&&(c<150)){
if (rand()%100==0)
lpVga->PutSpark (lpSurface,x,y,c+20);
else
lpVga->PutPixel (lpSurface,x,y,c--);
}
else
lpVga->PutPixel (lpSurface,x,y,c--);
}
}
else
lpVga->PutPixel (lpSurface,x,y,0);
}
}
}
不过这都是很老的技术,我个人觉得还是别把精力放在这样的算法上太多的好,呵呵 |
|