UW Extension Certificate Program in Game Development - Winter 2011 (Advanced Graphics)
[an error occurred while processing this directive]
Week 1
 (1/13/2011)
- Introductions will eat up a portion of the class.
- We will talk about math for 3D graphics. We'll see why it is so necessary, and we'll review some basic and advanced topics.
- We will also talk about 2D graphics. We'll see how they relate to 3D graphics and examine strategies to implement them using Direct3D.
 
- Slides:
    
 
- Homework: 2D Rendering. Due on 1/22 at 10:00 AM
	
 
- Class recording didn't go too well. I'll try to fix it for next class. You judge for yourself: AMR (17 MB) MP3 (21 MB)
[an error occurred while processing this directive]Week 2
 (1/20/2011)
- This week we will talk more about D3D, D3DX and the GPU
- We will also learn about the basic frames of reference used in 3D rendering and the geometry calculations that happen in them.
 
- Slides:
    
 
- Homework: Rasterizer. Due on 1/29 at 10:00 AM
	
 
- You might find these useful:
    
 
- Class recording: MP3 (29 MB)
[an error occurred while processing this directive]Week 3
 (1/27/2011)
- This week we will learn about shaders.
- We will also learn some basic lighting calculations.
 
- Slides:
    
 
- Homework: Shaders. Due on 2/5 at 10:00 AM
	
 
- You might find these useful:
    
 
- Class recording: MP3 (31 MB)
[an error occurred while processing this directive]Week 4
 (2/3/2011)
- This week we'll take a look at colors. What they mean, and what is the deal with gamma correction.
- We'll also take a look at the pixel pipeline and textures in detail.
 
- Slides:
    
 
- Homework: No homework this week. We're taking a break. I encourage everyone 
to take this week of reprieve to try the extra credit of week 3, especially the 
part about adding a shader to your game projects.
 
- Class recording: MP3 (33 MB)
[an error occurred while processing this directive]Week 5
 (2/10/2011)
- This week we will spend more time looking at the pixel pipeline.
- We will also discuss various tricks and techniques that are used in games to improve visual quality.
 
- Slides:
    
 
- Homework: Visual Quality. Due on 2/19 at 10:00 AM
- Code: Added a couple of full screen effects (updated 2/13) to the game project, good for use as a reference.
Also available on Subversion at http://uw.thejcab.com/UWGame2011.
 
- Class recording: MP3 (34.5 MB)
[an error occurred while processing this directive]Week 6
 (2/17/2011)
- This week we'll talk more about math, and learn about animation, physics and particle effects.
 
- Slides:
    
 
- Homework: Particles. Due on 2/26 at 10:00 AM
- References:
	
- Class recording: MP3 (34 MB)
[an error occurred while processing this directive]Week 7
 (2/24/2011)
- We will learn about scenegraphs, what they are and how they work.
- We will also learn the basics of skeletal models and skinning.
- And we will learn about asset pipelines. What they are and their purpose.
 
- Slides:
    
 
- Homework: Skeletal Animation. Due on 3/5 at 10:00 AM
- References:
	
- Class recording: MP3 (33 MB)
[an error occurred while processing this directive]Week 8
 (3/3/2011)
- This week we'll take a look at the more advanced side of lighting and shadows.
 
- Slides:
    
 
- Homework: Shadows. Due on 3/12 at 10:00 AM
- References:
	
			- The Real-Time 
			Rendering book, chapters 7, 8 and 9. 
- Eric Lengyel's
			math book. 
			Chapter 6 is about lighting, especially it contains a good 
			introduction to BRDFs. Chapter 10 talks in detail about shadows.
			
- The Watt & Watt
			
			Advanced Animation and Rendering Techniques book. Chapters 2 and 
			5 talk about lighting and shadows respectively, from a more 
			theoratical point of view. 
- D3D's "PostProcess" sample is a good example of environment 
			mapping (select the "skull" mesh for that), edge detection (for 
			cartoon rendering outlines) and full-screen post-processing in 
			general. Be sure to check out the predefined combinations (the four 
			buttons at the bottom) with both meshes. 
- D3D's "PRTDemo" sample shows a good use of light environment 
			cubemaps. I recommend using "Demo Scene 3". Technique (1) is classic 
			Lambert lighting. Technique (2) uses a variation (a conversion into 
			spherical harmonic form) of the light environment cubemap, blurred 
			to represent diffuse lighting. Of course, the sample also shows 
			various PRT techniques and variations. 
- D3D's "ShadowMap" and "ShadowVolume" samples demonstrate both 
			main shadowing techniques. 
- AMD (ATI) has a multitude of
			old
			 and
			new papers and 
			slide decks describing various techniques. I liked
			
			this presentation about PRT in particular. 
- This description of
			
			Half-Life 2's lighting model is also very interesting as a 
			description of a rea-world, advanced and different, lighting technique. 
 
- Class recording: MP3 (34 MB)
[an error occurred while processing this directive]Week 9
 (3/10/2011)
- This week we'll be relaxing a little bit and look at several topics that revolve around game programming, with focus on issues related to graphics.
- We'll also attempt a recap of past materialand, if we have time, talk a bit about graphics performance and optimization.
 
- Slides:
    
 
- No homework.
- Class recording: MP3 (36 MB)
[an error occurred while processing this directive]Week 10
 (3/17/2011)
[an error occurred while processing this directive]
We will talk about the typical modern GPU chip. How it does its work, and how the chip's functions are mapped by Direct3D.
We will review some of the functionality available through the D3DX library.
We will learn about the geometry pipeline used in 3D rendering, and review all its frames of reference.
About the instructor
Reference game project
Dan Chang and I have put together a clean version of the first quarter's game project,
   so that people can continue onto this quarter using that, instead of their own.
You can get it here.
You can also link to the Subversion server and follow the solutions as they become available:
	http://uw.thejcab.com/UWGame2011/
Resources
Books
Articles and tutorials
Email lists
- GD-Algorithms is full of discussions about many game programming topics.
- SWEng-Gamedev is about more general programming discussions.
- DIRECTXDEV is a list dedicated to DirectX development discussions.
Videos
Software:
- To view the slides, you will need PowerPoint 2007 or later,
    or a compatible program like the Powerpoint viewer.
- To do the homework assignments, you will need to use Visual Studio 2010.
    You may be able to use Visual C++ 2010 Express Edition but I have not verified that it will work.
- You will also need the DirectX SDK (June 2010).
- You can establish a Subversion server yourself at Unfuddle or ask me to set one up at the class server for you.
    In order to access the Subversion server, it is strongly suggested to use TortoiseSVN, which integrates within Windows Explorer.
- If you need to edit images, you can use Paint.NET, which is a well done free tool similar to Photoshop,
    although of course not as comprehensive.
- If you need to edit 3D meshes, you can use Blender, which is free and open source and has an active community of users.
    However you should be aware that the learning curve can be steep and JCAB can't help you there.
Homework submission
Homework may be submitted by email attachment or by putting the code in a Subversion server and giving JCAB access to retrieve it from there.
   JCAB can set up a server for you if you so desire.
You must prune your submission to the barely necessary. Make sure not to include any large files that are not necessary to recompile the project.
   In particular, you must not include executables or PDBs, or data files copied into the output directory.
   This aplies to both: email attachment and Subversion.
Using Subversion is highly encouraged, and will grant you 2 bonus points on your final grade.
Even if you submit using Subversion you must send an email to JCAB, including any necessary instructions to obtain, compile and run the submission,
   as well as detailing where in the code is the new functionality implemented, and which strategy was used.
Please, include "WeekX", where "X" is the corresponding assignment week number, and your name in the subject of your email.
   Also, if you want to submit a partially finished assignment but you expect to finish it on time, please include "partial" in the subject,
   so I'll know not to waste time fully evaluating it twice.
I require that all submissions be compilable.
   Hardcoded paths and missing files are the most common causes of failing at this.
   There will be one dispensation about this, but after the first failure, subsequent failures will result in grading penalties.
I also require your submissions to be free of any D3D warnings or errors that point to bugs in the game code.
   Please, use the D3D9 control panel to enable the extra verification and debug spew. We will cover this during class.
Questions will be answered during the following class, one week after the assignment was given.
Every assignment is due 9 days after the class it was given, on Saturday at 10 AM.
   Late assignments will incur a penalty or will be rejected, at JCAB's discretion.
All homework assignments consist of a basic assignment and extra grade assignments or suggestions.
   Successfully completing all basic assignments throughout the course without incurring any penalties is enough grade to successfully complete the course,
   provided all other conditions are met.
You may obtain assistance from JCAB on homework issues on at the Redmond Library on Tuesdays, 6-8 PM.
   During this time, JCAB volunteers on the Study Zone program, so any duties required by that program will take precedence.
   JCAB will stay until closing at 9 PM if there is somebody requesting assistance by 8 PM.
   The Library offers free wireless internet access, so connecting to source control servers shouldn't be an issue.
Always contact JCAB promptly if you encounter any problems doing your homework.