Re: Display lists

New Message Reply Date view Thread view Subject view Author view

Rémi Arnaud (remi++at++remi.engr.sgi.com)
Fri, 23 Jan 1998 15:44:12 -0800 (PST)


Wilfried Zeise wrote:
>
> Hello Performers:
>
> I am interested in the display lists, which are generated in the culling
> process. I know, that the cull traversal selects the visible portions of
> the database and puts them into a display list. The draw traversal then
> runs through that display list and sends rendering commands to the
> Geometry Pipeline.
> Is there a possibility to print or save the display list for a single frame?

 More than one display list can be generated by the Culler.

 - The scene display list, that can be accessed using pfDrawBin(-1) in
 2.2, contains all objects that do not fall into a bin (see below). This
 display list does not exist if the CULL and DRAW are in the same process
 and if you call pfDraw(), but exists if you use pfDrawBin, or pfDrawScene.

 Also, this is a RING Display list in the CULLoDRAW process model, which means
 that the list is consumed within the frame, you cannot use that process
 model if you want to reuse the Display List.

 If you force the multiprocess model to be APPCULL_DRAW or APP_CULL_DRAW
 then the scene DList exists.

 - The bins (enabled with PFCULL_SORT in setTravMode) can be accessed as
 display list using pfDrawBin(binId). The 2 default bins are the
 OPAQUE and the TRANSPARENT objects, but more can be created (Avoid
 the bin #3, this is reserved to be the Light Point Bin, and have
 a very specific behavior. Use pfGetChanFreeBin to get the id of
 an unused bin)

 Anyway, you see that you can call functions to draw the display lists
 (instead of calling pfDraw()), but do not have access to the list
 itself. If you want to copy the list, the best solution is to open
 another list, and call pfDrawBin/pfDrawScene, and then close it.
 That way you will have a complete copy of the display list and
 use the pfDList API directly. Note that after the copy, you will
 have to call draw again. You can call pfDrawBin/pfDrawScene again,
 or call draw() on your own display list.

 Regards

    _ / _ _
|_) _ ._ _ o /\ |_)|\ | /\ | || \
| \(/_| | || /--\| \| \|/--\|_||_/
                                           
=======================================================================
List Archives, FAQ, FTP: http://www.sgi.com/Technology/Performer/
            Submissions: info-performer++at++sgi.com
        Admin. requests: info-performer-request++at++sgi.com


New Message Reply Date view Thread view Subject view Author view

This archive was generated by hypermail 2.0b2 on Mon Aug 10 1998 - 17:56:37 PDT

This message has been cleansed for anti-spam protection. Replace '++at++' in any mail addresses with the '@' symbol.