No announcement yet.

Normal and Specular maps look different in-game.

  • Filter
  • Time
  • Show
Clear All
new posts

    Normal and Specular maps look different in-game.

    I've imported a model I made, the materials look fine in the preview window but after compiling the light it looks different in-game (looks ugly).

    Here's what it looks like in a 3ds Max shader:

    The preview window:

    In-game (seems normal/specular don't work or they're very low quality):

    I want it to look like in the preview window or the 3ds Max viewport shader, I'm not sure what to do, I'm new to UDK.

    The main reason for the different look is because in Max you get a proper real time shading and in the UDK by default you will get kind of not proper real time shading. When you compile the map and create light maps.. etc.. the shading gets kind of washed and then all you are left with is the specular highlight to suggest any kind of "bumpyness" of the surfaces. You kind of lose the impact of what a normal map is supposed to give you in a full real time shading.

    Also, on top of that, the specular in my experience tend to be weaker by default in the UDK compared to Max, so in the material it's usually easy to fix that by multiplying the spec a bit to make it stronger if needed of course.

    So, in UDK to achieve this shading you have to rely on full real time lighting without any light maps. That's kind of a big trade off so you should consider what you want and do your lighting and stuff accordingly.

    But with all that said, your shot looks like it's under pretty harsh lighting and if you did more controlled and contrasted lighting you may get better results. It won't match the look you get in Max view port but it can be a lot better. It's a matter of preference really and a matter of lighting trade offs. I've gone through this myself and for me the choice is easy.. go real time all the way.. death to light maps!...


      And how do I do this? Any tutorials around?


        Normal maps have no effect in ambient light. In what rendering mode you are in UDK: lit or unlit? and specify what do you mean by 3d max shader/preview because it has at least 3 types of them: scanline, mr or realtime.


          Place a point light near the smesh and try building again. It should bring out the normal detail.


            Yeah, this is true, the view port has to be set to be fully lit, not unlit otherwise it will just show the diffuse texture.

            But with pre-renderd lighting.. lightmaps... you will get a much more washed version of the shading because it's all dependent on your light map res. To get real time shading you need to use dynamic lights or lights set up to be used dynamically.

            Compare to Doom3 this kind of shading where in that engine the shading is always done real time. You get very sharp shading detail from the normal map because of this.


              You can always increase the depth of the normal map in the material editor to get more distinct details. It's worth a try too. You have to multiply one of the channels ( I don't know which one ) with something :P

              I'm quite sure you can find something about it via google.


                Shading is one thing and shadow casting (dynamic or static) is another one. They both depend on the light source but these are separate and different things.

                Doom3 or even newer ETQW uses the same shader pipeline (despite of obvious OGL/DX differences) as UE and it's all realtime. D3 like engines - that use dynamic lights/shadows only - have a hardcoded limit of light sources that may illuminate a single surface - afaik the most 'advanced' is the engine used in stalker, that supports something like 8 or more light sources per surface. Thus you may have impression that something looks better but it doesn't.

                Lightmap resolution has nothing to do with normal map quality.


                  I think you're missing my point a little bit. I'm not talking about normal map quality vs light map resolution.

                  The simple fact is when you bake light, it's less accurate than when it's not baked.

                  When the light is baked, the only thing left to give real time feedback to see the normal map doing it's thing, is the specular highlight. The shading will have been flattened out from baking the light.

                  I'm not just making this up. All you need to do is get rid of the specular from your shader and light the object both ways.. you see the difference right away.

                  The fact that shadows are a separate thing is well known. I'm talking about the shading of the object. The limits is also known, hence the different work flow to use dynamic lights compared to baked lights.


                    Simple shading comparison...



                    Unbaked shading is much more accurate. That is the only point I'm trying to make.


                      Surprised no one said this. You're going to have to post a screen shot of your material setup to get any feedback. Normal and spec work just fine, it's more likely than not you haven't setup the material correctly, or in the case of normal maps, imported them correctly. I agree, it looks mostly like you've just got a diffuse in the UDK shot. Generally speaking though, if you think Max's real-time shader = game engine real-time, you will be sorely disappointed


                        Hey guys, thanks for the replies.

                        I played around with the material settings a bit to 'boost' the specular and tweak the normal map - I have better results now but still not the way I want it.

                        So basically I should use dynamic lights over the entire map? Wouldn't that be 'expensive'?

                        Anyway here's some more pictures (light = directional):

                        One last thing, how do I move those blocks around individually (on the 2nd pic)? When I move them they all move at once and right now it looks very messy.


                          If that's constant 3 vector you're multiplying to the normal map, I suggest boosting the R and G instead of lowering B. It wont look right in the material editor but should increase the effect of normal map when you build. Also playing with specular power may help define the shape a bit more too.


                            Originally posted by obihb View Post

                            Also, on top of that, the specular in my experience tend to be weaker by default in the UDK compared to Max, so in the material it's usually easy to fix that by multiplying the spec a bit to make it stronger if needed of course.
                            Hit the nail on the head there bud....Yep..Up the specular.Job done!


                              Originally posted by crazYsyntax View Post
                              Hey guys, thanks for the replies.

                              So basically I should use dynamic lights over the entire map? Wouldn't that be 'expensive'?
                              That is a choice you have to make based on the look you are trying to get and also the sacrifice willing to make on lighting. It's a balance you have to strike to get the good frame rate out of it.

                              Working with dynamic lights is pretty expensive but only if you over do it. You can have only a few lights, 2 or 3 of them, hit any polygon before you start getting some big frame rate hits. Depending on the size etc. But this also depends on what is on screen at the time. Also the fact that this is not calculated per poly for static mesh, but per object, it can make life harder. On BSP it is calculated per poly though. This is a very broad explanation of it though.

                              So, unless you have some experience with this, it will be quite a learning curve to make good use of it. Coming from Doom3, I've had quite some experience to deal with these limitations but I still prefer the end result of dynamic lights vs baked light on the way surfaces are being shaded.

                              In UE3 it's not the preferred method to use purely dynamic lights. The engine is meant really to bake lights. but it doesn't mean it can't do it.

                              I'm not trying to convince you it's better to use dynamic lights on the larger scale of things but to get closer to the shading you are after, this is the only way. Using baked lighting will never give you the same results as you get within Max's view port.