Wayback Machinekoobas.hobune.stream
May JUN Jul
Previous capture 12 Next capture
2021 2022 2023
1 capture
12 Jun 22 - 12 Jun 22
sparklines
Close Help
  • Products
  • Solutions
  • Made with Unity
  • Learning
  • Support & Services
  • Community
  • Asset Store
  • Get Unity

UNITY ACCOUNT

You need a Unity Account to shop in the Online and Asset Stores, participate in the Unity Community and manage your license portfolio. Login Create account
  • Blog
  • Forums
  • Answers
  • Evangelists
  • User Groups
  • Beta Program
  • Advisory Panel

Navigation

  • Home
  • Products
  • Solutions
  • Made with Unity
  • Learning
  • Support & Services
  • Community
    • Blog
    • Forums
    • Answers
    • Evangelists
    • User Groups
    • Beta Program
    • Advisory Panel

Unity account

You need a Unity Account to shop in the Online and Asset Stores, participate in the Unity Community and manage your license portfolio. Login Create account

Language

  • Chinese
  • Spanish
  • Japanese
  • Korean
  • Portuguese
  • Ask a question
  • Spaces
    • Default
    • Help Room
    • META
    • Moderators
    • Topics
    • Questions
    • Users
    • Badges
  • Home /
avatar image
1
Question by applemaniac · Aug 29, 2017 at 01:19 PM · renderingvrcamera viewportstereoscopy

CAVEs, OpenGL stereoscopy and camera frustrums

Hello,

I am currently trying to build a simple asset to display Unity apps in CAVE. What it needs : - Server / client management to handle clusters of computers (that part is completed and working) - Custom camera frustrums for each wall (also completed and working, thanks to mr Kooima and https://en.wikibooks.org/wiki/Cg_Programming/Unity/Projection_for_Virtual_Reality) - Native tracking (also completed, it handles ART's bodies through UDP reading). - Stereoscopic rendering.

This is where i am stuck. My setup uses windows 7, so I can forget about direct3D11. I use OpenGL Core to use the quadbuffer (The CAVE uses Quadro K6000), with the "Virtual reality supported" option checked, and "Stereo Display (non head mounted)" sub-option. Additionaly, all my cameras are doubled (one is left, one is right, they have a 6.4cm separation), and the result is weird : - with "virtual reality supported" checked, i get stereoscopy but the frustums are broken. - If i just uncheck this option and leave the rest the same, the frustrums are correct but I get no stereoscopy. I've tried many other options, but i can't make both work :( any reason or solution in mind ? why does stereoscopy change frustrums ?

Anyway, even if you don't, thank you for reading this :)

Antoine

Comment
Add comment
10 |3000 characters needed characters left characters exceeded
▼
  • Viewable by all users
  • Viewable by moderators
  • Viewable by moderators and the original poster
  • Advanced visibility
Viewable by all users

1 Reply

· Add your reply
  • Sort: 
avatar image
2
Best Answer

Answer by mikewarren · Aug 29, 2017 at 06:47 PM

@applemaniac

Ok, if I didn't know better, I'd think I had written this post as I have nearly the exact same setup. CAVE, (no cluster though - single host), ART tracking, Windows 7 - OpenGL, Quadro cards. I've spent considerable time working on getting CAVE frustums working.

First, are you aware of the Cluster Rendering support? I've not used it as it's been historically buggy, so I'm just driving our five wall CAVE off of a single host. But, it's supposed to handle input device synchronization, frame sync, swap buffers, etc. Just letting you know in case you weren't aware.

Secondly, are you doing anything with the stereo frustums?

In a CAVE setup with head tracking, because the display position is fixed and the head/eyes are constantly moving, you'll need to calculate a view and projection matrix for each eye's asymmetric view frustum and use the SetStereoViewMatrix and SetStereoProjectionMatrix calls on the stereo camera.

I've had a few gotchas using the approach over the past few years (as I remember)

  1. Those matrices are OpenGL standard (eg. right handed)

  2. I think they completely override the other camera projection / view settings, and I think they're in world space, not local space.

  3. As Unity has continued to add VR platform support, quad buffered stereo seems to be one of the things that breaks regularly between versions. I'm using 5.5.3 now. I think 5.4 was broken, and maybe 5.6. I thought 2017.1 was working, but I've been concentrating on head mounts lately, so it's been a while since I tested the OpenGL stereo code.

Not, sure if that helps, but feel free to follow up with questions if you'd like.

Comment
Add comment · Show 4 · Share
10 |3000 characters needed characters left characters exceeded
▼
  • Viewable by all users
  • Viewable by moderators
  • Viewable by moderators and the original poster
  • Advanced visibility
Viewable by all users
avatar image applemaniac · Sep 01, 2017 at 07:16 AM 0
Share

Thank you a lot pour your answer ! i'm glad i am not alone with these issues. I knew about cluster rendering, but didnt use it as Unity support told me they stopped developping it. Also, I needed a special licence.

I am not doing anything special between mono and stereo mode - juste adding eyes and calculating more frustrums. Since it works perfectly in mono, i am pretty lost. I will try it on Unity 5.5.3 as you advise. When you mean "broken", do you mean it doesn't work or only with issues?

I will also try to change some parameters in my frustrums scripts (especially the "estimate view frustrum" part, cf my previous link), and I'll keep in touch.

avatar image applemaniac · Sep 01, 2017 at 08:20 AM 0
Share

Actually, what you told me totally solved the issue. I was not using SetStereoProjection$$anonymous$$atrix and SetStereoView$$anonymous$$atrix, only the monoscopic equivalent ones for each eye. I don't really understand the difference, but I don't need to I guess ;) Thank you again !

avatar image KdRWaylander · Sep 01, 2017 at 08:23 AM 0
Share

(converted to answer)

avatar image mikewarren · Sep 07, 2017 at 05:44 PM 0
Share

I've been working with the stereoscopic rendering for a number of years, and it's confusing to me, too. I think it's a hard problem for Unity because there's more than one way to accomplish the same thing, and I think they try real hard to provide enough simplicity for common use cases and then add more in-depth support for the remainder. The interfaces are always evolving and some conflict.

I use a single camera approach and set the left/right eye matrices in the stereo calls. I suspect you could do the same thing (maybe?) with the regular projection matrix interface if you created two cameras (left/right) and had each draw into the appropriate buffer.

Glad to hear it's working.

Your answer

Hint: You can notify a user about this post by typing @username

Up to 2 attachments (including images) can be used with a maximum of 524.3 kB each and 1.0 MB total.

Follow this Question

Answers Answers and Comments

94 People are following this question.

avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image

Related Questions

How to make a split screen, one for a main camera and one for the VR set camera? 1 Answer

Render texture fullscreen on top of camera output 0 Answers

How do you change the dimensions of the Steam VR view on the mirror screen (URP) 2 Answers

Using "Stereo Display (non head-mounted)" in Virtual Reality generates very low resolution 1 Answer

Render a Avatar head smaller for only one camera 1 Answer


Enterprise
Social Q&A

Social
Subscribe on YouTube social-youtube Follow on LinkedIn social-linkedin Follow on Twitter social-twitter Follow on Facebook social-facebook Follow on Instagram social-instagram

Footer

  • Purchase
    • Products
    • Subscription
    • Asset Store
    • Unity Gear
    • Resellers
  • Education
    • Students
    • Educators
    • Certification
    • Learn
    • Center of Excellence
  • Download
    • Unity
    • Beta Program
  • Unity Labs
    • Labs
    • Publications
  • Resources
    • Learn platform
    • Community
    • Documentation
    • Unity QA
    • FAQ
    • Services Status
    • Connect
  • About Unity
    • About Us
    • Blog
    • Events
    • Careers
    • Contact
    • Press
    • Partners
    • Affiliates
    • Security
Copyright © 2020 Unity Technologies
  • Legal
  • Privacy Policy
  • Cookies
  • Do Not Sell My Personal Information
  • Cookies Settings
"Unity", Unity logos, and other Unity trademarks are trademarks or registered trademarks of Unity Technologies or its affiliates in the U.S. and elsewhere (more info here). Other names or brands are trademarks of their respective owners.
  • Anonymous
  • Sign in
  • Create
  • Ask a question
  • Spaces
  • Default
  • Help Room
  • META
  • Moderators
  • Explore
  • Topics
  • Questions
  • Users
  • Badges