## questions about displacement, normal and bump

Practical and theoretical implementation discussion.
MohamedSakr
Posts: 83
Joined: Thu Apr 24, 2014 2:27 am

### questions about displacement, normal and bump

I understand in general the main difference between displacement, normal and bump.
but what I need to know is "best practices with physically accurate ray tracer"

so here are some questions:
1- I have an idea of implementing displacement into my render engine, it will be as simple as ( get low res geometry -> subdivide( N subdivisions in material settings) -> displace resulting geometry -> send to BVH and work on it as regular geometry)

is this the best approach? or there are better ones?? (please help, paper mentions would be a plus )

2- normal vs bump mapping, let's consider both of them "may" look the same for the shaded surface, but normal "reflects/refracts" rays depending on the map, while bump is doing this depending on the geometry normal, is this correct?

feel free to explain more as much as you can , more knowledge won't hurt

sriravic
Posts: 20
Joined: Fri Jun 22, 2012 6:48 pm

### Re: questions about displacement, normal and bump

imho bump mapping is the same as normal mapping. Wikipedia suggests that 'Normal mapping is the most common variation of bump mapping used' to quote.

Serendipity
Posts: 37
Joined: Mon Dec 19, 2011 9:50 pm

### Re: questions about displacement, normal and bump

Bump and Normalmapping are giving you the same results if you use a heightmap as input. Both approaches have their advantages. With bump mapping you can easily control the intensity of the effect by just scaling the input height value, with normal mapping this is a bit more complex. With normal mapping on the other hand you can basically use a normal map that does not originate from a heightmap but for example from mapping the normals of a high resolution mesh to a low resolution mesh.

Regarding displacement mapping there are different approaches for it. Just subdividing the mesh and displacing the result is probably the most simple and for a raytracer the most efficient way to handle it, but it can also cost a lot of memory, making it basically unusable as a replacement for bump or normal mapping. So another approach would be to do this subdivision on the fly. This is, of course, slower, but reduces your memory requirements a lot.

If you are talking about physically accurate ray tracer then displacement mapping is the only way to go since both, bump and normal mapping, are not physically accurate at all, they are just a pretty looking fake.

MohamedSakr
Posts: 83
Joined: Thu Apr 24, 2014 2:27 am

### Re: questions about displacement, normal and bump

Serendipity wrote: If you are talking about physically accurate ray tracer then displacement mapping is the only way to go since both, bump and normal mapping, are not physically accurate at all, they are just a pretty looking fake.
I totally understand this , I'm extending PBRT to use displacement mapping, just wanted to make sure that my rusty knowledge is correct "in order not to start in the wrong direction ) , and need to know more about different displacement approaches

cignox1
Posts: 15
Joined: Mon Jan 30, 2012 10:11 am

### Re: questions about displacement, normal and bump

I think that normal mapping is really useful. Back when I still had the time to have fun in working on my raytracer, implementing NM was easy enought and offered nice results.