View Single Post
Old 07-03-2013, 06:51 AM
sleiN13 sleiN13 is offline
Join Date: Dec 2008
Posts: 83
I've looked at the vizard lens distortion script but it scales down the effectively used screen area to much. So much even that the stereo effect suffers because of some black areas showing in one eye and not the other.

The lens distortion script does provide a scaleToFit option but this scales the width and height decreasing the quality of the image. and also distorting the ratio and stretching objects in the scene.

I've successfully implemented the two quads method

renderNode_Right = viz.addRenderNode( size = [640*dis_scale,800*dis_scale])                              
renderNode_Right.setPosition(h/2.0, 0, 0, viz.REL_PARENT)
tex_right = viz.addRenderTexture(format=viz.TEX_RGB, size = [640*dis_scale,800*dis_scale])
node_right = vizshape.addQuad(parent=viz.SCREEN, size=[0.5,1.0])
node_right.setPosition(0.75, 0.5, 0.0)
And similar quad for the left eye. To both quads I've added the lens correction shader.

The only problem I've now is that the framerate of my program gets hit to hard
(it renders the MainView with the two quads in view and all object behind them and then renders the scene twice again for the renderNodes).
I wonder if there is a way to optimize this construction by adding the quad's to a different scene (scene 2) and let the MainView only render this scene.
I've tried this but the renderNode's will only render a black image instead of MainScene. Could this be because the only light in the scene is the HeadLight of the MainView? If so is there a way to add a new HeadLight linked to viz.HEAD or set the scene of the existing HeadLight back to scene 0 (original viz.MainScene)?

Also when setting a different scene for viz.MainView does the viz.MainScene variable change?
Reply With Quote