1.9 - Summary of this Textbook¶
The intended audience of this textbook is software developers who want to learn the fundamentals of computer graphics and how to use WebGL to implement the fundamentals. If you understand the fundamentals, you will be able to build just about any 3D computer graphics application your mind can imagine.
The goal of this textbook is not to make 3D graphics as easy and simple as possible. If you are looking for the fastest way to build 3D computer graphics in a web page, consider one of the many WebGL frameworks built on top of WebGL, such as Three.js or Unity, which give a programmer a simpler path to 3D graphics.
WebGL is a low level interface to GPU functionality. To use WebGL you must understand several programming languages:
- HTML which describes a web page.
- CSS which describes the formatting of elements in a web page.
- JQuery which allows access and manipulation of the DOM (document object model) of a web page.
- JavaScript which allows for general programming logic to be executed on a client’s computer after a web page has been downloaded.
- GLSL which allows a programmer to control certain stages of a graphics pipeline.
Thankfully, you do not have to become an expert at all of these languages, but you will have to become familiar with the basics of each one.
In addition to the programming languages, you will have to learn how to create 3D geometric models. For this textbook we will use Blender.
Developing WebGL 3D computer graphics will require your best skills in software development, software version control, file hierarchies, object-oriented programming, and programming logic. Because it requires many skills, it will take some time to get “up to speed.” As you get started, please recognize that you will have a lengthy skills build-up before actually doing WebGL programming, which starts in this textbook in chapter 5.
Glossary¶
- framework
- a software library that abstracts away the details of a lower level software system.
- WebGL framework
- A software system that allows you to use WebGL functionality while abstracting away many of the details.