0
Under review

PBR shader renders black on iOS device.

Dave Carlson 7 years ago updated by Freya Holmér (Developer) 7 years ago 6

This shader used to work at the end of 2015. I've resurrected this project and tried updating a few things but now it's giving me quite the hassle with the PBR-based shaders all rendering black.


So, I tried it on a simple sphere with a new PBR-based shader from Shader Forge... with nothing extra done to it. Just select PBR (lit) and assign it. Build and run on device... black shader.


Frustrated! I used to use Shader Forge at work for almost 3 years and it worked really well. Now I just bought Shader Forge a few days ago for my personal work and this is what's happening already.


What's going on with this?

Under review

SF has always used the most expensive / good looking PBR regardless of platform, so it might be that Unity's PBR is now more expensive compared to before. You could try removing some features that you don't need, if there are any. Such as unchecking ambient light/probe support, shadows, reflection probes, or similar.


In any case, SF should support the cheaper PBR models too at some point

Hey there...


I have tried removing some things I didn't need, but the things I do need happen to be skybox ambient and skybox reflections. That's it, really. I didn't even make anything yet and it still didn't work. That's the main reason I posted this problem, because it's no longer working the way it used to and using just the template doesn't work. If it was something I was adding into the template's shader network that may be crippling it, that's one thing. But I didn't! I wanted to see if I could start over with a clean slate and it still wouldn't work.


I did notice that adding a directional light with low intensity made it work, but that's adding some extra draw calls that I was trying to avoid. I prefer starting to light assets with an IBL (skybox for ambient and environment reflections) instead of actual light.


What's odd about adding the directional light is it even reveals the emissive parts of the shader, where without the light, those emissive areas are also black! Very strange.


Thanks Joachim... I do appreciate your response and support! It is a great product and I know these things will happen on those occasions when Unity changes things.

Sounds strange that an additional light would fix it! What version of Unity are you on, and which version of Shader Forge?

Just checking in. Did you verify this problem? Any idea what this could be?

I'm using Unity 5.5.3f1 and Shader Forge 1.36. I've tested Unity's Standard Shader and that's fine on device.


Yes it's very strange that a light would make it work. Even the emissive data won't show without the light. It's really weird... but it sounds like it can help you figure out the issue. (At least I HOPE it can!)


Thanks!