some days ago I asked if OpenGL only draws vertices in the viewing area. You replied “Yes, but it does all the calculations to see if it should draw it and that I definately should do culling.”
Well, my new question is:
When I’m using a display list and repeatedly draw it in the GLUT drawing function, does OpenGL have to make all these extensive calculations to check if it should be drawn or not?
no. a compilded display list is just like sending the list of triangles to the opengl machine.
i believe john meant yes, unless my knowledge of DL’s is wrong
btw u should still only send the DL’s to opengl that are on the screen. ie do your own gross culling first
[This message has been edited by zed (edited 05-10-2001).]
from what i gathered, he was talking about CULLING triangles, as opposed to clipping them
yes, all triangles WILL be fed to opengl for processing (ie. no, there IS no culling; ogl doesn’t do “extensive” scene culling to avoid sending polys to itself). no, not all triangles will be drawn (ie. yes it will clip)
Basically, it works like this.
Anything you send to the card will be transformed and lit. After this step, the card will check to see which polygons are inside, outside, or partially inside the viewing area. No part of a polygon that is outside of the vieweing area can ever be drawn. This is generally referred to as the clipping stage.
Culling refers to the program itself deciding not to send a polygon (or entire object) to be rendered because the program is aware that the object cannot be seen (because of occlusing or because it is outside of the view).
Gross culling is doing culling at an object level. In other words, you should test to see if the object is at all visible. If it is, send all its polys and let OpenGL sort it out in the clipping stage.
A display list is just like sending polygons in any other fashion; it is just faster at it.