Multi-viewport rendering bug
Posted: Wed Aug 11, 2010 18:54
Hi CE,
Specifically the CEGUIRQListener approach to rendering duplicate gui's in multiple viewports:
I have a dual viewport setup for passive stereo applications and came across a bug, whereby I was getting a mysterious 3rd rendering of gui elements at a peculiar position and aspect ratio. Turns out it was linked to a scene that contained shadows, the confusing thing was that, when switching between two different scene's within the same app, the bug would disappear and reappear depending on which scene you had switched to
Anyway, I debugged it and noticed that an 'extra' SHADOW render was being done which was the same renderqueue as my gui elements renderqueue, presumably because OGRE internally assigns this pass to the last renderqueue in use, in my case my gui elements
The problem is that the renderqueue my gui resides in is fired twice causing the queue_id check to pass and rendering my gui an extra time, on top of that the viewport dimensions in this call seem to be the size as the main window, so I get an extra large set of gui elements appear on top of my scene!
To fix it for now I do a check of the invocation string=="SHADOW", however this doesn't seem like a solution and I haven't looked into OGRE yet to see if there could be other internal operations that do the same thing, so I was wondering if you had any ideas for a better method of avoiding this problem?
As I understand it, theres not a ready-made solution for multiple viewport rendering built-in to 0.7.x yet is there? i.e. split-screen multi-viewport gui rendering isn't implemented is it?
I'm going to have a think on it, so this is just a heads up in case anybody else uses this approach and gets caught out, it was quite a head scratcher I can tell ya!
Best Regards,
Ian.
Specifically the CEGUIRQListener approach to rendering duplicate gui's in multiple viewports:
I have a dual viewport setup for passive stereo applications and came across a bug, whereby I was getting a mysterious 3rd rendering of gui elements at a peculiar position and aspect ratio. Turns out it was linked to a scene that contained shadows, the confusing thing was that, when switching between two different scene's within the same app, the bug would disappear and reappear depending on which scene you had switched to
Anyway, I debugged it and noticed that an 'extra' SHADOW render was being done which was the same renderqueue as my gui elements renderqueue, presumably because OGRE internally assigns this pass to the last renderqueue in use, in my case my gui elements
To fix it for now I do a check of the invocation string=="SHADOW", however this doesn't seem like a solution and I haven't looked into OGRE yet to see if there could be other internal operations that do the same thing, so I was wondering if you had any ideas for a better method of avoiding this problem?
As I understand it, theres not a ready-made solution for multiple viewport rendering built-in to 0.7.x yet is there? i.e. split-screen multi-viewport gui rendering isn't implemented is it?
I'm going to have a think on it, so this is just a heads up in case anybody else uses this approach and gets caught out, it was quite a head scratcher I can tell ya!
Best Regards,
Ian.