Contents

Introduction

Glossary

Prerequisites

Programming: C/C++, data structures, algorithmsMathematics: points, vectors, matrices, planes, colors, interpolation
Case StudyThe Zombie EngineThe core engineThe renderer: DirectX 9The scene graph. geometry, animation, particlesThe spatial and visibility systemThe terrain and vegetation systemRelated systems: levels, layers, superentities, special effectsGame and simulation layers: collision, physics, navigationThe art exporterThe level editor

Demo Framework

Lesson 1. Drawing simple shapesIntroduction: 3d geometry, points, triangles, shapesDrawing a triangleLoading a shapeDrawing a shapeBasic render states: Fill modesBasic render states: Cull modesExercises
Lesson 2. TransformationsIntroduction: transformations in popular engines and toolsPosition as a pointRotation as three anglesScale as a valueExercises
Lesson 3. The 3D cameraIntroduction: viewing in 3DCamera positionCamera orientationPerspective projectionOrthogonal projectionExercises
Lesson 4. InputIntroduction: mouse and keyboard controlsControlling the cameraControlling the shape transformsObject pickingOn-screen controlsExercises
Lesson 5. ColorIntroduction: displaying colorsPixel formats: color channelsThe frame buffer: depth and stencilOperations with colors: modulate, additive

Project 1.Implementing 3D User Interface.Implementing a Tetris-style game using primitive shapes

Lesson 6. ResourcesIntroduction: from 3ds Max and Photoshop to the engineLoading models and texturesDrawing modelsApplying textures: texture coordinatesTransforming texture coordinatesExercises
Lesson 7. Lighting and shadingIntroduction: lights and shadowsLights: omni, directional, point, spotlightComponents: ambient, diffuse, specular, emissiveAmbient lightingDiffuse lightingSpecular lightingSelf-iluminationExercises
Lesson 8. Transparency and blendingIntroduction: the alpha channelAlpha testingAlpha blendingExercises
Lesson 9. Vertex shadersIntroduction: fixed vs. programmable geometry processingVertex shaders and usageVertex shader basics: projection, colors, texture coordinatesVertex shader examples: transform vertex coordinatesVertex shader examples: transform texture coordinatesVertex shader examples: surface deformationVertex shader lightingExercises
Lesson 10. Pixel shadersIntroduction: fixed vs. programmable color and texture processingPixel shaders and usagePixel shader basics: color, texture samplingPixel shader examples: transform colorsPixel shader lightingVertex+pixel shaders: Attenuation, Spot projectionExercises

Project 2. Creating a simple interactive scene

Lesson 11. MaterialsIntroduction: definition in popular softwareTexture layers: color, alpha, specular, detailPer pixel lighting: bump mappingExamples: Environment reflectionsExamples: Fresnel reflectionExercises
Lesson 12. ShadowsIntroduction: adding depth, simple shadow decalsSimple shadow projectionShadow volumes: algorithm, implementations: CPU, Vertex Shader, Geometry ShaderShadow mappingAmbient Occlusion(other shadowing techniques)Exercises
Lesson 13. CompositingIntroduction: image processingUsing render targetsImage processing: black and white, sepia tone, heat, etc.Render target textures: TV, projectionsPostprocessing effects: reflections and refractionsExercises
Lesson 14. AnimationIntroduction: animating propertiesCurves and interpolationAnimating transformsAnimating geometry: waves and surface deformation, transforming normalsAnimating rigid geometry: jointsAnimating characters: skeletons and skinningExercises
Lesson 15. Special effectsIntroduction: dynamic effectsSimple effects: flashes, explosionsParticle systems: smoke, impacts, tracesTexture effects: blood, splattingExercises

Project 3. Creating a complex interactive simulation

Leave a comment