# Is 2.8 worse at handling bump maps?

**URL:** <https://blenderartists.org/t/is-2-8-worse-at-handling-bump-maps/1136140>\
**Category:** Blender Development Discussion\
**Created:** [November 28, 2018, 5:03pm UTC](https://blenderartists.org/t/is-2-8-worse-at-handling-bump-maps/1136140 "2018-11-28T17:03:09Z")\
**Posts on this page:** 6\
**Page:** 1

<div class="post-metadata">

**Author:** ![anon12133251](https://blenderartists.org/letter_avatar_proxy/v4/letter/a/c77e96/32.png) [@anon12133251](https://blenderartists.org/u/anon12133251)\
**Post date:** [November 28, 2018, 5:03pm UTC](https://blenderartists.org/t/is-2-8-worse-at-handling-bump-maps/1136140/1 "2018-11-28T17:03:09Z")

</div>

Can someone explain this in a little more detail please?

 ![Capture](https://blenderartists.org/uploads/default/original/4X/a/1/2/a1296d2771cdeff2457a066c00785ec8c65f359d.jpeg)

Does this affect Cycles in anyway?

Does this mean render your whole scene at twice the resolution?

Will this be addressed in 2.81?

---

<div class="post-metadata">

**Author:** ![ouraf](https://blenderartists.org/user_avatar/blenderartists.org/ouraf/32/448670_2.png) [@ouraf](https://blenderartists.org/u/ouraf)\
**Post date:** [November 28, 2018, 5:20pm UTC](https://blenderartists.org/t/is-2-8-worse-at-handling-bump-maps/1136140/2 "2018-11-28T17:20:24Z")

</div>

doesn’t affect cycles, it’s an EEvEE limitation

---

<div class="post-metadata">

**Author:** ![CarlG](https://blenderartists.org/letter_avatar_proxy/v4/letter/c/aca169/32.png) [@CarlG](https://blenderartists.org/u/CarlG)\
**Post date:** [November 28, 2018, 10:18pm UTC](https://blenderartists.org/t/is-2-8-worse-at-handling-bump-maps/1136140/3 "2018-11-28T22:18:31Z")

</div>

And normal mapping means image based normal mapping. Converting a bump to normal, via (custom) normaltoworld into a normal map don’t work, I tried. Kinda obviously when you think about it.

It means you can’t have good looking procedural bumps (like the brick texture which I use **a lot!** ).

If memory usage could be kept less if we had a supersample value, I would prefer that over manual scaling. Not sure what downsample algorithm should be used though, selectable?

Possibly optional to not use OpenGL derivatives of 2x2 pixels? I don’t know how bad the impact would be though.

---

<div class="post-metadata">

**Author:** ![anon12133251](https://blenderartists.org/letter_avatar_proxy/v4/letter/a/c77e96/32.png) [@anon12133251](https://blenderartists.org/u/anon12133251)\
**Post date:** [November 28, 2018, 10:57pm UTC](https://blenderartists.org/t/is-2-8-worse-at-handling-bump-maps/1136140/4 "2018-11-28T22:57:53Z")

</div>

I am confused about doubling the resolution.

Are they saying if I need a 2K texture I will have to use a 4K texture?

Or Render out my entire scene at double the resolution?

---

<div class="post-metadata">

**Author:** ![Ace\_Dragon](https://blenderartists.org/user_avatar/blenderartists.org/ace_dragon/32/1067926_2.png) [@Ace\_Dragon](https://blenderartists.org/u/Ace_Dragon)\
**Post date:** [November 28, 2018, 11:11pm UTC](https://blenderartists.org/t/is-2-8-worse-at-handling-bump-maps/1136140/5 "2018-11-28T23:11:40Z")

</div>

> [@CarlG](#):
>
> Possibly optional to not use OpenGL derivatives of 2x2 pixels? I don’t know how bad the impact would be though.

I believe the reason Clement took the 2x2 approach is that doing it for greyscale bumpmapping is very cheap while having to calculate the derivatives beforehand (as in Cycles) can be quite costly.

Remember that Eevee is supposed to be a really fast engine that does not leave noise, and the viewport needs to run at interactive speeds to be workable during scene building.

---

<div class="post-metadata">

**Author:** ![hypersomniac](https://blenderartists.org/user_avatar/blenderartists.org/hypersomniac/32/32139_2.png) [@hypersomniac](https://blenderartists.org/u/hypersomniac)\
**Post date:** [November 29, 2018, 1:20am UTC](https://blenderartists.org/t/is-2-8-worse-at-handling-bump-maps/1136140/6 "2018-11-29T01:20:30Z")

</div>

Well I did not implement this. I just used what was already in 2.79.

The thing is that not using the GL derivatives means evaluating the height input 3 times instead of 1 and that’s what cycles does.

I want to implement it at some point but I need to do the same trick as cycles and duplicate the incoming nodegraph to the height input 3 times while changing all texture coordinates.
