https://www.scratchapixel.com/index.html Scratchapixel 4.0 Lessons Books Donate Welcome to Computer Graphics Teaching computer graphics programming to regular folks. Original content written by professionals with years of field experience. We dive straight into code, dissect equations, avoid fancy jargon and external libraries. Explained in plain English. Free. Section 1: Beginners This section is tailored specifically for beginners. We've carefully selected topics and structured them as a journey, guiding you from points A to B to C and beyond, with each lesson building upon the concepts learned in the previous one. It is intended that this section be followed in chronological order. Occasionally, there may be references to lessons from the Geometry section, particularly the introductory lessons on points, vectors, normals, and matrices. Lesson Thumbnail 3D Computer Graphics Primer: Ray-Tracing as an Example A hands-on approach to the principles and joys of 3D computer graphics, making it an inviting starting point for curious minds. Updated Lesson Thumbnail What Do I Need to Get Started? Setting Up a Workspace for Coding and Testing. Updated Lesson Thumbnail 1. Your Starting Point! A Very Gentle Introduction to Computer Graphics Programming. Updated Lesson Thumbnail 2. Rendering an Image of a 3D Scene The Breadth of Techniques and Steps Involved in the Transformation of a 3D Scene into a 2D Image. Updated Lesson Thumbnail 3. Computing the Pixel Coordinates of a 3D Point Mastering the Foundational Technique of Generating Images from 3D Objects. Updated Lesson Thumbnail 4. The Pinhole Camera Model How To Simulate Cameras In Computer Graphics. Updated Lesson Thumbnail 5. Rasterization A Practical and Comprehensive Implementation of the Rasterization Technique. Updated Lesson Thumbnail 6. The Perspective and Orthographic Projection Matrix What They Are, How They Work, and Why They Matter - Demystified. Updated Lesson Thumbnail 7. Overview of the Ray-Tracing Rendering Technique A Comprehensive Guide to Every Step of Image Generation with Ray-Tracing. Lesson Thumbnail 8. Generating Camera Rays with Ray-Tracing Pixel by Pixel: Calculating Rays for Image Rendering in Ray-Tracing. Lesson Thumbnail 9. A Minimal Ray-Tracer Crafting Realistic Images with Basic Geometric Shapes (Sphere, Cube, Disk, Plane, ...). Updated Lesson Thumbnail 10. Ray-Tracing: Rendering a Triangle Ray-Tracing Essentials: Rendering a Triangle Through Ray Intersection. Updated Lesson Thumbnail 11. Introduction to Polygon Meshes Building the Digital World: Understanding the Fundamentals of Polygon Meshes. Lesson Thumbnail 12. Ray-Tracing a Polygon Mesh Racing Rays Through Polygon Mesh Triangles. Lesson Thumbnail 13. Transforming Objects using Matrices Matrix Magic: Shaping the Digital World through Object Transformation. Lesson Thumbnail 14. Introduction to Shading Bringing Scenes to Life: The Art and Science of Shading Techniques. Updated Lesson Thumbnail 15. Introduction to Shaders and BRDFs Explore fundamental concepts that control and define object appearance and their interactions with light in this lesson on shaders and BRDFs. Refresh Needed Lesson Thumbnail 16. A Creative Dive into BRDF, Linearity, and Exposure This lesson unravels the mystery of BRDFs through a focus on diffuse surfaces, introducing foundational concepts of exposure, the grey zone system, and color mapping with linear values in computer graphics. New Lesson Thumbnail 17. Understanding Reflection and Refraction Explore the mathematics and simulations behind how light reflects and refracts through different materials. Lesson Thumbnail 18. Introduction to Lighting Illuminate Your Scenes: Understanding and Applying Basic Light Sources: Point, Spot, Distant and Area Lights. New Lesson Thumbnail 19. Introduction to Texturing Texturing uses images to modify object surfaces, changing properties like color and shininess. Lesson Thumbnail 20. Introduction to Image Based Lighting and High Dynamic Range Images Explore Image-Based Lighting, a technique using real-scene photographs to illuminate synthetic 3D scenes. Lesson Thumbnail 21. Global Illumination and Path Tracing Illuminating Realism: Exploring Path Tracing Techniques for Lifelike Global Illumination. Lesson Thumbnail 22. Introduction to Acceleration Structures The Role of Acceleration Structures in Enhancing Computational Performance. Lesson Thumbnail 23. Volume Rendering Volume Rendering Demystified: A Developer's Guide. Lesson Thumbnail 24. Windowing Displaying Images to the Screen. Updated Lesson Thumbnail 25. The OBJ File Format Learn how to read 3D models data stored in files utilizing the simplest and oldest 3D file format. Updated Lesson Thumbnail 26. Camera Navigation Controls Navigating a 3D Scene with Mouse and Keyboard. Updated Lesson Thumbnail 27. Importance Sampling xx. Section 2: Intermediate In this section, we proceed with our journey from Section 1, delving into topics that go beyond basic knowledge. Here, we will explore everything not covered in Section 1 that we consider fundamental to computer graphics across various fields, including not only rendering but also animation and certain programming techniques essential for working with images and similar tasks. This is aimed at laying a solid foundation for building applications. Lesson Thumbnail 1. Bounding Volume Hierarchy (BVH) Acceleration Fast-Track Your Rays: Boosting Scene Speed with BVH Magic. Lesson Thumbnail 2. Multithreading in Rendering Divide and Conquer: Speeding Up Scenes with Teamwork Threads. Lesson Thumbnail 3. Texturing Bring Realism to Your 3D Scenes with Textures. Lesson Thumbnail 4. Ray Differentials Sharper Textures, Smarter Rays: Fine-Tuning with Ray Differentials. Lesson Thumbnail 5. Path Tracing Simulating real-world light behavior to achieve unmatched realism in digital environments. Lesson Thumbnail 6. Depth of Field Achieve Photographic Realism: Bringing Objects into Focus, Just Like a Camera Lens. Lesson Thumbnail 7. Motion Blur A crucial technique in simulating the way moving objects appear in still photography and film. Lesson Thumbnail 8. Sampling Techniques Exploring various sophisticated sampling methods, like Hammersley, to achieve cleaner, more accurate renders by effectively minimizing noise. Lesson Thumbnail 9. Rendering Equation Dive into the core of photorealistic rendering with the Kajiya rendering equation, a formula to simulate light and material interactions in 3D scenes. Lesson Thumbnail 10. Advanced Image Based Lighting Techniques Explore simulating blurry reflections and diffuse shading using environment maps in a physically plausible manner. Lesson Thumbnail 11. Importance Sampling A strategic approach to reducing noise and enhancing quality in rendered images. Lesson Thumbnail 12. Bidirectional Path-Tracing A rendering strategy that intertwines paths originating from the camera with those emanating from light sources. Lesson Thumbnail 13. Multiple Importance Sampling A pivotal technique in the realm of rendering that masterfully balances sampling strategies for both materials and lights. Lesson Thumbnail 14. Boosting Rendering with SIMD Acceleration A powerful technique that leverages parallel computing to supercharge your rendering processes and beyond. Lesson Thumbnail 15. Level of Detail in 3D Scenes A technique for optimizing rendering performance while preserving visual quality. Lesson Thumbnail 16. Shadow Maps A technique for crafting realistic shadows in the dynamic worlds of video games. Mathematics for Computer Graphics Yes, sometimes diving into theory is necessary. This section is dedicated to understanding the mathematical theories and tools utilized in creating images and simulations with a computer. It's not intended for you to start with this section, but rather to refer to these lessons when they are mentioned in the lessons from other sections. Lesson Thumbnail Geometry Point, Vectors, Matrices, and a Dash of Magic: 3D Geometry Without Tears. Updated Lesson Thumbnail Matrix Inverse: Gauss-Jordan Method One of most common methods for inverting matrices. Updated Lesson Thumbnail Interpolation Learn how to estimate unknown values between two known points using linear interpolation. Updated Lesson Thumbnail Placing a Camera: the LookAt Function The LookAt method is a common function used in computer graphics to orient a camera or viewer towards a specific point in a 3D scene. Updated Lesson Thumbnail The Mathematics of Shading Explore the mathematical foundations of shading and path tracing. Lesson Thumbnail Mathematical Foundations of Monte Carlo Methods Explore Monte Carlo Methods, extensively used in modern 3D rendering and ray-tracing to sample various functions efficiently. Lesson Thumbnail Monte Carlo Methods in Practice Learn practical implementations of Monte Carlo Methods to tackle complex problems that defy analytical solutions through effective sampling techniques. Lesson Thumbnail An Introduction to Fourier Transform Explore the Fourier Transform, an essential mathematical tool in computer graphics for solving problems in image processing, anti-aliasing, texture analysis, synthesis, compression, and more. Lesson Thumbnail Quaternion Demystified The mathematical marvels at the heart of smooth and stable 3D rotations. Computer Graphics Gems A collection of lessons about specific topics that don't necessarily fit into any broad category but are cool to teach and study, and are useful to know. The name "Computer Graphics Gems" pays homage to the iconic Graphics Gems book collection published in the 1990s and 2000s. Lesson Thumbnail Blackbody Understanding blackbody radiation for realistic color and light in CG simulations. New Lesson Thumbnail IES and EULUMDAT Light Profiles IES and EULUMDAT profiles capture the angular light distribution of real-world lights and can be used to create complex lighting effects despite the simplicity of the light models. Geometry Methods to define shapes in computer graphics. Lesson Thumbnail Bezier Curves and Surfaces Learn How to Render the Legendary Utah Teapot. Lesson Thumbnail Subdivision Surfaces A method for representing smooth shapes through the iterative refinement of polygonal meshes. Animation and Simulation XX. Lesson Thumbnail The Essentials of Animation Skinning An overview of skinning techniques, including rigging and weight painting, to ensure naturalistic movement and deformation. Digital Imaging Saving and reading images to/from disk, image file format, color spaces, color management, and simple image processing. Lesson Thumbnail Introduction to Light, Color and Color Space Lesson Thumbnail Digital Images: from File to Screen Lesson Thumbnail Simple Image Manipulations Procedural Generation of Virtual Worlds Pocedural simulation of natural phenomena. Lesson Thumbnail Value Noise and Procedural Patterns Lesson Thumbnail Perlin Noise Lesson Thumbnail Simulating the Colors of the Sky Lesson Thumbnail Simulating Ocean Waves The principles and techniques behind wave simulation, from simple sine waves to complex algorithms like Fast Fourier Transform (FFT) and Gerstner waves. About Us Contact Us Donate Terms of Service Discord X