Study of raytracing has been progressing into the second book Ray Tracing: the Next Week, which is a little bit more advanced. This post gonna focus on some notes about Perlin Noise implementation.
During my study of raytracing and browsing on Shadertoy, I have seen lots of different ways of implementing camera models for final rendering. Here is my summary for most of the solutions.
Shadertoy is an amazing place to see all sorts of creative shader demos and get inspired. I learned most of the shaders there which depict certain 3D geometries - simple or extremely complex (could also be procedurally generated) - are drawn using raymarching algorithm.
Thanks to the sponsorship of my company Archiact, I was given the opportunity to experience this year Siggraph with a full-conference pass. This 5-day conference was quite an informative and mind-blowing journey. During all types of events I had a great time getting involved with the CG community and learning from the best of the industry. Here I summarized my journey of Siggraph 2018 and documented all the related resources for future reference.
Chapter 9 study note. Breakdown topics about basic optic physics (refractive index, Snell’s Law, total reflection, Fresnel coefficients, Schlick’s approximation) and vector maths for calculating refraction ray.
Chapter 8 study note. Breakdown topics about
Material base class, types of reflection, vector maths for calculating mirror reflection ray and blurry reflection implementation.
Chapter 7 study note. Breakdown topics about diffuse reflection, random reflecting ray generation and rejection sampling in unit sphere.
Finish reading Ray Tracing in One Weekend Chapter 2 to 6. Breakdown topics about raytracing analogy, simple camera model implementation, surface normal visualization, and Multisampling Antialiasing (MSAA) implementation.
In raytracer, calculating ray - object intersection is very important on locating the hit point and producing correct color for the corresponding pixel. Sphere is always the best geometrical shape to start with as it is one of the simplest shape to describe mathematically. In this post I documented typical
Ray class definition, ray-sphere intersection math breakdown, and code implementation. I will keep updating the post for solutions of other types of shapes.