Pink Textures

Hello, With the new 1.18 update some of my colleagues are seeing pink
only for some parts of our exported 3D models, however I see
them perfectly fine on my environment (no pink textures, all loaded). The 3DS
Max Babylon exporter shows no errors or warnings, the MSFS console shows no
errors or warnings when packaging the model. The most puzzled bit is why do I
see them perfectly fine on my simulator? (1.18.13 fully updated.) What can
cause pink textures to be displayed? how can we debug possible causes? and why
this happens now only after the update? Thanks in advance, Simbol

I believe the pink indicates a missing texture. You may have used a texture
that exists in another addon or update, and your end-users may not have that
installed or updated?

We confirmed the textures are there… in hence why this is so weird and odd…
texture names are unique… This is an internal project at the moment, in other
words not public. S.

check the dev console for the “missing” texture entries. It might indicate a
problem with the JSON file or the virtual filesystem

We have triple checked and all textures are present. The pink values are
now showing even on my sim after I performed a “clean package”… I have
tracked this down to some materials being set as “standard”… something is
happening to the glTFLister and reports model texture not found, despite the
textures are actually there. Error on console: glTFLister | Model texture
not found in the texture directories: ‘…\TEXTURE\xxxxx.PNG’ - for model:
The texture name is there, 100% certain, I even
renamed the texture inside 3DS to track down the issues, this was fine on the
previous update. The weird thing is, I have even changed all materials to
flightsim… and I still get 1 error as above… I suspect the new virtual sim
is having issues to understand the materials being saved by the babylon
exporter. This is a serious issue for our workload… Regards, Simbol

Update Using 3DS skyline PBR Materials causes the same behavior… so
clearly this is an issue between babylon exported + the new packaging tool in
1.18.x. I would appreciate some guidence on the issue… there are certain
things we cannot do with normal flight-sim materials in hence why we use the
PBR materials… Thanks in advance, Simbol

We’re also having this issue, strangely a few models that share the same
texture / tiles will work for example. We have two Bus Stops with Mesh
fencing, one works, the other doesn’t. Shows a pink UV Grid texture. Both use
the exact same texture file.

It is the gLTF loader after the update 1.18.x. It just fails to find textures
that are clearly inside the texture folder. This happens during the package
build process and you will see a warning on the console saying the texture
cannot be found, despite the texture being there. The end result is such
texture doesn’t get converted to .DDS and copied to the package folder with
the relevant .JSON file, resulting on pink missing textures. If you convert
the texture manually to .DDS and prepare a manual .Json file the models load
fine without any pink textures. So the fundamental issue seems to be with the
gLTF loader during packaging “build” time, I think the issue is with “relative
paths”, it can’t find …\TEXTURE\. for some reason. We need a fix for
this… the extra workload every-time I have to rebuild a package to create
.DDS files and .JSON files manually is INSANE. Regards. Simbol

we also found that if two developers have the same texture file name, for
example “Glass.png” the sim seems to chose randomly which one is used if there
are too many then it really has a spin out. Would you mind sharing the steps
for your fix, thankfully we only have a few buildings doing it.

There is no fix, it is an extreme crazy work around I found after lots and
lots of hours of trial and error. You need convert the texture in question
manually to .DDS and declare a Json file for that texture, just like the other
Json files already present inside the destination package texture folder. What
this does is just performing the steps (manually) of what the package builder
and the gLTF reader should be doing automatically for you. Bear in mind, every
time you re-build the package, you need to do this again, for each texture
giving you issues… We need a proper solution / fix from Asobo. On a large
project or a project that is still under development, this work around simple
put is not viable. Regards, Simbol

Yeah, can imagine. We just finished YPAD and I have just attempted to correct
some small errors but with this error now they have become larger problems.

@ImpulseSimulations Hello. I have only
seen pink textures on ground tiles while they’re being generated at the
moment. Can one of you provide us with a package producing the issue so I can
check what’s happening here? Sorry for the inconvenience. Regards, Sylvain

Hi Sylvian Thanks for the help. I am currently away from my dev PC, but It is
pretty easy to replicate: Take the DA-62 sample. Create a new PBR Skyline
material and apply the albedo texture for the flightsim material fuselage.
Change the fuselage to the new material, export, clean and re-built the
package inside MSFS. you will see the warnings inside the console. Regards,

Hi @FlyingRaccon, where you able to replicate it? If you still need a sample
let me know and I will prepare one next week when I am back at my dev Pc.
Regards, Simbol

I had a checkered pink texture after SU5, I scrapped the entire gLTF folder in
my modelLib, re exported from blender with a new name so it got a new GUID and
then I built with the external builder tool and it worked in sim. This model
did not share any texture sets with any other other. It was just 100% randomly
only on this model. Super weird. But not surprised at all.

I had a similar problem. I fixed by opening the model with modelconverterx,
saved the textures with a different name (prefix with model name), saved the
model (overwrote it) and built the project again in the SDK.

Hi @Simbol. Wasn’t able to replicate it yet. A
sample would definitely help! Thanks you. Regards, Sylvain

Ok I will prepare one, but I think impulseSimulation posted a sample.

Hello Here’s a beginning of answer coming from the
@ImpulseSimulations sample analysis When
checking the console after the package was loaded, here’s one of the few
messages I found : VFS Bitmap Loader | Attempt to load texture for
incompatible texture slots. This is not supported; please duplicate your
texture: ‘vfs://impulsesimulations-airport-ypad-
I guess
this texture is one of those used on the objects rendered in pink? What this
message means is that you’re using a single texture for multiple incompatible
slots. When converting from your texture format to the final dds format, the
way the texture is compressed and used depends on the slot and material it’s
targeted for. For instance, if you have a texture that is used on 2 slots with
different compression formats, the engine will only be able to create a dds
matching one of those 2 cases and will report that warning in the second case,
asking you to create a different texture. Can you confirm doing so solves your
issues? Additionally, loading your package also shows some warnings about the
layout: File size mismatch between layout and disk for ‘impulsesimulations-
(layout: 63602, disk: 63651)
This means you modified your package content
after it was built. You want to avoid that. :slight_smile:
@Simbol Your console output being different, you can
also send a sample so I can check why your texture is not found Hope this
helps. Regards, Sylvain

Hi Sylvain, I just got home. I am installing the latest SDK just in case with
verison .14, this is not an issue, however as soon as I install the .14
version, Max 2020 crashes on load… unistalling the SDK and reverting to .13
allows me to open 3D Max 2020 fine… I am updating now 3Ds to see if with the
latest version available this is not an issue, but this is preventing me from
creating the sample at the moment… I might post the sample tomorrow depending
on result. Thanks for all your help with this. Regards, Raul