Computer Graphics from Scratch

A Programmer's Introduction to 3D Rendering


Computer Graphics from Scratch
Computer Graphics from Scratch
Open Access

Book Details

Author Gabriel Gambetta
Publisher No Starch Press
Published 2021
Edition 1st
Paperback 248 pages
Language English
ISBN-13 9781718500761
ISBN-10 1718500769
License Open Access

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 book is published as open-access, which means it is freely available to read, download, and share without restrictions.

If you enjoyed the book and would like to support the author, you can purchase a printed copy (hardcover or paperback) from official retailers.

Download and Read Links

Share this Book

[localhost]# find . -name "*Similar_Books*"


An Introduction to C & GUI Programming, 2nd Edition

C / C++

Freshly updated for GTK3, the 2nd edition of An Introduction to C & GUI Programming will teach you all you need to know to write simple programs in C and start creating GUIs, even if you're an absolute beginner. The first half of the book is an introduction to C, and covers the basics of writing simple command-line programs. The second half shows h

Introduction to Data Science

R

Introduction to Data Science: Data Analysis and Prediction Algorithms with R introduces concepts and skills that can help you tackle real-world data analysis challenges. It covers concepts from probability, statistical inference, linear regression, and machine learning. It also helps you develop skills such as R programming, data wrangling, data vi

Developing Graphics Frameworks with Python and OpenGL

Python

Developing Graphics Frameworks with Python and OpenGL shows you how to create software for rendering complete three-dimensional scenes. The authors explain the foundational theoretical concepts as well as the practical programming techniques that will enable you to create your own animated and interactive computer-generated worlds. You will learn h

Invent Your Own Computer Games with Python, 3rd Edition

Python

Invent Your Own Computer Games with Python teaches you how to program in the Python language. Each chapter gives you the complete source code for a new game, and then teaches the programming concepts from the examples. Games include Guess the Number, Hangman, Tic Tac Toe, and Reversi. This book also has an introduction to making games with 2D graph

Introduction to Autonomous Robots

Robotics

Textbooks that provide a broad algorithmic perspective on the mechanics and dynamics of robots almost unfailingly serve students at the graduate level. Introduction to Autonomous Robots offers a much-needed resource for teaching third- and fourth-year undergraduates the computational fundamentals behind the design and control of autonomous robots.

Programming for Computations - Python, 2nd Edition

Python

This book presents computer programming as a key method for solving mathematical problems. This second edition of the well-received book has been extensively revised: All code is now written in Python version 3.6 (no longer version 2.7). In addition, the two first chapters of the previous edition have been extended and split up into five new chapte