Introduction to Computer Graphics
Version 1.4, August 2023
WELCOME TO Introduction to Computer
Graphics, a free, on-line textbook covering the
fundamentals of computer graphics and computer
graphics programming. This book is meant for
use as a textbook in a one-semester course that
would typically be taken by undergraduate
computer science majors, with at least two
semesters of programming as a prerequisite.
Version 1.4 adds a new chapter on WebGPU. See
the preface for more information.
The web pages for this book include live,
interactive demos that require a modern web
browser such as recent versions of Chrome,
Firefox, Safari, or Edge. Chapter 9 examples
require a browser that supports WebGPU. While
the book is mainly designed for reading on a
desktop computer, most of the demos should also
work on recent mobile devices, using a
touchscreen instead of a mouse.
Words in the book that are shown
in this style or underlined like this refer to
glossary entries; click the word to see a
definition.
You can download this web site for use on
your own computer. PDF versions of the
textbook are also available. Links to the
downloads can be found at the bottom of this
page.
Short Table of Contents:
Full Table of Contents
Preface
Chapter 1: Introduction
Chapter 2: Two-Dimensional Graphics
Chapter 3: OpenGL 1.1: Geometry
Chapter 4: OpenGL 1.1: Light and Material
Chapter 5: Three.js: A 3D Scene Graph API
Chapter 6: Introduction to WebGL
Chapter 7: 3D Graphics with WebGL
Chapter 8: Beyond Basic 3D Graphics
Chapter 9: Introduction to WebGPU
Appendix A: Programming Languages
Appendix B: Blender: A 3D Modeling
Program
Appendix C: Gimp and Inkscape for 2D
Graphics
Appendix D: Source Code for Sample
Programs
Appendix E: Glossary
News
©2015–2023, David J. Eck.
This work is licensed under a Creative Commons Attribution-Noncommercial-ShareAlike 4.0
License. (This license allows you to redistribute this book in unmodified form for non-
commercial purposes. It allows you to make and distribute modified versions for non-
commercial purposes, as long as you include an attribution to the original author, clearly
describe the modifications that you have made, and distribute the modified work under the same
license as the original. Permission might be given by the author for other uses. See
the license for full details.)
The home site for this book is: http://math.hws.edu/graphicsbook/
Downloading Links
Full Web Site Download:
o https://math.hws.edu/eck/cs424/downloads/graphicsbook-web-
site.zip — This "zip" archive contains a complete copy of the web site
for this textbook. You can publish a copy of the web site on your own
web server, or you can use it locally on your own computer.
Size: 26 Megabytes.
PDF Downloads:
o https://math.hws.edu/eck/cs424/downloads/graphicsbook-linked.pdf
— a PDF version with internal links for navigation and external links to
source code files and other resources that are not included in the PDF.
Recommended for on-screen reading. 533 pages. Size: 6.0 Megabytes.
o https://math.hws.edu/eck/cs424/downloads/graphicsbook.pdf — a
PDF version without links, more suitable for printing. 541 pages.
Size: 5.6 Megabytes.
Printed Version
The web site and linked PDF are the preferred versions for reading this book,
but for the convenience of readers who would like a bound copy, I have made a
printed version available at the publish-on-demand site lulu.com. (Note that the
printed version is sold at lulu.com's cost, and that I don't make any profit from
it.) You can purchase the printed version through this
link: https://www.lulu.com/shop/david-eck/introduction-to-computer-
graphics/paperback/product-1jzn2z5r.html
1 August 2015, Version 1.0 released
28 January 2016, Version 1.1 released
6 January 2018, Version 1.2 released
1 August 2021, Version 1.3 released
20 December 2021, Version 1.3.1 released
1 August 2023, Version 1.4 released
Parent Directory of the website is found @
https://math.hws.edu/eck/cs424/