190 likes | 202 Views
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.
E N D
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 path-finding 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