[quake3-bugzilla] [Bug 4358] Vertex Buffer Object (VBO) code available

bugzilla-daemon at icculus.org bugzilla-daemon at icculus.org
Tue May 10 06:17:24 EDT 2011


use.less01 at gmail.com changed:

           What    |Removed                     |Added
   Attachment #2663|0                           |1
        is obsolete|                            |

--- Comment #30 from use.less01 at gmail.com 2011-05-10 06:17:22 EDT ---
Created attachment 2702
  --> https://bugzilla.icculus.org/attachment.cgi?id=2702
V15 of VBO/GLSL patch


Big new performance-killing feature is shadows.  I've added two types.

First is dlight shadows, activated with "r_dlightShadows 1". This (expensively)
renders a cubemap for every dlight, and uses it to cast proper shadows when
rendering that dlight.  As this requires 6 full view renders for every light,
it's a hideously expensive operation.

The second is projected entity shadows, activated with "cg_shadows 4". This
(expensively) renders a shadowmap for each of the closest 16 entities, and
renders alpha-blended black on nearby surfaces.  These look similar to
Source-engine shadows, complete with shadows projecting through objects and
overlapping with each other.  These shadows aren't as expensive as the dlight
ones, but the surface culling still needs work, as the shadows are rendered on
far too many surfaces.

As well, I've added a fresnel component to the normal map-based specular
lighting, using a lighting equation much like the one described in
.  It's more expensive, though, and as of yet I haven't added a way to turn it

Along with those three there are a couple of optimizations and crash fixes, but
nothing serious.

>I'd like to see the option to disable the GLSL shaders.

There is one, "r_arb_shader_objects 0".  A lot of features depend on the glsl
shaders though, such as on-GPU vertex animation, and so I haven't put a lot of
work into this path.

>Since the renderer is being rewritten, now is a perfect time to repack the
>structs to avoid unaligned accesses. Right now, they're fucking terrible. 

I haven't been writing the patch to fit 64-bit alignments, mostly because I
haven't been dev'ing or testing on a 64-bit OS. :) Still, I'm open to any
changes or suggestions that don't kill performance on 32-bit.

>Is there a place you hang out that we could work? IRC? Is this just a straight
>port of the XReal code?

I'm usually in #ioquake3 on freenode, but usually not paying attention.  Try
yelling "SmileTheory" in channel and see if I respond. :)

And most of this code isn't a straight port, I've mostly been using XReal as a
reference after cribbing the VBO parts, though the mdv code is largely a cut
and paste job.

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