THREE DIMENSIONAL MODELING

2011-2012



News:

  1. [23/5/2012]: The code for the 3D hand animation can be downloaded here. It was developed by Tomas Hodan and Marries van de Hoef, and is useful for those who are interested in the kinematic and skeletal animation. The code is provided so that you can have fun with your 3D hand model. A more advanced topic in skeletal animation: youtube | official website | student project page.
  2. [23/5/2012]: Exercise 6 and 7 are now available in the lecture schedule. If you have difficulties with the questions, or want to have feedback for your answers/implementation, you should e-mail me.


  3. [22/5/2012]: For UU master students: there are a few topics for experimentation and thesis projects. If you're interested, please e-mail me. Information about the topics is available here, while the past and present projects can be looked at the project pages.
  4. [22/5/2012]: As for the grades of assignment 1, we expect to announce them by June 1, 2012.
  5. The old news is accessible by clicking "Old News" tab below.

1. Description

3D modeling is one of the most important pillars of game technology and computer graphics. It creates 3D objects and 3D scenes of virtual worlds, which is essential for visualization and simulation.

In 3D modeling, the processes of creation, acquisition, representation and manipulation of 3D data are crucial. Creation and acquisition of 3D data can be done either by creating a model using mathematical models, or by directly scanning a real-world 3D object. The acquired data is normally in a raw form, such as 3D point clouds, voxels (volumetric data), etc. To be able to manipulate and display the raw data efficiently, we need to transform it to other forms like meshes and do an operation like surface simplification or subdivision. Having more efficient representations, we can animate the 3D objects virtually and realistically.

All these processes will be studied in the 3D Modeling course. We expect by passing the course, the students have the theoretical knowledge and practical skills necessary for manipulating and animating 3D spatial data. These knowledge and skills are vital when working in 3D aspects of games technology, computer graphics, computer vision, medical image analysis, robotics, etc.

To follow the course, students are required to have strong knowledge in: linear algebra (i.e., matrices and vectors operations), basic mathematics, and programming skills in C/C++. This implies, they have passed the computer graphics course. Prior knowledge of a modeling package (such as Blender) and OpenGL is useful, but not required. For those who do not know C/C++, there will be a brief introduction in the lectures as well as in the practical sessions.

All materials and lectures are in English. Should there be any questions, e-mail to tanrobby (at) gmail.com

Lecturer: Robby T. Tan (e-mail: tanrobby (at) gmail.com)
Practical Assistants: Anne Driemel | Benny van der Vijgh
Related website: 3D Modeling Course




2. Assessment and Grading

Assignments:
During the course, students are expected to finish a few assignments. Programming skills in C/C++ and OpenGL are required to finish the assignments.


Written Exam:
There is a written exam in the end of the course (final exam).


Academic Honesty:
Academic honesty is compulsory in accomplishing the assignment, projects, and the exams. Exchanging codes for different groups are not allowed. Using codes from the previous year or from the internet is prohibited, unless stated otherwise in the lectures. Copying texts of the reports from other groups is strictly prohibited. Generally, cheating, academic misconduct, plagiarism, and fabrication of any submitted material (including code and text) are not tolerated. We will use software to detect any code or text plagiarism. Any violation to the academic honesty will imply a fail to pass the course.


Grading:
The final grade is average of the following assessments:
  • 40%: Assignments
  • 60%: Exam (there is only one final exam)
To pass the course, the minimum exam grade is 4 and the final grade is 6.


Retake exam:
to participate in the retake, the original final grade must be no less than 4.


3. Lecture Schedule


  • The schedule below should be used as a rough guideline. The lectures will emphasize more on clarity rather than strictness in following the schedule.
  • Acknowledgements: major parts of the slides and materials used in the lecture are taken from various internet sources. The lecturer thanks those people who made the materials available.
  • Time and Locations:

No
Date
Topic
Slides
1 24-4-2012
Introduction (motivations, applications, overview, and logistics)

Additional Materials:
  1. 3D animation: clip
  2. 3D games: Nintento DS
  3. 3D films: wikipedia
  4. 3D printing: clip | website | wikipedia
  5. Programmable matter: wikipedia | youtube
  6. 3D Software packages: Blender
slide 1
2 26-4-2012
C/C++ and OpenGL: Introduction

Additional materials:
  1. C/C++: tutorial
  2. OpenGL: programming guide
  3. OpenGL: examples
  4. GLUT: introduction

slide 2.a
(The contents of the slides are taken from this website).

slide 2.b
3 1-5-2012
Spline Curves: Introduction

Mandatory reading materials:
  • Spline curves: pdf
Additional materials:
  1. Spline: wikipedia
  2. Spline curves and surfaces: tutorial
  3. Parametric equations: wikipedia
  4. General topics in spline curves: website
  5. Various topics about splines: website

(see the mandatory reading material)

lecture summary 3
exercise 3
4 3-5-2012
Spline Curves: Bezier Curves

Mandatory reading materials:
  • Bezier curves: pdf
Additional Materials:
  1. Bezier Curves: planet math | wikipedia | mathworld
  2. Demo applets: applet 1 | applet 2
  3. De Calteljau's algorithm: website
(see the mandatory reading material)

de Casteljau's alg.
exercise 4
5 8-5-2012
Spline Curves: B-spline Curves

Mandatory reading materials: Additional Materials:
  1. B-spline: wikipedia
  2. B-spline demo: applet
  3. B-spline basis functions: website
  4. De Boor's algorithm: website
(see the mandatory reading material)

lecture summary 5
exercise 5
6 10-5-2012
Rational Splines and Spline Surfaces

Additional Materials:
  1. NURBS: applet | wikipedia
  2. Spline surfaces: website


lecture summary 6
exercise 6
7 15-5-2012
Spline Curves: Interpolation 1

Additional materials:
  1. Hermite and Cardinal Spline: wikipedia | Hermite applet | Cardinal applet 1 | Cardinal applet 2 | Catmull-Rom applet
  2. Lagrange Curve Interpolation: wikipedia | applet



lecture summary 7
exercise 7
17-5-2012
no class

22-5-2012
no mid-term exam and no class

8 24-5-2012
Spline Curves: Interpolation 2

Mandatory reading materials: Additional materials:
  1. B-spline interpolation: applet 1 | applet 2 | mathworld

see the mandatory reading material; for the summary and exercises, look at summary 7 and exercise 7.
29-5-2012
no class

31-5-2012
no class

9 5-6-2012
Modeling with Patches

Additional Materials:
  1. Surface fitting: example



lecture summary 8
slide 8
10 7-6-2012
Modeling Deformable Objects: Introduction + Mass-Spring Models

Additional Materials:
  1. Spring Simulation: website
  2. Lecture on Hooke's Law: video
11 12-6-2012
Modeling Deformable Objects: Fluid Simulation + Particle Systems

12 14-6-2012
Model Acquisition, Representation and Data Structure

Additional Materials:
  1. Polygon Meshes and their data structures: wikipedia
  2. Winged-edge Representation: website
  3. Ply file format: wikipedia | okino | info + source code
  4. 3D viewers: meshlab
  5. Surface reconstruction from unorganized points: pdf
  6. Marching cubes: pdf | applet
13 19-6-2012
Mesh Simplification

Additional Materials:
  1. Surface Simplification Using Quadric Error Metrics: pdf
  2. Decimation of Triangle Meshes: pdf
  3. Progressive Meshes: pdf
  4. Mesh Decimation: code reference
  5. Mesh Simplification: website
14 21-6-2012
Mesh Subdivision

Additional Materials:
  1. Recursively generated B-spline surfaces on arbitrary topological meshes: pdf | wikipedia
  2. A butterfly subdivision scheme for surface interpolation: pdf
  3. Subdivision Surfaces in Character Animation: pdf
  4. Subdivision for Modeling and Animation: pdf
15 26-6-2012
Procedural Modeling

Additional Materials:

Implicit Surfaces

  1. Blobbies or Metaballs: website
  2. Introduction to implicit surfaces: book | paper
28-6-2012


5-7-2012
Final Exam : EDUC-ALFA (16.00-19.00)



4. Tutorial Schedule


  • Any questions regarding the assignments must be asked in the practical sessions.
  • Time and Locations:
    • 11.00-12.45: Tuesday [BBL-109, BBL-112]
    • 15.15-17.00: Thursday [BBL-109, BBL-112]
  • The below schedule should be used as a rough guideline. For example, students who have already known C/C++ are encouraged to start with OpenGL or with the assignments.

No
Date
Topic
Information
1 24-4-2012
Blender
  • A tutorial note: pdf

  1. 3D Software package: Blender
  2. Character modeling: tutorial
  3. Tutorial: youtube
2 26-4-2012
Blender

3 1-5-2012
C/C++

  1. C/C++ tutorial: website | pdf
  2. A tutorial on youtube.
  3. For windows users: in this course, you must use console applications.
  4. In all assignments, the code must be compilable in either windows (Visual Studio) or linux (cmake).
  5. CMake: tutorial
4 3-5-2012
C/C++

  1. STL (Standard Template Library): tutorial
  2. Useful STL class: vector
5 8-5-2012
OpenGL
  1. OpenGL: programming guide
  2. OpenGL: examples
  3. OpenGL youtube tutorial.
  4. In this course, you must use GLUT for the I/O interface.
  5. GLUT: introduction
6 10-5-2012
OpenGL

7 15-5-2012
Bezier Curves
  • Lecture note: pdf
Example of the possible visualization: applet
17-5-2012
no tutorial

22-5-2012
no tutorial

8 24-5-2012
Bspline Curves
29-5-2012
no tutorial

31-5-2012
no tutorial

9 5-6-2012
Rope Simulation

10 7-6-2012
Rope Simulation

11 12-6-2012
Cloth Simulation

12 14-6-2012
Cloth Simulation

19-6-2012
no tutorial

21-6-2012
no tutorial

26-6-2012
no tutorial

28-6-2012
no tutorial



5. Old News


  1. [08/5/2012]: I have fixed some typos in 05_bspline1.pdf. Thanks for those who informed me. If you find some mistakes in the notes, please do not hesitate to let me know.
  2. [08/5/2012]: The maximum file size for submitting your assignments through submit is 40MB.
  3. [02/5/2012]: The instructions of assignment 2 are now fixed (including the deadline). You are encouraged to start as soon as possible, since it can take time to finish, particularly part 2.
  4. [01/5/2012]: The summary of the lecture today is available here. It is based on this article.
  5. [30/4/2012]: Exercise 3 is available in the lecture schedule. During or after the lecture, try to answer the exercise questions. The final exam's questions will mostly taken from the exercises.
  6. [27/4/2012]: A simple example of CMake file (CMakeLists.txt) can be downloaded here. It can be used on either linux or windows.
  7. [26/4/2012]: A few GLUT/OpenGL examples from the lecture are available here.
  8. [24/4/2012]: Those who do not have a partner for the practical assignments should email me, so that I can pair you up.
  9. [24/4/2012]: For the practical sessions, we encourage you to be in either BBL-112 or BBL-109. Since the assistants will be stationed in those two rooms. Only when there is no enough space, you can go to another room (which on Tuesday is BBL-103, and on Thursday is BBL-115).
  10. [24/4/2012]: The purpose of the practical sessions is to help the students with the practical assignments. Therefore, there is no tutorial for the theoretical/mathematical problems. If you have questions regarding the theoretical/mathematical problems, you should ask directly to the lecturer.
  11. [15/4/2012]: For the practical sessions on 24/4 and 26/4, students are required to bring headphones/earphones, since the tutorial is partially given through youtube clips.