Sometime ago, I took, maybe a wrong turn, and have ended up using selection to determine various parameters associated with a 3D cursor … hotspot, collision and vertical height …
It works well … but I’d like it to go a little faster as there multiple renders to get the information. During the selection rendering, I use a minimized object geometry for the entire scene and pre-cull some objects that won’t be relevant … but is there anything else that I can do to make the process maybe a bit faster ? … I presume that GL_SELECT really doesn’t care about lights, textures, etc ? and that there’s nothing that I should specifically disable ?
Selection/picking in GL is never fast, as it usually uses software rasterization.
Write picking based on your own scene graph, CPU only, instead. Much more efficient.
OpenGL is optimized to pour geometry and state in one end, and get pixels in a framebuffer out the other end. If you get anything else out of OpenGL, you’re likely not going to run fast.
It’s not my job to tell you this but usually if you avoid all of the OpenGL pipleline specific optimizations and operations the software rasterization will be A LOT faster.So if you write a quick soft renderer yourself it will be VERY fast
[This message has been edited by Mihail121 (edited 07-08-2003).]
Thanks guys …
Hmm … as I’ve already written ‘handcrafted’ minimized object meshes, it seems that I’m in the more fortunate position to actually implement what you suggested … and already I’ve got nearly half of the scene swapped over to my own code.