<p>Here is an interesting answer from Styves on gamedev.net.</p>

<blockquote>
  <p>Calculating bent normals is just an extension of AO calculation where
  the direction of each sample is also averaged along with the occlusion
  amount.</p>
  
  <p><a href="https://i.sstatic.net/HH0zw.png" rel="nofollow noreferrer"><img src="https://i.sstatic.net/HH0zw.png" alt=""></a></p>
  
  <p>The bent normals from substance painter seem correct. In any region
  that there is no AO, your normal won't be bent in any direction,
  therefore in tangent space it's pointing straight up along the surface
  normal. This is why you only see details in the ears.</p>
  
  <p>I have no idea how Unity handles the bent normals but the usual way is
  to, instead of applying AO as a standard multiplier onto the lighting
  result (which gives this weird muddy look), use the dot product of the
  bent normal and the light instead. This is how we handle SSDO in
  CryENGINE for example.</p>
  
  <p>I've only ever used a texture-based version of this technique once,
  however in this version the bent normals also contained information
  from the original tangent space normal map, and was used directly
  during lighting in place of the original.</p>
</blockquote>

CC BY-SA 3.0
2016-04-20T04:58:39.273Z
Hi, we try to avoid link only answers. Can you summarize the contents of the link. Thisway your answer is not nearly as prone to link rot.
joojaa
CC BY-SA 3.0
2016-04-20T05:44:47.307Z
@joojaa I've corrected the answer.
MaT
CC BY-SA 3.0
2016-04-19T12:00:41.240Z
2016-04-20T05:44:23.073Z
2016-04-20T05:44:23.073Z
MaT
<p>This might be a general question but I have some difficulties about understanding baked bent normal maps and how to use it inside a shader in Unity.</p>

<p>From what I understand, bent normals are especially used with occlusion but I don't really get what they contain and how to use them.
The other strange thing is that when baking them with different tools, it gives me different output, so it's hard for me to interpret them.</p>

<p>Here are some examples:</p>

<p><a href="https://i.sstatic.net/tHXeT.jpg" rel="nofollow noreferrer"><img src="https://i.sstatic.net/tHXeT.jpg" alt=""></a><br>
This is made from Substance Designer in World Space. Seems really close to a simple normal map in World Space.</p>

<p><a href="https://i.sstatic.net/1AAcV.jpg" rel="nofollow noreferrer"><img src="https://i.sstatic.net/1AAcV.jpg" alt=""></a><br>
This is made from Substance Designer in Tangent Space. It doesn't seem to contain really relevant informations as the one above.</p>

<p><a href="https://i.sstatic.net/Zenrb.jpg" rel="nofollow noreferrer"><img src="https://i.sstatic.net/Zenrb.jpg" alt=""></a><br>
This is made from Maya Turtle. It seems to contain interesting information but... what space is that ?!</p>

<p><a href="https://i.sstatic.net/BCZmP.jpg" rel="nofollow noreferrer"><img src="https://i.sstatic.net/BCZmP.jpg" alt=""></a><br>
This is the same as the one above but converted to Unity using Handplane. What can I do with this...</p>

<p>It seems that Unity is using tangent space normal maps but I don't have any control on the import process and I don't know what they are doing. Regular normals are then unpacked in converted into world space normals using TBN matrix.</p>

<p>The fact is that at this point, any clue or advice should be really useful.
I don't know if my baked maps are right or usable and I don't know how to use them inside my shader.</p>

<opengl><rendering><shader><texture><unity>
How could I use bent normal map
MaT
# How could I use bent normal map

(Asked by: username_0 on 2016-04-15)

This might be a general question but I have some difficulties about understanding baked bent normal maps and how to use it inside a shader in Unity.

From what I understand, bent normals are especially used with occlusion but I don't really get what they contain and how to use them.
The other strange thing is that when baking them with different tools, it gives me different output, so it's hard for me to interpret them.

Here are some examples:

[![](https://i.sstatic.net/tHXeT.jpg)](https://i.sstatic.net/tHXeT.jpg)  
This is made from Substance Designer in World Space. Seems really close to a simple normal map in World Space.

[![](https://i.sstatic.net/1AAcV.jpg)](https://i.sstatic.net/1AAcV.jpg)  
This is made from Substance Designer in Tangent Space. It doesn't seem to contain really relevant informations as the one above.

[![](https://i.sstatic.net/Zenrb.jpg)](https://i.sstatic.net/Zenrb.jpg)  
This is made from Maya Turtle. It seems to contain interesting information but... what space is that ?!

[![](https://i.sstatic.net/BCZmP.jpg)](https://i.sstatic.net/BCZmP.jpg)  
This is the same as the one above but converted to Unity using Handplane. What can I do with this...

It seems that Unity is using tangent space normal maps but I don't have any control on the import process and I don't know what they are doing. Regular normals are then unpacked in converted into world space normals using TBN matrix.

The fact is that at this point, any clue or advice should be really useful.
I don't know if my baked maps are right or usable and I don't know how to use them inside my shader.

**Tags:** opengl, rendering, shader, texture, unity


---

## 1 answers

### Answer by username_0 on 2016-04-19. Score: 2 | Accepted answer

Here is an interesting answer from Styves on gamedev.net.

> Calculating bent normals is just an extension of AO calculation where
> the direction of each sample is also averaged along with the occlusion
> amount.
>
> [![](https://i.sstatic.net/HH0zw.png)](https://i.sstatic.net/HH0zw.png)
>
> The bent normals from substance painter seem correct. In any region
> that there is no AO, your normal won't be bent in any direction,
> therefore in tangent space it's pointing straight up along the surface
> normal. This is why you only see details in the ears.
>
> I have no idea how Unity handles the bent normals but the usual way is
> to, instead of applying AO as a standard multiplier onto the lighting
> result (which gives this weird muddy look), use the dot product of the
> bent normal and the light instead. This is how we handle SSDO in
> CryENGINE for example.
>
> I've only ever used a texture-based version of this technique once,
> however in this version the bent normals also contained information
> from the original tangent space normal map, and was used directly
> during lighting in place of the original.

> **Comments:**
> **username_1**: Hi, we try to avoid link only answers. Can you summarize the contents of the link. Thisway your answer is not nearly as prone to link rot.  
> **username_0**: @username_1 I've corrected the answer.  

---

