|
Goal : Master 3D computer graphics programming basis concepts.
Requirements : C/C++ knowledge
Notes :
- Implementation is done in C++ with OpenGL and QT or GLUT, on a GNU/Linux or Windows OS.
- Other languages allowing OpenGL are possible, please contact us.
- Real-time shaders development is done with GLSL or Cg.
- We can propose you the training under DirectX / HLSL
- Time: 10 days for a good programmer.
Training location : Please see here.
Duration : 10 days, 7 hours per day for a good programmer
Sessions on demand: Ask more information
Cost : 4 000 Euros without V.A.T (19.6%) for 1 person during 10 days. Travel, lodging and meals NOT included.
Content
-
Introduction
- 3D rendering pipeline
Rendering pipeline, hardware acceleration
- OpenGL
History, extensions, software pipeline, states C++ interface, operating system interface
- GLUT and/or QT
-
Mathematics
- Vectors, basis, operators, ...
Dot product, cross product, cylindrical and spherical basis, ...
- Affine transformations(rotations, composition, ... )
Homogeneous coordinates, Euler angles, gimbal lock, arbitrary axis rotations, quaternions, ...
-
Modeling in 3D
- Modeling 3D objects
Primitives and geometrical meshes, display lists, vertex arrays, vertex buffer objects, ... Parametric curves and surfaces, polynomial curves, Catmull-Rom spline, curves and Bezier patches, B-Splines, NURBS
- Handling time
Timers, double buffering, ...
- Modeling the scene
Space coordinates (object, world, ...), scene graphs, ...
- The observer
Camera models, orthographic and perspective projection, viewport, vertex pipeline, clipping, guardband clipping, rasterisation, Z-Buffer, ...
- Modeling lighting
Shading models, lighting models, OpenGL lighting model : diffuse and specular reflection, ambient and others, ... Phong and Blinn/Phong shading models + others BRDFs, ... Light sources, (point, spot, directional), materials and other globals parameters Precomputed lighting: env maps, spherical harmonics, radiosity, photon mapping, ...
- Texture mapping
Texture space, perspective correction, filtering(magnification, mignification), mip-mapping, trilinear, anisotropic filtering, texture formats and compression, ... Texture mapping with OpenGL( texture objects, texture coordinates, parameterization, blending, ...)
-
SFX - special effects
- Image-based
Skybox, billboards (screen, viewpoint, axial), impostors, particules, shadow mapping, ...
- Based on stencil buffer
Mirrors, projective shadows, shadow volumes, ...
- Based on accumulation buffer
Motion blur, object motion blur, depth of field, antialiasing, other effects, ...
- Antialiasing methods
Per primitive, global (hardware)
-
Acceleration methods
- Hidden object removal
Backface culling, bounding volumes, occlusion culling (silhouette, horizons, hierarchical zbuffers, cell-based, ...)
- Levels of detail
Geometrical simplification, terrains, ...
- Spacial division
Hierarchies, portals, grids, quadtree, octree, BSP, ...
-
Advanced animation
- Keyframes
Squeleton, skinning, ...
- Physical animation
Detection and response to collisions, fluids, ...
-
Real-time shaders
- Theory
Pipeline, models, types, versions, languages ; vertex, fragment and geometry shaders.
- Practice
GLSL, Cg (& CGFx) or HLSL (& .fx) ; FxComposer, RenderMonkey.
- Implementation of RT effects
Toon, phong, glow, HDR, NPR, ...
|