[quake3-bugzilla] [Bug 5160] New: Yet another reworked renderer

bugzilla-daemon at icculus.org bugzilla-daemon at icculus.org
Sat Aug 6 06:04:21 EDT 2011


https://bugzilla.icculus.org/show_bug.cgi?id=5160

           Summary: Yet another reworked renderer
           Product: ioquake3
           Version: SVN HEAD
          Platform: PC
        OS/Version: Linux
            Status: NEW
          Severity: enhancement
          Priority: P3
         Component: Video
        AssignedTo: zakk at icculus.org
        ReportedBy: matthias.bentrup at googlemail.com
         QAContact: quake3-bugzilla at icculus.org


I have been working on an updated renderer for tremulous/ioquake3 for some
time.
My primary focus hasn't been on graphical enhancements, but on compatibility
and speed.

The renderer uses only OpenGL 1.1 plus extensions, if any extension is missing
it falls back to a (possibly slower) render path. /r_showtris 1 shows how the
triangles are rendered, blue: GLSL + VBO, green: only GLSL, yellow: only VBO,
red: old GLSL.

At the heart of the patch is a Quake shader to GLSL translator which generates
a GLSL program that can render any multi-stage Quake shader in a single pass.
The shader syntax has deliberately not been changed.

MD3 models can be fully animated on the GPU (requires vertex-texture-fetch and
floating point textures).

The static vertex data is uploaded in buffer objects and the backend tries to
avoid buffer switching as far as possible. Generally the renderer tries to use
a minimum of GL state changes and draw calls, often the GL calls needed for a
batch are just glBindTexture and glDrawElements - no pointer setting, buffer
switching or vertex data upload.

My patch definitely has less graphical features than #4358, but I think I have
spent more time optimizing the backend.

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


More information about the quake3-bugzilla mailing list