Project 3 Guidelines CS248 Computer Graphics Help session November 7, 2001

advertisement
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
Download