Search in
Sort by:

Question Status:

Search help

  • Simple searches use one or more words. Separate the words with spaces (cat dog) to search cat,dog or both. Separate the words with plus signs (cat +dog) to search for items that may contain cat but must contain dog.
  • You can further refine your search on the search results page, where you can search by keywords, author, topic. These can be combined with each other. Examples
    • cat dog --matches anything with cat,dog or both
    • cat +dog --searches for cat +dog where dog is a mandatory term
    • cat -dog -- searches for cat excluding any result containing dog
    • [cats] —will restrict your search to results with topic named "cats"
    • [cats] [dogs] —will restrict your search to results with both topics, "cats", and "dogs"

Material: Scale "Strength" of Normal Map?

Hi. This should be very simple I guess. Let's say I have a normal map for a muscular, old and wrinkly, skinny and ripped or whatever type of body and I want to scale the effect with a constant in material instances from barely visible to extreme. I guess it's a kind of contrast I need.

I tried simply multiplying the output of the normal map sample with that scaling factor from zero to one before connecting it to the normal-output. But there's no effect, except when I set the value to zero, in which case the normal map seems to be disabled completely. Anything greater zero produces the original normal map :/

Product Version: UE 4.12
more ▼

asked Jun 20 '16 at 11:51 PM in Rendering

avatar image

618 61 76 113

avatar image ryukishi Mar 17 '17 at 08:07 PM

Hi guys, I'm desperately searching for a slow transitory between two normal maps. Your example is the only one that me closer to what I want. Can someone help me please?

avatar image MaxPower42 Mar 19 '17 at 09:11 AM

Isn't the normal map blending, like posted by ScottSpadea in the pictures below, exactly what you are looking for?

(comments are locked)
10|2000 characters needed characters left

2 answers: sort voted first

thats because normal maps are normalized, meaning the 3D vectors that the image describes will always be unit vectors, with a length of 1. so if you multiply all the channels by 1000, they are still proportionally the same, and get normalized back to 1. its like you are scaling the vectors, but not changing their rotation, and the lighting only cares about the direction, not the size of the vectors.

the trick is to multiply the blue channel, and leave the red and green alone. then the proportions will change, pointing the light rays in different directions.

so brighten or darken the blue channel, and leave the other channels alone. (or the other way around: multiply the red and green channels and leave the blue channel alone. either way affects the relative proportions of the RGB channels, which adjusts the angle of the light rays.)

more ▼

answered Jun 21 '16 at 04:40 AM

avatar image

9.5k 317 202 449

avatar image MaxPower42 Jun 21 '16 at 06:14 AM

Thanks a lot! I always suspected there was a reason why normal maps are so colorful. That's one mystery solved.

avatar image MaxPower42 Jun 24 '16 at 11:22 PM

I've got a follow up question. How would you blend two normal textures together without having them decrease their "intensity"?

I mean, if I have a normal map for muscular and one for old, and I want to be able to scale their effects more or less independently from zero to one, how should I go about it? If I just take the average of both normal maps, it will result in a flatter surface overall, because muscle tone and wrinkles aren't necessarily on top of each other and smooth areas in one texture will flatten "rough" areas in the other. So that can't be it. I was thinking, maybe I can convert the normal maps to "delta-normal-maps" compared to a reference body normal map or just a completely flat surface. I guess then I could add the delta values together and after automatical normalization, the intensity of one texture can't be decreased by a zero-delta of the other. But maybe I can save myself the trouble and there's some blend node I can use instead? I would try and find one that takes the greater of two values, but that could only work for scalar/grayscale.

avatar image ScottSpadea Jun 25 '16 at 12:29 AM

alt text alt text

avatar image MaxPower42 Jun 25 '16 at 12:20 PM

Thanks again :)

I will try that.

(comments are locked)
10|2000 characters needed characters left

It's a lot easier to simply mask the Red and Green channels from your normal then Multiply this by a scalar value (Normal Strength) and then Append back on a value of 1 for the blue channel.

alt text

more ▼

answered Mar 29 '18 at 12:56 AM

avatar image

1.1k 80 108 142

avatar image ImaginaryBlend Oct 11 '18 at 08:42 PM

TorQueMoD You will get a different result than original normal map by doing this with NormalStrenght=1 I would not recommend this method. You will get a better result by scaling a blue channel and normalization.

(comments are locked)
10|2000 characters needed characters left
Your answer
toggle preview:

Up to 5 attachments (including images) can be used with a maximum of 5.2 MB each and 5.2 MB total.

Follow this question

Once you sign in you will be able to subscribe for any updates here

Answers to this question