Computer Graphics from Scratch
A Programmer's Introduction to 3D Rendering
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
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
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
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
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
An Introduction to Matlab and Mathcad
This text is used in a mathematical software course at VMI that provides an introduction to Matlab and Mathcad. However, Troy Siemers also intends it to be a course book instead of an all inclusive resource. He encourages his students to take full advantage of the built-in help capabilities of these software packages, additional texts (he keeps a f
Introduction to Autonomous Robots
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.