• Which the release of FS2020 we see an explosition of activity on the forun and of course we are very happy to see this. But having all questions about FS2020 in one forum becomes a bit messy. So therefore we would like to ask you all to use the following guidelines when posting your questions:

    • Tag FS2020 specific questions with the MSFS2020 tag.
    • Questions about making 3D assets can be posted in the 3D asset design forum. Either post them in the subforum of the modelling tool you use or in the general forum if they are general.
    • Questions about aircraft design can be posted in the Aircraft design forum
    • Questions about airport design can be posted in the FS2020 airport design forum. Once airport development tools have been updated for FS2020 you can post tool speciifc questions in the subforums of those tools as well of course.
    • Questions about terrain design can be posted in the FS2020 terrain design forum.
    • Questions about SimConnect can be posted in the SimConnect forum.

    Any other question that is not specific to an aspect of development or tool can be posted in the General chat forum.

    By following these guidelines we make sure that the forums remain easy to read for everybody and also that the right people can find your post to answer it.

MSFS20 Creating normal map

Messages
90
Country
germany
Hi all,

I'm quite new to Blender and modeling in general, so please excuse if I ask stupid questions or if I'm doing something horribly wrong ;)

I created a round building (in particular a lighthouse) based on a cylinder and a (half-)sphere each with 32 segments. Now I'm trying to generate a normal map in order that the building appears round and not that angular.

Based on suggestions in YouTube videos, I created a high-res version of the building using a subdevision modifier and baked the normals to my original objects. In Blender, the result look quite good. But in MSFS, it looks like the normals are somehow inverted. Here are some screenshots of the issue.

Structure and surface normals:
Lighthouse_blender_normals.jpg

Result in Blender:
Lighthouse_blender.jpg

Building in MSFS:
Microsoft Flight Simulator Screenshot 2020.09.15 - 19.27.36.46.jpg

Do you have any idea what I may doing wrong?

Thank you in advance for your help!
 
Your problem is not the missing normal map, but the smoothing at the edges. There's different ways and techniques, but here's what I would do with your model:
Go to edit mode (tab), select all (A), right click and select "Shade Smooth". This will create another issue though - because you now have to define your sharp edges manually. To do that, select the edges you want to sharpen - in edit mode switch to edge mode (2), select the edges and then right click -> "mark sharp". You'll see that the edges will turn blueish in the editor.

You can get some more control over the smoothing in the "Object Data Properties" in the properties screen on the right. There's a control for Normals and you can either select "Auto Smooth" or define an angle manually. The idea is that for this mesh, if the angle between two faces is lower than the value set there, it'll try to smooth out the normals, if it's higher than that value, it will create a sharp edge.

Let me know how this works for you, especially if turning on the smoothing creates other shading issues in the sim.
 
Thank you for your quick and detailed reply!

Enable smoothing looks quite good in Blender, while the result is better with auto smoothing than without. In the latter case, some edges become round even though they are defined as sharp.

Sharp edges:
Screenshot from 2020-09-16 16-30-24.jpg

With auto smoothing:
Screenshot from 2020-09-16 16-31-59.jpg

Without auto smoothing:
Screenshot from 2020-09-16 16-32-01.jpg

Just for clarification: Using this method, I don't need to apply normal maps to get round edges at all, do I?

I'll test how it looks in the sim later today.
 
Brace yourself for some technical details!

Each vertex of a polygon contains not only information on it's location, but also a normal vector. The normal vector is used by the graphics engine to calculate in which direction light gets reflected - angle of incidence equals angle of reflection. Since you only provide the normal vector for each of the vertices, but NOT for the whole polygon, the in-between will be smoothly interpolated, between the provided points, by the engine. When you "smooth" things in Blender as you did, you're aligning the normals of all intersecting points.
Something like this:
1600269843410.png


Normal maps are used to overwrite the interpolation between your vertices. That means that for each pixel on the normal map, you define the vector at which light reflects. This is useful to create a more detail surface, without adding more geometry (=vertices, polygons) to your model.

So the short answer: nope. You won't need a normal map. But you can make things much prettier with it.
 
Thanks for the additional explanation! I always like to learn how thinks work. However, I don't understand completely why Blender smooths the rim of the dome when auto smooth is disabled, but I define sharp edges manually (third picture of my previous post). It appears that Blender is ignoring the definition of sharp edges and interpolate there anyway.

Btw: I utilized normal maps already (in my eyes quite successfully) on my hangar building to create the wall and roof surfaces:
Hangar.png

Unfortunately, I cannot test the result of the normal smoothing in the sim today :( Since the MSFS update has been released, it needs to download several GB of data, which takes quite long. I'll report back on this tomorrow!
 
The update is finally finished and I've very good news: Your suggested solution works perfectly fine and the model looks great in the sim as well. Thank you very much again!
Microsoft Flight Simulator Screenshot 2020.09.17 - 09.02.41.95.jpg Microsoft Flight Simulator Screenshot 2020.09.17 - 09.03.13.37.jpg

Unfortunately, I know have another problem with my hangar building and again with normals. In particular, the normal map seems to be interpreted differently in Blender and in the sim, which can be seen in the following screenshots:

Blender:
Hanger.jpg

Sim:
Microsoft Flight Simulator Screenshot 2020.09.17 - 09.22.00.04.jpg

In both cases, the Sun is shining from the right side. In Blender, the normal map of the walls is applied as intended, i.e., the shaded parts are on the left side the larger segments such that they appear to "come out" of the wall. However, in the sim, it is inverted, i.e., the shaded parts are on the right side of the larger segments and the smaller segments appear to come out of the wall.

It is probably worth to mention that the respective parts of the normal map are rotated by 90° (top to the right) in the corresponding image file. Other normals that are not rotated or rotated by 180° look good (e.g. the front of the building shown in my previous post).

My quick-and-dirty solution would be to invert the normal map such that it looks correct in the sim but wrong in Blender. But I'm afraid that I'm doing something different wrong. Do you have any suggestions?

*edit*
I guess I will redo the UV mapping now, since I'm not satisfied with the utilization of the available space anyway (the resolution has become quite small in certain areas). When doing so, I will take care that no surface is rotated by 90° or 270°. However, it would be interesting to know if I did something wrong in the first place.
 
Last edited:
If you are baking your normal maps in blender, you need to know that it uses OpenGL instead of DirectX. That means that the green channel from the normal map should be inverted to obtain the desired results in the sim (I am guessing MSFS is using DirectX). If normal maps are baked in blender, go to render options and under the "Bake" menu you can find "Influence", this is where you select the type of space (tangent, object, etc.) you want to use for your normal maps and under that you will find "Swizzle R, G, B". For the "G" (green channel) use "-Y" instead of "Y", that will invert your green channel and convert your normal map to DirectX. That's the quick fix but your normal maps will look totally wrong (inverted) in Blender because it is using OpenGL to display them in your viewport.
 
Thanks for the explanation! I didn't know about that, but this perfectly explains the error characteristics. And when I bake the texture with the green channel inverted, the normal map looks like I would expect it to look to be correct in the sim.

After improving my UV mapping, in know have all surfaces aligned with rotation 0° or 180°. As a result, the normal maps do not variate along the Y-axis anymore and the green channel is 128 everywhere. However, I'll keep this in mind for upcoming projects!
 
So can you apply textures right in blender and bake them to a texture file, then wrap that back on the object for exporting. Of is it easier to make a uav map and color that etc
 
I usually do the uv unwrapping and all the texturing in Blender and then export them. At least when doing the models from scratch, there is no need to anything except for normal maps (if you want to transfer a them from a high-res model).
 
To be clear. You do not unwrap the model on an albedo texture sheet. You Apple textures from within blender onto the model and when you bake it, it makes a texture map for the textures folder. So after baking it, you link to that in the msfs properties, albedo map for export?
 
Here is my workflow:
  1. Create the 3D geometry
  2. Unwrap the model in Blender, either using Smart UV Project or manually depending on the complexity of the model
  3. Create a new texture and paint the texture in Blender
  4. Apply the texture using the MSFS Material Parameters (Texture maps -> Albedo)
For creating the normal map, I have three different approaches depending on what I want to archive:
  • Create a high-res version of the model and bake the normal map to the original model, or
  • Create a high-res version of parts of the model, bake the normal map to a plane, and then "paint" this normal map on my model, or
  • Point a normal map that I already have (e.g. wood) directly on the model.
In all three cases, the normal map is later applied to the model using the MSFS Material Parameters (Texture maps -> Normal).

Note that this workflow is for hand-crafted models. If you are using the Google Earth decoder, the workflow may be different. I haven't done this so far, but according to videos that I watched, here you also do the unwrapping in Blender but then bake the albedo texture from the original model to the model with the new UV mapping.
 
got that, so here is what i tried. Made the model, uv unwrapped each pace in orhto mode. aligned faces, painted in my bitmap in gimp, exported png to model in blender. checked for alignment. back in my gimp, save file as b and w. and imported into materialize. made a normal map. in blender attached via msfs properties, exported and uploaded. didn't turn out to bad.... Now to figure out to make the windows glass instead of my picture placeholders
FARMERS_SM.png
 
Your model looks pretty good!

How did you make the night version? I'm able to let a whole element glow by setting the emissive color, but I failed to let just the windows glow. I tried to make a black/yellow emissive texture, but this made the model look strange and the windows weren't glowing at all.

Regarding transparent windows, this is actually pretty easy: You need to cut holes into your model where you have your window texture now. Then you add a plane in Blender where the glass is supposed to be and in MSFS Material Params you select "MSFS Glass" instead of "MSFS Standard". You should also reduce the value for "Alpha multiplier" to something below 0.5. This plane will be completely transparent in Blender, but in the sim it is rendered as glass. To improve the visuals, I suggest to also make the window border thicker, such that it appears like the glass is "inserted" into the border.
 
Hi, thanks for the reply, I will try out that window idea. I want them fully reflective, because building has no interior work! Some said I can select a face and do the same thing.
as to my emissive texture. I used the same texture but all black except for very light almost black even white textures for the windows. The albedo in msfs is set to white and the emmisive is set to black, don’t change it there. Go into notes, backtrack from the emission node to the emmisive mixture right after the texture node. Set slider to just about black, 1/6 of the way up. Move the center tint to yellow etc. double check now that the msfs under albedo on the msfs materials has gone white, if not, make it so and recheck the node to make sure it isn’t too bright. Tick day night cycle and then export build and run the sim. By the way, I do all my builds with the sdk tool, then move project to communities, replacing the old version which I have backed up, just in case I need to revert. This way when I run the sim (using the shortcut sdk tool) my just completed work appears, in the scenarios where I have changed something, windows tint etc. If adding a new model, it is ready to go.
 
Ah, all right, I just did transparent windows so far. You may play around with the MSFS glass material properties (e.g. color and alpha value), maybe you can achieve the desired effect. But it may also be possible that there are better ways to create a fully reflective surface.

Thanks for the detailed description regarding the night texture! I already tried something in that direction, but it somehow didn't work out. I will try your method tomorrow. I directly have a question: When you say I need to set the slider of the emissive mixture to almost black, do you talk about the "emissive_tint" value or the "Fac" value in "emissive_tint_mix? Do you have a screenshot of your settings?
 
got the glass to work as a single pane added in. how ever when close up there is a reflection on two stuffed bears or something in the back seat of a car..... apha mult set .4 now if i can get it to emit at night. i put a light in side the building but it doesn't shine through.reflection mask set to .55
 
my settings for emmisive, i woder if i reduce alpha multiplier if i can reduce the harshness. fyi the emmision no longer works at the window becasue i remove the map section /plane behind it my next test is to slide that window to the right over the blinds and see if i get a window feature without removing the panel and get emmisive at night.
settingss.PNG
 
Back
Top