[sldev] "background sky" render pass, render pass sequence

Dave Parks davep at lindenlab.com
Tue Apr 1 11:37:12 PDT 2008


The parcel border overlay, object silhouettes, avatar name tags, hover 
text, etc. are all part of the UI and are not rendered from renderGeom.  
See render_hud_elements in pipeline.cpp.

I believe in release, the render order is like this:

- update water distortion/reflection maps
- render main 3D scene (updateCull/stateSort/renderGeom)
- perform glow post effect (LLPipeline::renderBloom)
- render parcel overlays, nametags, etc. (render_hud_elements)
- render HUD attachments (render_hud_attachments in llviewerdisplay.cpp)
- render object selection silhouettes, light spheres, etc. (render_ui_3d)
- render 2D ui (render_ui_2d)

It's a little confusing because it the call to render_ui_and_swap occurs 
just before the main 3D render, but when it is called, it is operating 
on the framebuffer from the previous frame (render buffers haven't been 
swapped since the last call to renderGeom).  This is to allow as much 
time as possible to lapse before performing the glow post effect, which 
will stall if previously issued GL commands haven't finished.

Argent Stonecutter wrote:
> On 2008-04-01, at 01:35, Dave Parks wrote:
>> If you look in LLPipeline::renderGeom, you can see a loop iterating 
>> through a series of draw pools (LLDrawPool subclasses).  These pools 
>> are sorted according to their type, which is one of the values in an 
>> enum in lldrawpool.h:
>>
>>    POOL_SIMPLE = 1,
>>        POOL_FULLBRIGHT,
>>        POOL_TERRAIN,          POOL_TREE,
>>        POOL_SKY,
>>        POOL_WL_SKY,
>>        POOL_GROUND,
>>        POOL_BUMP,
>>        POOL_INVISIBLE,
>>        POOL_AVATAR,
>>        POOL_WATER,
>>        POOL_GLOW,
>>        POOL_ALPHA,
>
> Which of these pools has the parcel border overlay in it?
>
> _______________________________________________
> Click here to unsubscribe or manage your list subscription:
> /index.html



More information about the SLDev mailing list