Computer ScienceScience & MathematicsEconomics & FinanceBusiness & ManagementPolitics & GovernmentHistoryPhilosophy

Computer Graphics from Scratch

A Programmer's Introduction to 3D Rendering

by Gabriel Gambetta

Computer Graphics from Scratch

Subscribe to new books via dBooks.org telegram channel

Join
DescriptionTable of ContentsDetailsReport an issue

Book Description

Computer graphics programming books are often math-heavy and intimidating for newcomers. Not this one. Computer Graphics from Scratch takes a simpler approach by keeping the math to a minimum and focusing on only one aspect of computer graphics, 3D rendering.

You'll build two complete, fully functional renderers: a raytracer, which simulates rays of light as they bounce off objects, and a rasterizer, which converts 3D models into 2D pixels. As you progress you'll learn how to create realistic reflections and shadows, and how to render a scene from any point of view.

Pseudocode examples throughout make it easy to write your renderers in any language, and links to live JavaScript demos of each algorithm invite you to explore further on your own.

Learn how to:
- Use perspective projection to draw 3D objects on a 2D plane;
- Simulate the way rays of light interact with surfaces;
- Add mirror-like reflections and cast shadows to objects;
- Render a scene from any camera position using clipping planes;
- Use flat, Gouraud, and Phong shading to mimic real surface lighting;
- Paint texture details onto basic shapes to create realistic-looking objects.

Whether you're an aspiring graphics engineer or a novice programmer curious about how graphics algorithms work, Gabriel Gambetta's simple, clear explanations will quickly put computer graphics concepts and rendering techniques within your reach. All you need is basic coding knowledge and high school math. Computer Graphics from Scratch will cover the rest.

This open book is licensed under a Creative Commons License (CC BY). Free download in PDF format is not available. You can read Computer Graphics from Scratch book online for free.

Table of Contents

PART I
RAYTRACING
Chapter 1
Introductory Concepts
Chapter 2
Basic Raytracing
Chapter 3
Light
Chapter 4
Shadows and Reflections
Chapter 5
Extending the Raytracer
PART II
RASTERIZATION
Chapter 6
Lines
Chapter 7
Filled Triangles
Chapter 8
Shaded Triangles
Chapter 9
Perspective Projection
Chapter 10
Describing and Rendering a Scene
Chapter 11
Clipping
Chapter 12
Hidden Surface Removal
Chapter 13
Shading
Chapter 14
Textures
Chapter 15
Extending the Rasterizer

Book Details

Title
Computer Graphics from Scratch
Subject
Computer Science
Publisher
No Starch Press
Published
2021
Pages
248
Edition
1
Language
English
ISBN13 Digital
9781718500761
ISBN10 Digital
1718500769
License
CC BY

Related Books

Ray Tracing Gems
This book is a must-have for anyone serious about rendering in real time. With the announcement of new ray tracing APIs and hardware to support them, developers can easily create real-time applications with ray tracing as a core component. As ray tracing on the GPU becomes faster, it will play a more central role in real-time rendering. Ray Tracing...
Deep Learning for Coders with Fastai and PyTorch
Deep learning is often viewed as the exclusive domain of math PhDs and big tech companies. But as this hands-on guide demonstrates, programmers comfortable with Python can achieve impressive results in deep learning with little math background, small amounts of data, and minimal code. How? With fastai, the first library to provide a consistent inte...
Advances in Discrete Differential Geometry
This is one of the first books on a newly emerging field of discrete differential geometry and an excellent way to access this exciting area. It surveys the fascinating connections between discrete models in differential geometry and complex analysis, integrable systems and applications in computer graphics. The authors take a closer look at discre...
The Haskell School of Music
This free book explores the fundamentals of computer music and functional programming through the Haskell programming language. Functional programming is typically considered difficult to learn. This introduction in the context of creating music will allow students and professionals with a musical inclination to leverage their experience to help un...
Help! My Computer is Broken
Want to know how to fix common computer problems, without having to wade through technical jargon? Or are you the family on-call technical support person, and need a bit of help? Help! My Computer Is Broken takes the most common computer problems and tells you how to fix them. It's as simple as that! If you've ever wondered why your la...
Computer Vision Metrics
Computer Vision Metrics provides an extensive survey and analysis of over 100 current and historical feature description and machine vision methods, with a detailed taxonomy for local, regional and global features. This book provides necessary background to develop intuition about why interest point detectors and feature descriptors actually work, ...