faster method of multiply-blender
Krendor

Hi,

I want to have lights in my game. I use a lightmaps
and a "ambientmap".
I draw the DoubleBuffer with

set_multiply_blender(0,0,0,255);
draw_trans_spirte(LightMap, DB, 0, 0);
draw_trans_sprite(AmbientMap, DB, 0, 0);

draw_sprite(DB, AmbientMap, 0, 0);
set_add_blender(0,0,0,255);
draw_trans_sprite(DB, LightMap, 0, 0);

In 800x600 32Bit windowed I get a framerate of 10 fps.
This is to slow for a game. Is there a faster way?

HoHo

Are those bitmaps memory bitmaps or perhaps video bitmaps?

Krendor

The Bitmaps are Memory-Bitmaps.
But I can test the video-card for
support.

Matt Smith

could you use a smaller ambient map around each light?

Krendor

Yes I could.
But the Ambient-Map will be stretched over the screen.
This needs more time and the resolution is bad.

Krzysztof Kluczek

To be more precise, what you call "ambient map" is probably a flare, emissive map or both combined. :)

Quote:

In 800x600 32Bit windowed I get a framerate of 10 fps.
This is to slow for a game. Is there a faster way?

Use Direct3D, OpenGL or OpenLayer, which allows you to use hardware acceleration for such things. :)

Krendor

Oh, Sorry. I forgott to explain.
My Ambient Map is a BITMAP with the Ambient Color.
And the Light Map is a BITMAP with the Flares (etc.).

Thread #587260. Printed from Allegro.cc