Project 3 Guidelines CS248 Computer Graphics Help session November 7, 2001 Outline • Four guidelines, covering: – Your time allocation – Our bucket grading system • Expectations for advanced features – Grades are proportional to effort – Doing more than required Guideline #1: time allocation • • • • You are given 4 weeks for the assignment Spend 2 weeks on general game engine Spend 2 weeks on advanced techniques We expect roughly a student-week of work for each advanced feature. • If it looks hacked into your game in hours, full credit is unlikely. Guideline #2: grading system • Bucket grading system (-,-, , +, +) • Your grade depends on difficulty of implementation On-screen control panel • Too easy: restart and quit buttons, a couple scores updated occasionally • Better: UI widgets customized to game, like 2-axis control stick for airplane or radar map • Advanced: realistically modeled 3D airplane cockpit, detailed texture-mapped dashboard, dynamic gauges View frustum culling • Too easy: only discard objects behind eye or pre-computed 2D culling • Better: general 3D view frustum culling of bounding volumes, either in eye space or world space Level of detail control • Too easy: not drawing objects beyond a distance threshold • Better: multiple, simplified versions of models offline and choosing between them based on distance from viewpoint, rendering load, projected screen area, etc. • Advanced: geomorphed/blended transitions between LODs or dynamic continuous level of detail adjustment, such as progressive meshes Occlusion culling • Too easy: pre-computed coarse-grained list of 2D/3D scene areas not-visible from certain zones (i.e. only render the floor of the building the user is in) • Better: BSP trees, portal culling, offline PVS calculations • Advanced: Handling dynamic moving objects, hierarchical occlusion masks, etc. Procedural modeling • Too easy: procedural 2D textures, e.g. using Perlin noise • Better: fractal mountains, modeling using implicit functions • Advanced: flowing water modeled using particles, volumetric modeled smoke, genetic textures; see book, Texturing and modeling, by Ebert, Musgrave, Peachey, Perlin, and Worley Collision detection • Too easy: simple hard-coded tests based on your knowledge of the size of some object; axis-aligned walls and points • Better: efficient collisions of arbitrary polygons with each other • Advanced: collisions of procedural objects (not converted to polygons) with each other, predicting time of impact for curved trajectories Simulated dynamics • Too easy: some object moving according to basic Newtonian physics • Better: springs, friction, damping, interacting systems behaving according to physical laws, e.g. articulated objects • Advanced: cloth, hair, deformable objects (in real time) Motion capture animation • Better: playback of motion capture data loops (walking, running) modifying hierarchical transforms in simple articulated character • Advanced: smart interpolation between motion captures samples and loops, with realistic “skinning” of animated limbs Advanced rendering effects • Too easy: environmental reflectance maps, multiple textures blended together • Better: shadows using multi-pass rendering, lighting using projected textures • Advanced: bump mapping, displacement mapping Sound • Too easy: system(“plaympeg my_sound.mpg”) • Better: internal control over sounds, played with low latency, linked to motions or events in game, mapped to some parameters (attenuated with distance, etc) • Advanced: modeling for speed of sound, Doppler shift, sound reflection from environmental objects Artificial Intelligence • Too easy: Enemy characters walk straight towards user • Better: computer-controlled agents do pathfinding with A* search algorithm or demonstrate simple “learning” over time • Advanced: neural network learning, sophisticated emergent flocking behaviors, etc. Networked multi-player ability • Too easy: multiple players on the same keyboard or sharing information via the file system • Better: multiple players on different machines, using the network • Advanced: Kalman filtering or similar predictive techniques to overcome latency Game level editor • Too easy: choosing between defined levels or permutations • Better: control over shape of world and any objects/obstacles within • Really advanced: control over all game parameters. Interactive graphical editors are worth more than text-based editors Guideline #3: grade effort • If features are implemented at “too easy” level, you’ll probably get less than a B • Teams with reasonable implementations of advanced features at the “better” level will probably earn roughly a B+ or A• To get an A, we need to see outstanding effort. • In general, a few features done well is better than many mediocre ones Guideline #4: doing more • More complex requirements for a feature are only needed for your official advanced techniques • If you want to add more features beyond the required number, the quality of their implementation won’t hurt you