PDA

View Full Version : Accumulation buffer



Csiki
06-30-2003, 11:38 PM
Hi,

I tried to change my engine from using glBend to glAccum.
The old program has 44fps, the new has 1fps...
I don't exactly understand: I'm using a glClear and a glAccum for all light (in the scene was only one light...).
According to AMD CodeAnalyst the 70% of the CPU time eaten by nv4_disp.dll.
I've never seen this dll before in my performance analysis tests...
What this is mean? The accumulation buffer is emulated by software?

I have an AMD XP1800+, Geforce4Ti4200 64MB.
Thanks for the answers,

Csiki

Mihail121
07-01-2003, 12:14 AM
Why don't you switch to glBlend again cause the damn accumulation buffer is still software accelerated and it's slow like hell.U may think that you resieve 1 fps but you resieve an update every 10 seconds infact!

Csiki
07-01-2003, 12:23 AM
Originally posted by Mihail121:
Why don't you switch to glBlend again cause the damn accumulation buffer is still software accelerated and it's slow like hell.U may think that you resieve 1 fps but you resieve an update every 10 seconds infact!
I don't know how to render transparent objects with multiple ligthsource without accumulation buffer. http://www.opengl.org/discussion_boards/ubb/frown.gif
I didn't find any source...
I thought that accumulation buffer is hardware accelerated... I don't need that idiot floating point I want just simply add (in blend: GL_ONE, GL_ONE)...
So, it's realy software emulated? Can somebody show me an accumulation buffer demo program (just to run on my machine)?

Csiki

Jan
07-01-2003, 12:59 AM
Accumulationbuffer runs ALWAYS in software. So forget it.
Look for "multipass rendering". That means for each lightsource you render one pass in the framebuffer and "accumulate" them through blending (donīt know which blendmode).
There are lots of programs out there using this technique.

Jan.

Csiki
07-01-2003, 01:11 AM
Originally posted by Jan2000:
Accumulationbuffer runs ALWAYS in software. So forget it.
Look for "multipass rendering". That means for each lightsource you render one pass in the framebuffer and "accumulate" them through blending (donīt know which blendmode).
There are lots of programs out there using this technique.

Jan.

Yes, I use this method.
But I don't know how to render the transparent objects...

tfpsly
07-01-2003, 01:23 AM
Usually transparent objects do not receive light.
Render them after you rendered everything else, without lighting, from back to front.

Csiki
07-01-2003, 01:30 AM
Originally posted by tfpsly:
Usually transparent objects do not receive light.
Render them after you rendered everything else, without lighting, from back to front.

Is this correct for transparent models???

Csiki

Jan
07-01-2003, 01:42 AM
Hm, thatīs a really hard one. To be honest, i donīt know how to achieve this.
I wonder how Doom 3 does this (in the video one can see, that they do use transparent objects for windows, so they are well visible). Maybe just try it without shading the transparent objects and tell us if it looks good. I would guess, that it looks good as long as the object is more transparent than opaque http://www.opengl.org/discussion_boards/ubb/wink.gif That means transparency should be below 150 or so.
If you find a way, post it, i am really interessted in this.

Jan.

Csiki
07-01-2003, 01:48 AM
Originally posted by Jan2000:
Hm, thatīs a really hard one. To be honest, i donīt know how to achieve this.
I wonder how Doom 3 does this (in the video one can see, that they do use transparent objects for windows, so they are well visible). Maybe just try it without shading the transparent objects and tell us if it looks good. I would guess, that it looks good as long as the object is more transparent than opaque http://www.opengl.org/discussion_boards/ubb/wink.gif That means transparency should be below 150 or so.
If you find a way, post it, i am really interessted in this.

Jan.

I am thinking on make the opaque objects in more pass (because of shadows), and at the end rendering the transparent objects in one pass (thus I'm able to handle upto 8 lights).
This seems to be correct, but I've just opened an other topic about this (picture differences with rendering in one and more pass).

Csiki

V-man
07-01-2003, 05:26 AM
Originally posted by Csiki:
Is this correct for transparent models???

Csiki


Nope. But your transparent objects will never look right since raytracing or something similar is needed to make it look good.

If the objects are very transparent, you can turn off lighting I guess.

This is more about looking good than simulating nature perfectly so you have to judge for yourself.

PS: The accum buffer is hw accelerated on Radeons, but I'm not sure which ones exactly. The 9700 does support them.

NitroGL
07-01-2003, 06:20 AM
Originally posted by Jan2000:
Accumulationbuffer runs ALWAYS in software. So forget it.

That may be true for old card, but ATI's R3xx and I think nVidia's NV3x both support accelerated accum buffers.

Csiki
07-01-2003, 06:57 AM
Originally posted by NitroGL:
That may be true for old card, but ATI's R3xx and I think nVidia's NV3x both support accelerated accum buffers.

Old... Radeon 8xxx and Geforce4 cards are not old. http://www.opengl.org/discussion_boards/ubb/smile.gif

NitroGL
07-01-2003, 08:05 AM
Originally posted by Csiki:
Old... Radeon 8xxx and Geforce4 cards are not old. http://www.opengl.org/discussion_boards/ubb/smile.gif

Old enough, that was two generations ago...