Before I start writing about my problem, please keep in mind that I know very little about materials and unreal engine in general. In other words, I’m a noob.
I’ve been making a mobile game, and I decided to add in a fancy material. This material works whenever I do a preview in the standalone game, but whenever I do the mobile preview or when I launch it on my phone, I can’t see it. Can I fix this somehow? Can my phone just not handle it? And if so, can I fix that?
Probably, you are using things in your material, that cannot be properly compiled for mobile shader. Make sure to turn on Mobile stats and turn off stats In material editor toolbar. This way you will see an error. I bet that it is not compiling because of noise material expression.
Deathrey is correct, the noise expression node isn’t supported for mobile. You should check this documentation for further information on materials for mobile.
You may find the troubleshooting section particularly helpful. Also, just incase you are unsure on what Dethrey is talking about with the mobile stats here is a screenshot showing the toggle for mobile stats. This will tell you if you have an error in your material for mobile.
I was afraid you were going to say that. Well, I suppose I should change it with something else then. Thanks for responding.
You can get around this issue by using the new draw material to render target feature! Steps:
- Create a material that will use the noise node and have the noise plugged into emissive.
- Once you have the noise looking how you want, create a render target and a new actor blueprint.
- In the actor blue print event graph add a draw material to render target node on event begin play.
- Tell it to draw to the render target you just made in the content browser and use the noise material as a base.
- Drop the Blueprint into the scene and Play In Editor.(PIE)
- Stop PIE and the render target will now have the noise drawn to it. (you may have to hide the alpha channel to see it)
- Right click the render target and create a static texture from the render target.
- You can now use this as a texture sample instead of the noise node!
Note that if you want to have higher resolution you have to make the render target resolution higher.