Welcome to the Oculus Developer Forums!

Your participation on the forum is subject to the Oculus Code of Conduct.

In general, please be respectful and kind. If you violate the Oculus Code of Conduct, your access to the developer forums may be revoked at the discretion of Oculus staff.

All avatars appearing as translucent white columns (Unity/Go)

JoeS2018JoeS2018 Posts: 28 Oculus Start Member
I'm trying to get started with the Avatars SDK on Oculus Go using Unity 2018.2.15.  I have the latest version of the Oculus Integration plug-in (1.34).  I have filled in my app ID, and my app can successfully use other platform services (such as VoIP).  But when I run any of the samples, the avatars appear as translucent white columns, sometimes accompanied by pink blobs that may be hands.  Here's an example from the Avatar Gallery sample:


Any idea what's gone wrong here?  How do I get avatars to appear actual avatars?

Comments

  • Ross_BeefRoss_Beef Posts: 170 Oculus Staff
    Hey @JoeS2018  - That is definitely not the desired appearance of other people in social VR!

    Can you share your logs in case there’s anything obvious // haven’t come across this before 
  • JoeS2018JoeS2018 Posts: 28 Oculus Start Member
    Sure.  I have avatar logging turned on, so it generates a lot of log output.  Log is attached.  There are several texture-related errors that all look like this:

    02-18 06:42:24.166 10682 10697 E Unity   : Texture2DArray is not supported on this platform/GPU
    02-18 06:42:24.166 10682 10697 E Unity :
    02-18 06:42:24.166 10682 10697 E Unity : (Filename: Line: 103)
    02-18 06:42:24.166 10682 10697 E Unity :
    02-18 06:42:24.168 10682 10697 E Unity : UnityException: Failed to create 2D array texture because of invalid parameters.
    02-18 06:42:24.168 10682 10697 E Unity : at UnityEngine.Texture2DArray.Internal_Create (UnityEngine.Texture2DArray mono, Int32 w, Int32 h, Int32 d, GraphicsFormat format, TextureCreationFlags flags) [0x00000] in <filename unknown>:0
    02-18 06:42:24.168 10682 10697 E Unity : at UnityEngine.Texture2DArray..ctor (Int32 width, Int32 height, Int32 depth, TextureFormat textureFormat, Boolean mipChain, Boolean linear) [0x00000] in <filename unknown>:0
    02-18 06:42:24.168 10682 10697 E Unity : at OvrAvatarMaterialManager.InitTextureArrays () [0x00000] in <filename unknown>:0
    02-18 06:42:24.168 10682 10697 E Unity : at OvrAvatarMaterialManager.OnCombinedMeshReady () [0x00000] in <filename unknown>:0
    02-18 06:42:24.168 10682 10697 E Unity : at OvrAvatarSkinnedMeshPBSV2RenderComponent.Initialize (IntPtr renderPart, ovrAvatarRenderPart_SkinnedMeshRenderPBS_V2 skinnedMeshRender, .OvrAvatarMaterialManager materialManager, Int32 thirdPersonLayer, Int32 firstPersonLayer, Int32 sortOrder, Boolean isCombinedMaterial, ovrAvatarAssetLevelOfDetail lod) [0x00000] in <filename unknown>:0
    02-18 06:42:24.168 10682 10697 E Unity : at OvrAvatar.AddSkinnedMeshRenderPBSV2Component (I
    Also, there is a bigger pink lump right in front of the camera when facing forward (not visible in my screenshot above).  I just realized this morning what that may be: it's all the avatar bodies, overlapping in one spot.  So the giant "wtf?" question has been reduced to three more specific questions:

    1. Why are hands and bodies not textured properly?
    2. Why are all the bodies appearing in one spot (the origin, perhaps)?
    3. What are the translucent white columns?


    log.txt 744.8K
  • Ross_BeefRoss_Beef Posts: 170 Oculus Staff
    edited February 18
    I can explain some but not all of it. Referring your post to some developers on the team to triage.

    We use a combination of mesh combination and texture arrays to reduce the avatar drawcalls to 1 (from 1 for each part). It appears that some part of this isn’t playing nicely with you Go. 

    My first question would be have you enabled ASTC textures?, as not doing so can intersect badly with Android development. 

    The columns are part of the avatar, used to give some indication of lower body space occupied. You can disable them with the capabilities setting,

    Let me follow up with my team now I have your logs.

    Can you confirm that the Go itself is up to date / working for non-development purposes, and let me know anything else that might make this an unusual case? I say that only because the first line of logging is that the GPU isn’t supported, and it definitely is for a Go.
  • JoeS2018JoeS2018 Posts: 28 Oculus Start Member
    I do have texture compression set to ASTC:


    And you've answered question 3 now, so that just leaves: why are the heads/bodies misplaced, and why aren't the textures working.

    Thanks for your help on this!
  • Ross_BeefRoss_Beef Posts: 170 Oculus Staff
    Edited my comment above slightly. Anything unusual about your setup?
  • JoeS2018JoeS2018 Posts: 28 Oculus Start Member
    Nothing unusual as far as I'm aware.  This is a commercial Go unit from Amazon, and it's always run fine.  Avatars certainly show up properly in Rooms and other games that support them (e.g. Mills VR).

    And in fact, I have a second Go, sent to me about a month ago from the Oculus Start program, and it shows the same behavior.  So it seems like it has to be a software problem, not a hardware problem.
  • Ross_BeefRoss_Beef Posts: 170 Oculus Staff
    Very strange, as texture arrays are definitely supported on Go.

    To unblock you for now, you could try turning off combine meshes in OvrAvatar.cs, CombineMeshes = false;

    This will disable mesh combining and texture arrays.

    I’m curious to see if this works, as we’re still unable to repro your original issue against an Oculus Go.
  • CogSimGuyCogSimGuy Posts: 33
    Brain Burst
    "We use a combination of mesh combination and texture arrays to reduce the avatar drawcalls to 1 (from 1 for each part). It appears that some part of this isn’t playing nicely with you Go." 

    This is a nice bit of info...as one working on a native implementation of Oculus Avatars is there any more information available on the actually mechanics of the entire system? I've got it partially working from what I've pulled from the samples however what does and doesn't draw (the enables don't seem to have any effect), texturing (I'm writing HLSL shaders), and material systems functionality have many unknowns and there is no real technical documentation beyond how to set things up in UE or Unity...
  • JoeS2018JoeS2018 Posts: 28 Oculus Start Member
    OK, this is progress, of a sort.  All the heads now appear at the top of their columns, instead of overlapping at one spot.  But they are still pink, and the hands (?) still appear at the bottom of the columns.
    I've attached a fresh log.  The Texture2D exceptions have gone away.
    Since you guys seem to be considering some difference between my Go and yours, I've also included the result of adb shell getprop.  Maybe there are some clues in there?
    Finally, I wonder if it could be something that varies with the Unity version?  I'm using 2018.2.8 (not quite ready to advance this project yet).  If you build the Avatar Gallery sample with that version of Unity, does it work for you?



  • Ross_BeefRoss_Beef Posts: 170 Oculus Staff
    Wondering if there’s some Vulkan incompatibility at play. It’s a different issue to something we saw come up recently, but maybe worth a shot..

    Try disabling Auto Graphics API in android player settings>other settings and removing everything except OpenGLES3 from the Graphics API's.


  • JoeS2018JoeS2018 Posts: 28 Oculus Start Member
    Aha!  I had OpenGLES2 above OpenGLES3 in my graphics API list.  :# Forcing OpenGL3 made it work!
    Placement of the hands is still a little weird, and clearly the camera isn't quite where the designer probably intended, but these are minor issues I'm sure I can deal with.

    Thanks for all the help!
Sign In or Register to comment.