Home | Lehre | Videos | Texte | Vorträge | Software | Person | Impressum, Datenschutzerklärung | Blog RSS last edited on 2005-06-16; edits marked red
Jörn Loviscach

GCG Generative Computergrafik
= DM-310-1 Digital Film Production

Required course for Diplomstudiengang Medieninformatik
Required option for the bachelor program Digital Media


Lecture: Thursday, 8-9:30 a.m., lecture hall I-123
Lab: Wednesday bi-weekly (two groups), 1:30-4:45 p.m., lab I-220
But see below!

Intended Learning Outcomes


Linear algebra, analysis, object-oriented programming, basics of real-time 3D programming in one of the standard APIs (OpenGL, Java3D, DirectX, Managed DirectX)


I give the lecture in English with German translations of critical parts. The lecture is in interactive form: I'll try to gain feedback from you. If something is unclear or you have a comment or a tangential question, you don't need to put up your hand. Just ask. If you have suggestions concerning content or form, just let me know. Outside lecture and lab I can best be reached via e-mail.

The day before each lecture, I prepare lecture notes and put them in the corresponding directory beneath this Web page, together with example code. The notes are no work for eternity; I typically focus on content and on didactics rather than on form. According to the regulations, your attendance in the lecture is not required. However, if you don't attend the lecture, you will have a hard time working on the assignments.


The assignments for the lab are both a vital learning method of this course and its sole method of grading. They can (and should) be worked on in teams of two persons. You may work on your own, but not in a team of three or more persons. In the lab, I'll talk with you about your solution, not only to give hints but also to check the contribution of each member of a team.

I recommend that you collect information from everywhere. But I expect everybody to understand the program he or she submits. Furthermore, any material that you did not write, draw, etc. on your own has to be clearly declared as such. In the assignments, you will achieve a better grade with self-developed material, although in industrial practice you would of course strive to reuse somebody else's work.

Attendance at the lab is compulsory, limited by the typical exemptions such as illness. As an alternative to attend the lab, you may contact me in advance (!) for a special meeting or electronic communication. Notice that most of the work has to be done at home. You may also use the computer graphics lab when there are no classes.

Assignments are to be submitted via e-mail. According to the regulations, you need to include not only source code and executable files, but also substantial documentation:

I prefer to receive documentation in lean HTML (no export from Microsoft® Word®) or PDF. It is ok to use hand-drawn diagrams; you may practice using drawing programs elsewhere. If you cannot do without some kind of word processor, I'd recommend OpenOffice.org or (even better) some form of LaTeX.

I grade every assignment with zero to three points, and that is the least point number according to the following categories:
Solution of Problem
vital part missing
virtually no comments
important part(s) missing
mostly complete, but for instance erroneous behavior in important exceptional cases
some logical problems, no defensive programming
partially confusing
every class and every non-trivial method explained with comments that are automatically extractable (in the context of C# that means XML)
mostly complete, but for instance not covering important problems or gaps
complete up to minor gaps
basically object-oriented, basic defensive programming
in addition: explanations of code that cannot be understood on first linear reading (If there are no difficult-to-read passages in the code, that's even better!); do not comment every single line
virtually complete
clean classes built using design patterns; defensive programming; instrumented code
in addition: comments describing vital algorithms in brief

If you achieve three points in every category and if your solution clearly exceeds the original task in features, structure, or documentation, you are awarded four points instead. If you achieve one point for every assignment, your total grade will be 4.0 (sufficient). If you achieve four points for every assignment, your grade will be 1.0 (excellent).

For commenting style see "Code Complete 2" or at least the bullet lists about self-documenting code and about commenting (free registration required).

Book and Web Recommendations

Schedule, Syllabus

30.03. Wed Lab A: first steps with Maya and Cinema 4D
31.03. Thu Survey. 3D animation in practice
06.04. Wed lab moved to first week due to meeting of Digital Media committee
07.04. Thu Modeling. Subdivision surfaces
13.04. Wed Lab B: first steps with Maya and Cinema 4D
14.04. Thu Shading/Texturing. Vertex and pixel shaders, HLSL, intro to .fx
20.04. Wed Lab A: Subdivision surfaces
21.04. Thu Vertex deformations in .fx
27.04. Wed Lab B: Subdivision surfaces
28.04. Thu Lighting, pixel-based effects in .fx
04.05. Wed no lab due to a meeting of the Digital Media Joint Committee; please attend the lab on 11 May or or come by on 12 May
11.05. Wed Lab B: .fx; deadline subdivision surfaces, Lab A: .fx; deadline subdivision surfaces
12.05. Thu Animation and Game/Physics Engines. Intro to game engines and rigid-body physics
18.05. Wed Lab A: .fx
19.05. Thu Particles, herds
25.05. Wed Lab B: .fx
26.05. Thu Bones, IK, morphing
01.06. Wed no lab due to a meeting of the Digital Media Joint Committee; please attend the lab on 8 June or come by on 2 June (10 a.m. - 3 p.m.)
02.06. Thu Motion capture, non-linear animation
08.06. Wed Lab A, Lab B: Herds/physics; deadline .fx
09.06. Thu Rendering. Ray tracing, global illumination
15.06. Wed Lab A: Global illumination; deadline herds/physics
16.06. Thu Shadows
22.06. Wed no lab due to a conference; please attend the lab on 6 July or come by on 7 June (1:30 - 5 p.m.)
23.06. Thu 8-9:30 a.m. Level of detail, culling; plus: 2:00-3:30 p.m., room 116: Stereoscopy (including demos: 3D monitor, head-mounted display)
29.06. Wed no lab due to a conference; please attend the lab on 6 July or come by on 7 June (1:30 - 5 p.m.)
30.06. Thu moved to the afternoon of 23 June due to a conference
06.07. Wed final Lab
07.07. Thu RenderMan/MentalRay, post effects, compositing