Different projection matrix per viewpoint
Dear Jeff,
I have implemented a solution where i can change the viewpoint with a toggle button, so i can see a topview instead of a view through the "virtual eyes". In very brief: Code:
BirdEyeView = viz.addView() In that case, is there a way to backup the stereo projection setup and later restore it? I see you can get the projection matrix, but which one should i get, left eye, right eye, both eyes, all? the Thanks and all the best, Dee |
Dear Jeff,
Perhaps it is useful if i provide some more background. I am trying to get some items i render with parent=viz.SCREEN or parent=viz.ORTHO to show up on the Vive. Since my last post, i have found this: http://forum.worldviz.com/showthread.php?t=5573. So I am trying a canvas. But i'd like the vizshapes i parent to this canvas to be rendered with orthographic projection. If i set Code:
canvas = viz.addGUICanvas() Using Code:
canvas.setRenderWorldOverlay() Could you let me know how i can get things rendered orthographically to show up on the Vive? |
And i have a related question. In an overlay, the sizes I should specify my objects in are in pixels, after setting the overlay to the correct resolution. I am having difficulty getting the size of the HMD's screen.
With the vive, I open a window with the default vizconnect setup for the Vive. I then try to get screen resolution: print viz.MainWindow.getSize(mode=viz.WINDOW_PIXELS) What is returned is [3840.0, 1080.0], which is the resolution of my desktop (two 1920x1080 screens, side by side) and not the Vive's resolution of 1080x1200 per eye. Similarly, the returned aspect ratio is 1.77777777778, which is the aspect ratio of one of my 1920x1080 screens. Would you know how i can get the size of the Vive (or other HMD's) screen, instead of of those automatically opened desktop windows? And specifically, how to get the size of a single eye's screen, which is what I (think I) need? Thanks! |
Sorry to keep adding. to the last message:
specifically, i am trying to get the following info: Code:
w,h = viz.MainWindow.getSize() ((3840, 1080), 60, 40.0, 1.7777777777777775) which is not the Vive, but my desktop. How to get each of these from the Vive? This is what i get after calling vizconnect.go(), with the vive setup file as argument (which works fine, 3D world looks good) |
I'll check in with our developers and get back to you on both questions, orthographic projection and getting Vive specs. I'm not sure there is a Vizard command that will return the resolution and FOV of the Vive. You can use vizconnect or vizard commands to find out if a Vive is connected. Then you could retrieve specs saved to variables or a file. Would that work?
|
Hi Jeff,
Thanks for getting back to me! First off, is it perhaps better if we handle this through a support ticket and then post the final results here? I have hacked together the following to get Vive specs: Code:
display_node = vizconnect.getRawDisplay('main_display').displayNode This also leaves me with a new question. In this situation, should i open the overlay (setRenderWorldOverlay())with the resolution of the two screens combined (i.e., 2160x1200), or should i open it at a single eye size, 1080x1200? When i do the latter, things are positioned way off in the HMD, so i used the former which seems to work ok. Its however hard to know if things are positioned correctly, since we can't use a ruler to measure. Thank you and all the best, Dee |
Hi Jeff,
I just realize that more is affected by the fact that viz.MainWindow refers to the auxiliary window on the desktop: calls to functions such as viz.MainWindow.worldToScreen() don't do the right thing either, returning values in desktop screen instead of HMD screen pixel-coordinates. I hope there is some "he, dude, tell me about the HMD screen please" flag somewhere :p All the best, Dee |
All times are GMT -7. The time now is 01:43 AM. |
Powered by vBulletin® Version 3.8.7
Copyright ©2000 - 2024, vBulletin Solutions, Inc.
Copyright 2002-2023 WorldViz LLC