Intermediate
Join 46,386 Students
In collaboration with

We're still building the full experience
Approx. 2 months
(work at your own pace)

Class Summary

This class will teach you about the basic principles of 3D computer graphics: meshes, transforms, cameras, materials, lighting, and animation.

What Will I Learn?

By the end of this class you will know enough to make an animated 3D demo program that runs in a web browser, while also understanding the basic principles of how realistic computer images are generated.

You will also have a portfolio of small interactive programs that run in any web browser that supports WebGL.

What Should I Know?

Knowing how to program in some language is all you’ll need to get started. Some knowledge of JavaScript is useful later on if you wish to make your projects more interactive and engaging. Familiarity with vectors and matrices will ease your way but is not critical.

To be able to see the interactive demos and do programming assignments you need a browser that supports WebGL technology. An up to date version of Chrome or Firefox will work (see our FAQ for more information). You can test if your browser supports this technology by visiting the WebGL project homepage.

Almost all programming will be done in JavaScript using three.js library/API.


About Autodesk

This course is developed in conjunction with Autodesk, a worldwide leader in 3D design, engineering, and entertainment software. http://www.autodesk.com

Syllabus

Lesson 1: Introduction

Motivation and a trip down the graphics pipeline, laying out the fundamental processes

Lesson 2: Points, Vectors, and Meshes

The basics of 3D geometry definition

Lesson 3: Colors and Materials

Color representation, material computations, transparency

Lesson 4: Transforms

Translation, scale, rotate and how to properly combine all these

Lesson 5: Matrices

Transform representation and how to fully control these

Lesson 6: Lights

Directional and point light sources

Lesson 7: Cameras

How the camera is defined

Lesson 8: Textures and Reflections

Color and opacity textures, along with reflection and normal mapping

Lesson 9: Shader Programming

An introduction to programming vertex and pixel shaders

Lesson 10: Interaction and Animation

How to select and make objects move

FAQ

When does the course begin?

This class is self paced. You can begin whenever you like and then follow your own pace. It’s a good idea to set goals for yourself to make sure you stick with the course.

How long will the course be available?

This class will always be available!

How do I know if this course is for me?

Take a look at the “Class Summary,” “What Should I Know,” and “What Will I Learn” sections above. If you want to know more, just enroll in the course and start exploring.

Can I skip individual videos? What about entire lessons?

Yes! The point is for you to learn what YOU need (or want) to learn. If you already know something, feel free to skip ahead. If you ever find that you’re confused, you can always go back and watch something that you skipped.

How much does this cost?

It’s completely free! If you’re feeling generous, we would love to have you contribute your thoughts, questions, and answers to the course discussion forum.

What are the rules on collaboration?

Collaboration is a great way to learn. You should do it! The key is to use collaboration as a way to enhance learning, not as a way of sharing answers without understanding them.

Why are there so many questions?

Udacity classes are a little different from traditional courses. We intersperse our video segments with interactive questions. There are many reasons for including these questions: to get you thinking, to check your understanding, for fun, etc... But really, they are there to help you learn. They are NOT there to evaluate your intelligence, so try not to let them stress you out.

What should I do while I’m watching the videos?

Learn actively! You will retain more of what you learn if you take notes, draw diagrams, make notecards, and actively try to make sense of the material.

Course Instructors

instructor photo

Eric Haines

Instructor

Eric Haines is a Senior Principal Engineer at Autodesk, Inc., working on a next-generation interactive rendering system for computer-aided design applications. He is a coauthor of the book “Real-Time Rendering”, a founder and editor of the Journal of Computer Graphics Techniques, and maintainer of the Graphics Gems code repository, among other activities. He received an MS from the Program of Computer Graphics at Cornell in 1985.

course developer photo

Gundega Dekena

Course Developer

Once upon a time Gundega was a Udacity student. In a way she still is, because she is learning new things from instructors she works with and her Udacity coworkers every day.

If you occasionally want to read fun news about robotics, science and games, follow her on G+ - https://plus.google.com/+GundegaDekena.