Custom ground texture becomes extremely dark under some lighting conditions

I’ve recently started doing COMPs/NRMs for some of my custom ground materials and when the sun is low, depending on the orientation of the material, the texture will become extremely dark. I have played around with the roughness, but I’m pretty sure it’s tied into the Normal.

I believe I am setting up the texture correctly:

Normal in DirectX format (even though I don’t think this matters since the green channel is not used).

COMP/NRM Channels
Red - Metalness (Flat black - not used)
Green - Norm Red
Blue - Roughness
Alpha - Norm Blue (Wrong - Should be DirectX Normal green channel)

I haven’t noticed this issue on all MSFS materials with Comps, but it also could be that I didn’t have the texture rotated so that the lighting angle was just right. I have noticed it on the default JimaRock material though.

So, I’m guessing this is just in how the sim handles rendering the normal and is likely not something I can control besides finding an orientation that works best with year-round lighting conditions? (2.9 MB) (2.0 MB)

1 Like

(The alpha in the texture you provided seem to be all white?)

Me and other developers has experienced this too, and seems to be related (imho) to a too much “high power” normal map.
When looking at the NdotL PBR debug, problematic materials are showing a very pronounced normal versus those that are not showing the issue (and seems legit because trying to render a rock on soil requires a large difference to create the bump effect)
Maybe the normalised result for those really bumpy normal maps is so high and is tricking the engine, considering the whole texture raised thus casting a shadow?
Really now a shader guy so pure guess!!

Hmm. I’ll generate a few new Normal maps and play around with the blur and detail settings to see if I can get something a bit more neutral.

The Normal Blue channels all keep coming out as mostly white, but there is a bit of detail in there if you look, mostly near the top where the majority of the rocks are.

Alright, I’ve tried tweaking several normals to be less detailed - much less detailed, to the point where it’s pretty much useless.

It seems like it must just be in how the sim renders the ground material Comp depending on light angle. I’m not sure what else I can tweak as I’ve tried lighter/darker channels, less detailed, even flat colors in some channels with seemingly the same result.

I’m at a loss.

I tried making some ground materials as well and the COMP just doesn’t work. It not only changes color/contrast in different lighting conditions, but also if the texture is rotated.

This needs to be fixed in the SDK.

The NRM comp textures are explained like this in the SDK:

But this is wrong in my experience. The lighter the blue, the rougher. Am I wrong?

Here’s a link to what I came up with:
The NRM was assembled in photoshop by copying channels. The individual materials were made with Materialize… I probably went overboard exaggerating the Normal. There is almost no metallic, and almost no smoothness, so reflectivity is almost zero.

@rhumbaflappy Your attempt at the material seems to work flawlessly.

I tried to figure out what you are doing differently and applied it to my gravel material, however I am still running into the same issue. The gravel material is already PBR, so I don’t need to create anything in Materialize (Which btw, your Materialize materials look 10x better than my previously eyeballed results - I need to sit down with a tutorial)

I changed to exporting as a TIF instead of PNG - could you tell me what what TIF export settings you used? I’m currently working in Photoshop with these settings:

I did go back and try another export by unchecking layers on the initial export screen, which allowed the Save Transparency option to become selectable in the secondary screen pictured above. Which I did select and do another export with, but same result - not sure if that’s needed as either way retains the alpha when I open it again in PS.

A PSD for the gravel material I put together:

The NRM is a type of composite file, but unlike the COMP file used in object materials.

To make a NRM for a ground material you need 3 textures:
metallic.png RGB
roughness.png RGB
normal.png RGB

The NRM is made best as a tif file in photoshop. It is RGBA.

Channel assignments in NRM:
red = metallic (Brighter is more metallic - use any channel)
green = x direction normal (probably the red channel from your normal texture)
blue = roughness (Brighter is more rough - use any channel)
alpha = z direction normal (probably the green channel of your normal texture)

To transfer channels, I Select a Metallic texture channel, then CTRL-A then CRTL-C to copy,
then Select the red channel of the NRM.tif, then CTRL-A then CTRL-V to paste to the NRM red channel…

The NRM needs all 4 channels assigned as above.

The Green channel x-direction normal has highlights horizontally.
The Alpha channel z-direction normal has highlights vertically (with light bulges or prominence to the top)

You can make a NRM from a model’s COMP file by using the g channel for roughness,
the b channel for metallic.
Then from the Normal texture, use the red normal as the g channel of the NRM and the green normal as the NRM alpha.

In your NRM, the red (metallic) should be black or nearly so as you don’t want metallic.
The blue should be quite light, as it is a rough material.
The green looks OK as it seems to be the x-direction of the normal texture (red channel).
The alpha isn’t right. It should match the NRM’s green channel, except the highlights are vertical.Did you use the AO? It should be the normal texture’s green channel.

1 Like

This is where I messed up.

I was thinking:
R = X
G = Y
B = Z

It’s really:
R = X
G = Z
B = Y

Using the DirectX Normal’s green channel in the NRM Alpha solves the issue. I have amended my channels in the first post to reflect this. I also used the same PS export options as in my screenshot above.


1 Like


I tried using this export setting on quixel mixer but I get the dark effect on certain angles. Am I doing it right?

It looks correct. Maybe the Normal is in OpenGL format instead of DirectX?
Try to check invert under the Normal Z field.

I’ve never used Quixel Mixer, so I’m guessing that that does what I think it does and inverts the colors of the Alpha.

I figured it out. I changed Z for Y in the alpha and inverted it.

This topic was automatically closed 30 days after the last reply. New replies are no longer allowed.