Jump to content
Posted 13 October 2012 - 08:22 AM
Posted 13 October 2012 - 10:48 AM
Posted 13 October 2012 - 11:25 AM
Edited by samoth, 13 October 2012 - 11:29 AM.
Posted 13 October 2012 - 01:05 PM
Posted 14 October 2012 - 01:42 AM
I considered it to be as same as I have done in time performance because vertex duplication takes almost the same time. Does it so ?
You could use the geometry shader to duplicate your geometry, transform each duplicate with a different MVP-matrix (skip that in the vertex shader), and assign each duplicate to a different gl_ViewportIndex.
I do not get it. Can you explain it further?
Of course, things that are normally kind of "simple" such as occlusion culling your view frustum are totall impossible then, because you cannot know a priori what cameras 3, 4, or 17 will see (well... you can ... but it's not that trivial any more, and no big efficiency gain anyway, since you must render a lot of geometry that is culled from either viewport).
It's probably just as fast (and more straightforward) to just use many different FBOs and render once into each one in a for loop as you're doing already.
Thanks, I have considered it seriously .
Note that when you have 300+ cameras in one scene, a very allowable optimization is to only render each camera every 5th or 10th or so frame. Nobody will notice anyway. That way you only have to render maybe 30 cameras per frame.
Posted 14 October 2012 - 01:54 AM
My "render in parallel" way is that: group the cameras. In each camera group, the viewing frustums of cameras do not intersect to guarantee proper vertex MVP projections in vertex shader.
This is an odd question. Unless you can get all (or even a portion) of the cameras to render in parallel, you are going to have to render the scene in each camera sequentially. In that case, why not just use one camera and move it from position to position?
Posted 14 October 2012 - 01:56 AM
I use it to render different textures. all cameras are in different place, looking at different views.
Do I understand it right that you want to have 300-700 different point of views?
If so, it is pretty obvious the computer has very much to do...