# 3D Basic Lessons

• ## Lesson 1: Writing a Simple Raytracer

math+

We will begin this lesson by explaining how a three-dimensional scene is translated into a viewable two-dimensional image.

math+

math+

• ## Lesson 4: Geometry

math++

Points, vectors, matrices and normals are to CG what the alphabet is to literature which is the reason why in all fairness, most CG books start with a chapter on linear algebra and geometry.

• ## Lesson 5: Colors and Digital Images

math+

In this lesson we will review the basic notions about color, colors in the digital world, pixels and digital images.

• ## Lesson 6: Rays, Cameras and Images

math++

The next step in the construction of our renderer, is to learn how to create an image by shooting rays into the scene, using a virtual camera.

• ## Lesson 7: Intersecting Simple Shapes

math++

In this lesson, we will learn about ray intersection routines for simple geometric shapes such as boxes and spheres.

• ## Lesson 8: Putting It All Together, Our First Ray Tracer

math+

In this lesson we will learn how we can put together all the techniques we have already described in one application to create a barebone ray tracer.

• ## Lesson 9: Ray-Triangle Intersection

math++

In this lesson we will learn why triangles are useful in ray tracing and a couple of technique to test for intersections between a ray and a triangle.

• ## Lesson 10: Polygonal Objects

math+

Now that we have learned how to render triangles, we can move to the next step which is to render more complex objects.

• ## Lesson 11: Rendering the Teapot. Bezier Surfaces.

math++

In this lesson we learn how to render the 3D model of a teapot (known as the Utah or Newell's Teapot) using another type of geometry representation called a Bézier surface.

• ## Lesson 12: Introduction to Acceleration Structures

math+

Acceleration structures are used to speed up the ray tracing of complex scenes.

• ## Lesson 13: Tools

math+

We will be looking at the tools we are missing to properly develop our renderer such as a rendering API, a scene file parser and an application to display our rendered images.

• ## Lesson 14: Interaction Light-Matter

math+

Learn about what makes materials appear the way they do!

math++

In this lesson you learn about radiometry, the science of measuring light energy and shading, the process by which the color of objects can be determined.

• ## Lesson 16: Introduction to Monte Carlo Integration

math+++

Monte Carlo integration is a fundamental technique for solving complex integrals used in rendering.

math+++

• ## Lesson 19: Introduction to Light Transport

math++

Light transport algorithms aim at finding efficient and accurate ways of simulating the propagaton of light, an expensive process, while retaining efficieny.

• ## Lesson 20: Introduction to Sampling

math+++

The art of distributing samples to improve the efficiency of Monte Carlo integration.

math++

WIP