[Bug 3422] New: ioq3 framebuffer object support

bugzilla-daemon at icculus.org bugzilla-daemon at icculus.org
Mon Nov 12 20:45:47 EST 2007


http://bugzilla.icculus.org/show_bug.cgi?id=3422

           Summary: ioq3 framebuffer object support
           Product: Quake 3
           Version: SVN HEAD
          Platform: All
        OS/Version: All
            Status: NEW
          Severity: enhancement
          Priority: P3
         Component: Video
        AssignedTo: zakk at icculus.org
        ReportedBy: gordallott at gmail.com
         QAContact: quake3-bugzilla at icculus.org
                CC: gordallott at gmail.com


basically there is in later drivers support for EXT framebuffer functions
(still not ARB :( ) which allows you to create separate buffers to draw into,
this patch enables a framebuffer rendering route. this allows the buffered to
be bound to a texture and then redrawn to the main screen with special
'post-process' effects, in this code here i have implemented GLSL bloom and a
GLSL rotoscope effect.

I havn't tested this yet on any ones setup but mine (Linux, nvidia drivers with
a geforce 6200) but really it *should* work with any ones setup that has
opengl2.0 support. basically it requires:
GL_EXT_framebuffer_object
GL_ARB_fragment_shader
GL_ARB_shading_language_100
GL_ARB_vertex_shader
GL_ARB_fragment_program
GL_ARB_vertex_program
GL_ARB_texture_non_power_of_two 
GL_EXT_packed_depth_stencil

for some reason the sdl opengl headers only provide GL_DEPTH_STENCIL_NV instead
of GL_DEPTH_STENCIL_EXT is this something that needs to be fixed upstream?
because of this i am not sure weather it will work on ati cards at the mo.

there are a few noticeable graphical bugs at the moment. for example because i
am not sure about how RB_ExecuteRenderCommands there is some ambiguity with
regards to STRETCH_PIC and such. which seems to lead to the post processing
effects getting applied to normal textures sometimes (explosions have a box
around them from blooming the texture) and some textures seem to randomly
disappear too. can anyone shed some enlightenment on this?

it would also be nice if the effects were only applied to 3D rendered stuff
instead of the entire frame (so that the console isn't bloomed and such) but am
not sure how to go forward with this.

with the multiplatform sdl code this should hopefully compile on everything :)

to enable it (to quickly test it) you just need to set the following cvars
r_framebuffer 1
r_framebuffer_bloom 1
r_framebuffer_rotoscope 1

(r_framebuffer_bloom/rotoscope arn't needed but it will look the same as normal
otherwise). generally there is some fps loss from using framebuffers but if its
excessive it would be nice to know. (about 18-40fps on my geforce 6200 with
just bloom enabled, cards with better gpu texture bandwidth should do *much*
better)
-- gord allott (gordallott at gmail.com)


-- 
Configure bugmail: http://bugzilla.icculus.org/userprefs.cgi?tab=email
------- You are receiving this mail because: -------
You are the QA contact for the bug, or are watching the QA contact.



More information about the quake3-bugzilla mailing list