PDA

View Full Version : purpose of distance parameter in setRenderWorldOverlay


dcnieho
09-02-2016, 06:23 AM
I have been experimenting with the distance parameter in setRenderWorldOverlay, while viewing a scene through an Oculus DK2. As i understand it, changing the distance should change the stereo-defined depth at which objects on the overlay appear (in my case just a dot, vizshape.addSphere). The manual literally says that this is "the distance in front of the viewpoint to projection the canvas onto", but i do not understand what that means. The distance in front of the focal plane perhaps (so how much closer to the observer)?

In any case, changing this distance by means of repeated calls to setRenderWorldOverlay does not seem to work. I used the ChangeOverlayDistance function below to try this. I perceived no change in depth of my object on the overlay So, does the distance parameter do anything? And what does distance in front of the viewport mean?

Thanks!


overlayCanvas = None
def setupScreenOverlay():
global overlayCanvas
overlayCanvas = viz.addGUICanvas()
overlayCanvas.alignment(viz.ALIGN_CENTER)
overlayCanvas.setRenderWorldOverlay(params.resolut ion,params.FOVy,params.aspectr,1.) # params.resolution,params.FOVy,params.aspectr are same as an oculus eye, so [1920, 1080], 106.18877140224711, and 0.8076826795303448
overlayCanvas.setPosition([0,0,0])

distances = [1.,0.,-1.,-3.,-5.] # negative is perhaps behind the focal plane?
didx = 0
def ChangeOverlayDistance():
global overlayCanvas, didx
didx += 1
print float(distances[didx%len(distances)])
overlayCanvas.setRenderWorldOverlay(params.resolut ion,params.FOVy,params.aspectr,float(distances[didx%len(distances)]))

vizact.onkeydown ('d', ChangeOverlayDistance)

Jeff
09-07-2016, 09:28 AM
The effect of changing the distance will only be noticeable if you are viewing in stereo. If the canvas position has some depth value you'll also notice the effects of the distance parameter more.

dcnieho
09-10-2016, 05:27 AM
Hi Jeff,

Thanks for the reply. I am viewing the scene through the DK2, so its in stereo. My problem is that setting different depth values makes no change in perceived depth of objects on the overlay. They are always very close. That is both when setting depth with the code in the OP, or when hardcoding and comparing 1 to, e.g., 10.

What do you mean by "If the canvas position has some depth value you'll also notice the effects of the distance parameter more"?

Another problem in understanding this is that what the manual says, "the distance in front of the viewpoint to projection the canvas onto", is ungrammatical and is hard to interpret. I have no idea what distance in front of the viewport refers to, as the viewport is not a distance in the virtual world. Is this something about focal length?

All the best,
Dee