Search Unity

How would one achieve this helmet effect?

Discussion in 'AR/VR (XR) Discussion' started by Boredman1234, Oct 27, 2017.

  1. Boredman1234

    Boredman1234

    Joined:
    Sep 17, 2013
    Posts:
    16
    If you take a look at this video or image below you will see that the player has a visible helmet. I would like to know how I could achieve a similar effect with a 3d helmet. I am experimenting with a rpg type game where the player can find and collect armor that they can equip. Allowing the helmet to be visible would help minimize motion sickness. Unfortunately it is not as simple as putting it as a child of the main camera because then it just looks like a cross-eyed mess. Anyone have any ideas on how I could achieve this?

     
  2. SiliconDroid

    SiliconDroid

    Joined:
    Feb 20, 2017
    Posts:
    302
    Well to be Stereo compatible; the helmet would have to be pretty large.

    Putting any geometry too close to the camera does not work well, it causes discomfort to user as their eyeballs are forced to converge inward too much, the brain is being fed a long focal length cue (eyeball focus) and that does not correlate to the convergence (eyeball yaw) required, can cause headaches etc.

    As a general rule I keep all geometry at least 25cm away from cam, and any permanent viewed geometry 50cm.

    You seeing it as a crosseyed mess... that's not wrong, that's how it would appear in real life, if your eyes could focus that close and there's no way to change that without making your helmet bigger.

    If you make your helmet bigger: you may find scene geometry coming through it: to stop this: disable ztest in helmets shader: this will make the helmet always be rendered over all scene geometry regardless of cameraspace zorder.
     
  3. Boredman1234

    Boredman1234

    Joined:
    Sep 17, 2013
    Posts:
    16
    Thanks for the reply. I understood that the results were not wrong and that's how vision works in real life. I soon worked out the same solution you proposed, but forgot to update this thread. I set ztest to always and I had to set the render queue greater then geometry since ztest only worked when the objects origin was tested.

    Now I have to determine if I still want to use this since I have the same problem as the game referenced above. The problem is when objects get inside the helmet and depth perception starts conflicting. I don't think there is any solution to that though.
     
  4. SiliconDroid

    SiliconDroid

    Joined:
    Feb 20, 2017
    Posts:
    302
    Hmm, i see what you mean, the ztest hack doesnt stop geometry coming too close within helmets aperture.

    I thought a little more on this, the helmets central geometry is the problem: If you make a helmet model where the left camera can only see the left side of the helmet and the right camera only the right then you should be able to bring its geometry right up to the camera.

    So a helmet like in your screenshot without the middle bit should be ok only cms away from the cams. However the end effect of any helmet is to reduce the FOV into the scene so maybe make it an option. Anyway, good luck with it all.
     
  5. Boredman1234

    Boredman1234

    Joined:
    Sep 17, 2013
    Posts:
    16
    Thanks. That could work as well, but I think I'll just stick with the implementation I have. It does what I want and serves it's purpose of reducing FOV like you said. It will be optional of course since it is simply to help those who are more prone to motion sickness.