no reflections on Android Vulkan

Hi,

for days I’m trying to get reflections working on the Meta Quest3. In the Editor pcd3d_sm6 preview it looks perfectly fine. With the Andriod Vulkan preview all specular/reflection get way darker and if I hit play the reflections completely disappear. Which is exactly how it looks when I build and play it on the Quest3.

Is there something obvious that needs to be set up that I am missing?
Any help would be very much appreciated!

pcd3d_sm6

android vulkan preview

android vulkan play mode

if I disable the spherical reflection capture in pcd3d_sm6 preview it looks pretty much the same as android vulkan preview in play mode. It seems that somehow the reflection capture gets disabled/not supported when switching to android vulkan

should have mentioned a few more details:

I am using forward rendering
enabled Forward Shading
enabled mobile HDR
enabled “allow static lighting”
enabled “enable virtual texture support”
enabled “enable virtual texture lightmaps”
disabled nanite
disabled Lumen for GI and reflections
and used a Lightmass importance Volume

installed version is 5.8.1

can confirm. doesn’t work. and changing the cvar at runtime while in android vulkan preview play mode crashes the engine. (the crash could be on me tho. i had to environment “hack” my gpu setup to even get vulkan running on it.)

i sent it as a crash report with the thread linked. gentle push for the vulkan team to have a look and maybe implement something to get it to work.

btw… cubemap capture doesn’t work either. i mean… should cubemap captures be automatically treated as a reflection probe? not sure. i rarely develop in my low end mobile setup. the capture for sure does render into the render target and can be read and used in a material. if you do the reflection math you can use that in a forward render setup.

oldschool manual forward render tech. :slight_smile:

the normal state of the engine is deferred tho. hence why there is barely improvement in the forward render path. i get it.

Thanks a lot for your efforts and for trying to reproduce this issue.
And thanks for reporting it right away!
I thought I was doing something wrong. At least now I know it’s actually a bug and I can stop trying to find a combination of settings that work :sweat_smile:

Unfortunately, I don’t have a lot of experience with Unreal, so I’m struggling to recreate the material as you described. Also when thinking about multiple actors in the scene with that same material that might need different reflection captures depending on their location.

Would I have to create a material per reflection capture?

Could you please explain a bit more about how you did it?

the material is just vertex/pixel normal into reflection node into texture sample. a simple world space cubemap sample.

and yes… you would have to create multiple material instances if you require multiple reflections at the same time. every capture needs it’s own rendertarget aswell.

and ofc every capture comes with a performance cost, cause it’s rendering an entire scene. it’s not just about the size of the render target, but a whole scene graph. it should be set up properly so it doesn’t render too much. and/or you’d use a blueprint to control the update frequency.

Thanks a lot for the explanation; that really helped me understand it.

For now I’ll set it up the way you described. I m just glad that there’s a work around to make them work—maybe the reflections will get fixed at some point in the future :slight_smile: