Search Unity

  1. Welcome to the Unity Forums! Please take the time to read our Code of Conduct to familiarize yourself with the forum rules and how to post constructively.
  2. Voting for the Unity Awards are OPEN! We’re looking to celebrate creators across games, industry, film, and many more categories. Cast your vote now for all categories
    Dismiss Notice
  3. Dismiss Notice

The Oculus Go will have a Snapdragon 821 processor...

Discussion in 'AR/VR (XR) Discussion' started by astracat111, Jan 10, 2018.

  1. astracat111

    astracat111

    Joined:
    Sep 21, 2016
    Posts:
    719
    So it came out today I believe that the Oculus Go will have a Snapdragon 821 processor. They are saying, I think, that it will be optimized for apps and games on the device, but I wanted to ask what that might mean for devs? I'm not exactly sure how good that kind of processor is, though I've been looking at benchmarks online. I'm going to go out on a limb and assume it would still be healthy to have draw calls lower than 100 and a low script latency.

    From what I understand, the Samsung Galaxy S6 was set to use the Snapdragon 810 but then they decided to use an Exynos chip, and this is the phone I've been making sure my current project can run on. I would assume this is a good phone to be testing on, then?

    Here's the article:
    https://www.theverge.com/2018/1/8/16866318/oculus-go-xiaomi-mi-vr-snapdragon-821-ces-2018
     
    Last edited: Jan 10, 2018
  2. SiliconDroid

    SiliconDroid

    Joined:
    Feb 20, 2017
    Posts:
    302
    Qualcom probably have many trays of 821 chips going cheap, or they are squeezing as much value as possible out of "old" 14nm fab equipment. I think they are a good fit for GO, low price is important.

    Main spec difference is only 2 core and 14nm fab instead of 10nm found in current top phones. The GPU is quite capable but will heat phone and eat battery faster when you push it. Yes <100 DCs (I like <50) and triangles <100k and we should be good.

    Testing on S6 with exynos is a good move, if you can make it there you'll make it anywhere. I would think the perf ceiling of GPU for 821 is only like <10% above 810 due to faster memory. Again 4 vs 2 core wont make much difference.
     
    astracat111 likes this.
  3. astracat111

    astracat111

    Joined:
    Sep 21, 2016
    Posts:
    719
    @SiliconDroid

    Hey, thanks for the reply Silicon. After a year of working with this I've found that you're supposed to kind of have like a plane that the character interacts with and then possibly just a high quality panorama in the background, possibly billboarded 3d objects farther off to get those draw calls down then bake the lighting into the scene to get it to be as fast as possible. I think for most looking to develop for mobile vr that should do it.

    I'm really excited for 2018, as android mobile vr games I really think are going to be more in if they aren't becoming that way already. The Rift while dropping to $400 still technically is about $1000 at the least due to the need to get a new computer. The cheapest higher quality vr I could think of is to go with the playstation.

    There are real opportunities on the horizon to make a buck for indie devs I think with the release of these new standalone headsets at cheaper prices. I believe that mobile is the way to go. It also makes game development feel more like the good ol days with all of the limitations, it really challenges the mind a bit figuring out how to optimize a game for best performance.
     
    SiliconDroid likes this.
  4. Claytonious

    Claytonious

    Joined:
    Feb 16, 2009
    Posts:
    881
    Isn't this exactly the same SoC as the Google Pixel 1? You could test against that and have a *very* close approximation of what your perf will be like on the Go, I would think.
     
    SiliconDroid likes this.
  5. astracat111

    astracat111

    Joined:
    Sep 21, 2016
    Posts:
    719
    I couldn't afford that on my tight budget, personally, having already spent the money on the s6.
     
  6. SiliconDroid

    SiliconDroid

    Joined:
    Feb 20, 2017
    Posts:
    302
    @astracat111 Yes, I love mobile VR development because of the hardware limitations, it's a lot more of a challenge to make a big feel game on mobile VR than desktop. Just like the good old days.:)

    Baking is great if you can, we have plenty of texture memory. I have to use fake shadows with alpha meshes though because my scenes are built procedurally.

    Unlit is fastest, but you can get away with fast vertex lit shader on much of your stuff though, I'm using them for everything except floor, billboards and skydome which are just unlit texture.

    After much optimization, this scene is running stereo 60FPS on Galaxy S8:
     
    astracat111 likes this.
  7. Claytonious

    Claytonious

    Joined:
    Feb 16, 2009
    Posts:
    881
    Is MechZ released yet?
     
  8. SiliconDroid

    SiliconDroid

    Joined:
    Feb 20, 2017
    Posts:
    302
    I wanted it out for Christmas, but other contract work and getting our house ready to sell has pushed it way back. Tonight I'm putting 6 hours into it. It's got ~60 hours left.
     
  9. astracat111

    astracat111

    Joined:
    Sep 21, 2016
    Posts:
    719
    @SiliconDroid Hey that's a really awesome looking demo. I can't believe you have...less than 50 draw calls on that? I really have to work on my optimization technique. Right now I'm getting 120-150 draw calls on average for forest scenes, but I'm using Unity's default terrain. When I get back to programming I'm thinking I will buy that one mobile skybox asset and take a 360 panorama screenshot of all my scenes (they use large terrains right now which isn't working for mobile) and make skyboxes out of them, then make the terrains smaller. Under graphics I need to learn how to properly have the settings increase performance as well, not just under quality.

    I get it with the unlit textures for sure. Using real-time shadows has really hurt my optimization. Hope to play your game on the Oculus Go when it comes out, it looks really cool.
     
    SiliconDroid likes this.
  10. SiliconDroid

    SiliconDroid

    Joined:
    Feb 20, 2017
    Posts:
    302
    Cool, yes baking far out stuff onto a skybox is a nice and powerful idea. Try and get skybox that uses one material and one single mega atlas, you should get whole skybox for 1 DC.

    It's also possible to bake stereographic backgrounds, I'll be trying that next: a seated VR game at a table where only the table and avatars are 3D models, the whole surrounding room will be nice stereo render from cinema4d using a unity VR stereo shader, then all render power can be concentrated into table and avatars.
     
    astracat111 likes this.
  11. astracat111

    astracat111

    Joined:
    Sep 21, 2016
    Posts:
    719
    So the first time using unlit shaders I was like "Huh...so lighting doesn't work....how am I supposed to do lighting" but then realized that you can use blob shadows to simulate light by creating shadows instead of using Unity's default lights. This works great for my game incidentally, as I'm creating a game that looks more like Minecraft with low-res 64x64 and 128x128 textures at most. A lot of the lighting is already created by my hand drawing the shadows into the objects themselves.



    I need to now work on the colors and add more aqua to everything myself now (since that doesn't just automatically happen now using the standard shader), but the tris went from 300k to 21k and the batches went from 150-300 to 30.

    I ran this through my S6 using Gear VR and for the first time ever I'm getting flawless frame rate in vr! So, thanks for the tip, I had read from the oculus developer website to use unlit shaders but didn't really get the idea. The shadow that you now see there is simply drawn right into the scene. I'll just have to make light, mid and dark versions of my tree, bush and rock prefabs. My laptop is a good test computer as it runs on a Radeon R5 by the way, and it can do 300fps which isn't bad I think. I'm also heavily combining my brush and tree objects into bigger meshes.

    Now I'm excited as I'll finally be able to dev and test for mobile properly.

    For a skybox, I'm wondering if something like this would be ideal?

    https://assetstore.unity.com/packages/2d/textures-materials/sky/mobile-skybox-pack-49745
     
    Last edited: Jan 26, 2018
    SiliconDroid likes this.
  12. SiliconDroid

    SiliconDroid

    Joined:
    Feb 20, 2017
    Posts:
    302
    Save this as a "Mobile_UnlitTextureTinted.shader" somewhere in your project directory, then you can select it in unity shader dropdown and use it. It allows you to apply color tint to texture easily, and it runs fast.

    Code (CSharp):
    1.  
    2. ///////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
    3. //   ____ ___ _     ___ ____ ___  _   _   ____  ____   ___ ___ ____
    4. //  / ___|_ _| |   |_ _/ ___/ _ \| \ | | |  _ \|  _ \ / _ \_ _|  _ \
    5. //  \___ \| || |    | | |  | | | |  \| | | | | | |_) | | | | || | | |
    6. //   ___) | || |___ | | |__| |_| | |\  | | |_| |  _ <| |_| | || |_| |
    7. //  |____/___|_____|___\____\___/|_| \_| |____/|_| \_\\___/___|____/
    8. //
    9. //    MOBILE: FAST TEXTURE SHADER WITH COLOR TINT
    10. //
    11. ///////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
    12. Shader "SiliconDroid/Mobile_UnlitTextureTinted"
    13. {
    14.     Properties
    15.     {
    16.         _Color ("Base Color", Color) = (1,1,1)
    17.         _MainTex ("Texture", 2D) = ""
    18.     }
    19.     SubShader
    20.     {
    21.         Lighting Off
    22.         Color[_Color]
    23.         Pass
    24.         {
    25.             SetTexture[_MainTex] {Combine texture * primary}
    26.         }
    27.     }
    28.     Fallback "Mobile/Unlit"
    29. }
    30.  


    Glad you're excited that it runs fast now, you're games looking great BTW.

    The skybox you link has bad points:
    • Too low res for VR, you're going to want 1 * 4096^2 mega texture.
    • Has cylindrical UV mapping; you get pinch point at top if you have texture detail there.

    If you want to apply regular planar skybox textures to a sphere or dome then you should use UV box mapping onto a quad-sphere mesh using UltimateUnwrap3D or something.

     
    Last edited: Jan 28, 2018
    astracat111 likes this.
  13. astracat111

    astracat111

    Joined:
    Sep 21, 2016
    Posts:
    719
    Wow, this is great stuff. Very simply done as well, I'll make sure to use it, thank you very much.