Ray Tracing [C++ & SDL2] - Episode 17 - Normal Maps (Part 1)
Ray Tracing [C++ & SDL2] - Episode 17 - Normal Maps (Part 1)
Part 1 of a new mini-series looking at normal maps. Normal maps, sometimes known as bump maps, can be used to add detail to a surface, without adding geometry. In this episode, I go over the basics of how normal maps work and how they can be implemented, concluding with implementing a very basic random normal map to make 'rough' looking surfaces. In the next episodes I will go on to look at texture based normal maps and image based normal maps.
#raytracing #graphics #cplusplus
As with all of my videos, I show the code that I have developed to solve the particular problems that I need to solve, with the hope that it may provide sufficient background and inspiration to allow you to go on to develop your own code if you wish to. My code may not be the most appropriate solution to the problem you are trying to solve, so I urge you to consider the problem carefully and decide for yourself on the most appropriate solution. I make every effort to ensure that my code works as it should and is free of bugs, but of course I cannot provide any guarantees. If you use my code as shown, I strongly encourage you to make sure that you test it thoroughly to ensure that it works as you need it to. If you find a bug, do please let me know in the comments!
**********************************
Other episodes of this series can be found here:
Episode 1 (Introduction and basic code):
https://youtu.be/JN5yUrJPThI
Episode 2 (Camera geometry):
https://youtu.be/KBK6g6RFgdA
Episode 3 (Ray - Sphere intersections):
https://youtu.be/8fWZM8hCX5E
Episode 4 (Simple lighting):
https://youtu.be/dUtkihuUvvo
Episode 5 (Geometric transforms):
https://youtu.be/-Apu2BNp3t8
Episode 6 (Planes & shadows):
https://youtu.be/9K9ZYq6KgFY
Episode 7 (Simple materials):
https://youtu.be/F5vIgpRF_Qo
Episode 8 (Cones & Cylinders):
https://youtu.be/UTz7ytMJ2yk
Episode 9 (UV space & textures):
https://youtu.be/d35gDi98gEY
Episode 9a (Image textures):
https://youtu.be/lGTa8ceYIjA
Episode 10 (Refractive materials):
https://youtu.be/6slB1euGMFw
Episode 11 (Fixing the normals):
https://youtu.be/5lDRXL5zQDo
Episode 12 (Boxes):
https://youtu.be/Fg-_f1L-6dI
Episode 13 (Ray tracing vs. Ray marching)
https://youtu.be/4408vlE_60Y
Episode 14 (Procedural Textures - Part 1)
https://youtu.be/5fuE4mTu8Cg
Episode 15 (Value Noise)
https://youtu.be/iuJKrOtne_Y
Episode 16 (Gradient Noise)
https://youtu.be/K-Tp8ucK3CU
The GitHub repository for this series can be found here:
https://github.com/QuantitativeBytes/qbRayTrace2
The GitHub repository for my linear algebra library can be found here:
https://github.com/QuantitativeBytes/qbLinAlg
**********************************
You can also follow QuantitativeBytes on Facebook:
www.facebook.com/QuantitativeBytes
Видео Ray Tracing [C++ & SDL2] - Episode 17 - Normal Maps (Part 1) канала QuantitativeBytes
Part 1 of a new mini-series looking at normal maps. Normal maps, sometimes known as bump maps, can be used to add detail to a surface, without adding geometry. In this episode, I go over the basics of how normal maps work and how they can be implemented, concluding with implementing a very basic random normal map to make 'rough' looking surfaces. In the next episodes I will go on to look at texture based normal maps and image based normal maps.
#raytracing #graphics #cplusplus
As with all of my videos, I show the code that I have developed to solve the particular problems that I need to solve, with the hope that it may provide sufficient background and inspiration to allow you to go on to develop your own code if you wish to. My code may not be the most appropriate solution to the problem you are trying to solve, so I urge you to consider the problem carefully and decide for yourself on the most appropriate solution. I make every effort to ensure that my code works as it should and is free of bugs, but of course I cannot provide any guarantees. If you use my code as shown, I strongly encourage you to make sure that you test it thoroughly to ensure that it works as you need it to. If you find a bug, do please let me know in the comments!
**********************************
Other episodes of this series can be found here:
Episode 1 (Introduction and basic code):
https://youtu.be/JN5yUrJPThI
Episode 2 (Camera geometry):
https://youtu.be/KBK6g6RFgdA
Episode 3 (Ray - Sphere intersections):
https://youtu.be/8fWZM8hCX5E
Episode 4 (Simple lighting):
https://youtu.be/dUtkihuUvvo
Episode 5 (Geometric transforms):
https://youtu.be/-Apu2BNp3t8
Episode 6 (Planes & shadows):
https://youtu.be/9K9ZYq6KgFY
Episode 7 (Simple materials):
https://youtu.be/F5vIgpRF_Qo
Episode 8 (Cones & Cylinders):
https://youtu.be/UTz7ytMJ2yk
Episode 9 (UV space & textures):
https://youtu.be/d35gDi98gEY
Episode 9a (Image textures):
https://youtu.be/lGTa8ceYIjA
Episode 10 (Refractive materials):
https://youtu.be/6slB1euGMFw
Episode 11 (Fixing the normals):
https://youtu.be/5lDRXL5zQDo
Episode 12 (Boxes):
https://youtu.be/Fg-_f1L-6dI
Episode 13 (Ray tracing vs. Ray marching)
https://youtu.be/4408vlE_60Y
Episode 14 (Procedural Textures - Part 1)
https://youtu.be/5fuE4mTu8Cg
Episode 15 (Value Noise)
https://youtu.be/iuJKrOtne_Y
Episode 16 (Gradient Noise)
https://youtu.be/K-Tp8ucK3CU
The GitHub repository for this series can be found here:
https://github.com/QuantitativeBytes/qbRayTrace2
The GitHub repository for my linear algebra library can be found here:
https://github.com/QuantitativeBytes/qbLinAlg
**********************************
You can also follow QuantitativeBytes on Facebook:
www.facebook.com/QuantitativeBytes
Видео Ray Tracing [C++ & SDL2] - Episode 17 - Normal Maps (Part 1) канала QuantitativeBytes
Показать
Комментарии отсутствуют
Информация о видео
Другие видео канала
The Lorenz Attractor in 3DRay Tracing [C++ & SDL2] Faster Linear Algebra (Episode 25)Ray tracing [C++ & SDL2] - Episode 14 - Procedural textures - Part 1Ray Tracing [C++ & SDL2] - Tile based rendering (Episode 26)Building a simple spectrum analyser app (C++ & SDL2) - Part 3 - Reading a .wav fileLinear Algebra in C++ - Part 2a - Compute Matrix Inverse (Theory)Ray Tracing in C++ : Normal Maps #shortsLinear Algebra in C++ - Part 3 - NxN Matrix DeterminantRay Tracing [C++ & SDL2] - Episode 18 - Texture based normal mapsRay tracing [C++ & SDL2] - Episode 7 - Simple materialsRay tracing [C++ & SDL2] - Episode 12 - BoxesBuilding a 2D primitives library (C++ & SDL2) - Part 4 - Simple animationRay Tracing in C++ : Normal Maps Demo #shortsLinear Algebra in C++ - Part 11 - Linear Least Squares (Some examples)Ray tracing [C++ & SDL2] - Episode 4 - Light...Linear Algebra in C++ - Part 7 - Handling unsolvable systems of equationsMerry Christmas and Best Wishes for 2023!Modelling with qbRAY - Combining Signed Distance FunctionsUV space and texture mapping - New video coming soon in the Ray Tracing in C++ series!Normal Maps - Coming soon! #shorts