[4.7.1][Android] Landscape showing default material on launch

Launching the project for the first time on Android device the landscape has the correct material applied. However, if I change something in the material (for example adding a LandscapeVisibilityMask node), compile and save it, and launch the project on the device, the default material (checkered) is applied to the landscape.

There is a workaround, which works every time: I just close the Editor, delete the folder Intermediate in the project and restart the Editor again. On the next launch on the device the correct material is shown on the landscape.

The Mobile Preview shows always the correct material, without deleting any folders.

UPDATE: It is not necessary to delete the Intermediate folder. It’s enough just to restart the editor, on the next launch on the device the correct material will be applied to the landscape.

Howdy SONB,

Thank you for reporting this issue. I have just attempted to reproduce this issue in the 4.7.2 release of UE4 and have been unsuccessful so far. Would you be able to test this issue in that build and let me know if it is still occurring?

Thanks and have a great day!

Hey Sean,

Unfortunately the bug is still there. I upgraded the engine to 4.7.2 and loaded my test project with a landscape which had a masked material but no LandscapeVisibilityMask node attached to it. Again, on first launch on the device, the landscape had the correct material assigned. Next I just added a LandscapeVisibilityMask node to the material and launched it on the device. This time the landscape had the default material.

The workaround is still working. Closing the editor and deleting Inermediate fixes the issue, but just for one change of the landscape material.

I rebuilt the scene in 4.6.1 and made the same changes to the material without any problems on launch.

Note: Adding the LandscapeVisibilityMask node is just an example of a change which causes the issue. I made many other changes to the material which could reproduce the issue as well.

Anyway, thanks a lot for this great engine! I’m sure you guys will find a solution for this problem.

Hi SONB,

Quick question for you. You mentioned during the 4.6 versions you never had any problems, so you never saw a crash or anything like that? Are you seeing any crashes now, or is the default checker material the main problem you’re having?

In either case, can you attach the output logs for the successful build of your project to this thread?

Thanks very much!

Hi wittlief,

There are some more problems in the 4.7.2 release which I hadn’t in 4.6.1, but still no crashes. The default checker material is indeed my game breaker right now. I had no time to report the other issues yet, except the one with device orientation settings being ignored.

I attached two logs:

  1. clean_intermediate.log, made for the build after deleting the Intermediate folder which assigns the correct material.
  2. dirty_intermediate.log, made without deleting the Intermediate folder from the last build. I made some changes to the material before building the second time which assigns the checker material.

Hi SONB,

Hopefully I have found the root of your problem, but if so it will require some digging of your own to double check. Since mobile platforms use OpenGL ES2, there are restrictions imposed on textures. Some of the restrictions come into play when creating textures. Here is the (I believe) relevant section of your logs:
link text

It appears that a material unsupported for ES2 is being used.

Please review the Texture Guidelines for Mobile Platforms documentation, in addition to the Post Process Effects on Mobile documentation and see if any of your materials are using any of these currently unsupported processing effects or textures. Unfortunately, if there are any that are unsupported, you will need to find a different way to get the desired effect.

If you check your project and find that you’re not using any of the unsupported materials or textures, please report back and we’ll have another look.

Thank you for the suggestion, wittlief.

The guidelines for mobile platforms was the first thing I checked. And even if I broke some rules for mobile textures or postprocess effects, 1. why does it work after I delete the Intermediate folder and not on the second build after that? 2. why does it always work under 4.6.1?

I’m reinstalling Windows right now and going to double check my project again and report back later.

Hi wittlief,

I just checked my textures and processing effects and found nothing unsupported.

Hi SONB,

I haven’t forgotten about you. I’ve sent this out to our head Android guy, who was away all last week at GDC, and I can assure you he’s playing catch-up as fast as he can. I will report back here as soon as he’s had a look at your issue. Thanks very much for hanging tight!

Hi SONB,

I’ve gotten some feedback from our Android guy, and he has requested your project to be able to dig deeper into your issue. Do you mind passing that along to us? If you do not feel comfortable posting here, you can PM it to me via the forums, my user name is the same there as here. He says that would be the best and quickest way to help you out. Thank you again for your patience.

Hi wittlief,

Sure, I would immediately upload my project, but it’s like 2.5 GB heavy. And I don’t know if it’s ok for you guys if I’ll delete some temporary folders/files, the stuff you don’t need. It’s ok if you say “No, we need everything!”, it just would take longer.

Nevermind wittlief. I created a new and clean project, just with a landscape and both bugs I reported on Answers :wink: You’ll get the link in a minute.

SONB,

A quick note of update for your issue; I’ve gotten your project and was able to reproduce it myself. I’ve sent my repro and the project to the Android dev who is going to get to it as soon as he can. Sorry again for the delay, we are definitely working on it.

Great news. Thanks a lot wittlief!

Hey SONB,

Me and the dev spent a chunk of time working on your project yesterday, and we had some weird inconsistencies. So if you can, I’d like you to try a couple of things:

  1. Can you try editing your project without using the LandscapeVisibilityMask node at all? We discovered an older issue that may be affecting that node in specific, so we’d like to exclude that particular node as a problem. If editing your project without using this node works, I will enter a new issue report for it.

  2. Can you try launching onto (if you can) a second device during the same session? That is to say, launch onto one device, see if you get the default landscape, and then immediately disconnect the first and try launching on a separate device. During our testing we had the default textures occur initially on the first device, but then trying many devices (with identical GPUs and different ones) showed your sand texture. Which is unusual to say the least.

The working hypothesis is it’s either that blueprint node, or some issue during the cook part of the launch on process. Thanks for your patience! We’re slowly narrowing this down.

Hi wittlief,

Unfortunately both tests were unsuccessful:

  1. After removing the mask node, I added/removed an emissive color to the landscape material and launched several times still seeing the default material.
  2. Here is what I did: I changed the emission color again (no masking node), compiled, saved everything and launched on my Note 10.1 2014 Edition (SM-P605) which showed the default material. Then I disconnected the tablet and connected my Nexus 4, waited till the Editor recognized the device and launched the project, showing again the default material. I tried it several times connecting first the Nexus then the Note, with no success.

Let me know if you need more tests. I’m glad to help you guys.

Hmm, that is unfortunate. I really had my money on the LandscapeVisibilityMask, heh. Do you mind trying once more without the node? Your project was early in development, would it be a lot of work to start a brand new one with just the map and the sand material without ever using the node at all? I can’t help but wonder if that iteration of your project is irrevocably changed for using the node, but it could just be wishful thinking on my part. If that would be too much work, no worries. We’re still working on it.

Ok, two more things. The Android guy just came down to speak to me about your issue, he’s also suggesting you start your project fresh, trying the following:

  1. Recreate the project from scratch.
  2. Save all starting conditions and quit the editor.
  3. Restart the editor, and then launch on your device. Try the Note 10 first please, because we have that one on hand.
  4. Look for default materials, and report back here.

Alternately (or in addition to), I could send the saved version of your project that we have been working on back to you, and see if you are able to reproduce what we have been seeing (default material on first try with first device, then correct with every device thereafter, even re-trying the first device). Please save any logs you can in both instances. He is still hunting a potential problem with the cook phase of launching on the device.

Hopefully one or both of these will at the very least give us some more clues as to what is happening. Let me know if you want me to return the project copy we have here and proceed that way.

Hmm, I guess it’s time to try your version of my project. Cause I recreated my project and followed all the steps but still see the default material. Tried first with my Note, then Nexus, switching back and forth, with no changes.

I’ll attach the log file of the session if you need it.
link text

Hi SONB,

Thanks for the extra logs. I will send your project back today. Also, we have entered a JIRA issue for this, as the Android dev believes it is a cook during launch issue, and this will loop more people in to have a look. For your tracking purposes, the JIRA is UE-12213. Thanks again for all your patience.