cancel
Showing results for 
Search instead for 
Did you mean: 

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

JoeS2018
Protege
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:

6ib0y118y2ei.jpg

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

11 REPLIES 11

Ross_Beef
Heroic Explorer
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 

JoeS2018
Protege
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?


Ross_Beef
Heroic Explorer
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.

JoeS2018
Protege
I do have texture compression set to ASTC:

ib3oj0qh2yju.png

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_Beef
Heroic Explorer
Edited my comment above slightly. Anything unusual about your setup?

JoeS2018
Protege
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_Beef
Heroic Explorer
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.

CogSimGuy
Protege
"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...

JoeS2018
Protege
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.
7223zx3clych.jpg
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?