Difference between revisions of "GAM670/DPS905 Weekly Schedule 20121"
(→GAM670/DPS905 -- Weekly Schedule 20121) |
(→GAM670/DPS905 -- Weekly Schedule 20121) |
||
Line 96: | Line 96: | ||
*:: [http://staff.science.uva.nl/~leo/cinderella/line1.html Dorst's site] | *:: [http://staff.science.uva.nl/~leo/cinderella/line1.html Dorst's site] | ||
*:: [http://sinai.apphy.u-fukui.ac.jp/gcj/software/GAcindy-1.4/GAcindy.htm Hitzer's site] | *:: [http://sinai.apphy.u-fukui.ac.jp/gcj/software/GAcindy-1.4/GAcindy.htm Hitzer's site] | ||
+ | * Visibility Determination | ||
+ | **: test a point for presence within a set of planes | ||
+ | **: normal calculations - general rotation matrix - vector and angle | ||
+ | ** ViewFrustum | ||
+ | **: parameter - view * projection | ||
+ | **: 6 planes | ||
+ | **:: near and far planes | ||
+ | **:: left and right planes | ||
+ | **:: top and bottom planes | ||
+ | **: coding | ||
+ | **:: constructor | ||
+ | **:: ViewFrustum::contains() | ||
+ | ** Finite Size of Objects | ||
+ | **: Expansion of the View Frustum | ||
* Index Buffers | * Index Buffers | ||
*: amount of storage needed for vertex data | *: amount of storage needed for vertex data | ||
Line 113: | Line 127: | ||
* indexBuffering sample | * indexBuffering sample | ||
− | |||
== Week 4 - Jan 30 == | == Week 4 - Jan 30 == | ||
=== This Week === | === This Week === | ||
* Meshes | * Meshes | ||
+ | *: What is a mesh? | ||
+ | *:: vertex list -> vertex buffer | ||
+ | *:: index list -> index buffer | ||
+ | *:: attribute list -> subset to which primitives belong | ||
*: Stock Objects | *: Stock Objects | ||
*:: Sphere | *:: Sphere | ||
Line 122: | Line 139: | ||
*:: Torus | *:: Torus | ||
*:: Utah Teapot | *:: Utah Teapot | ||
− | *: | + | *: Custom Mesh COM object |
− | |||
*:: Create a Mesh | *:: Create a Mesh | ||
*:: DrawSubset | *:: DrawSubset | ||
Line 145: | Line 161: | ||
*::: normal is fixed (difference between viewpoint position and camera heading) | *::: normal is fixed (difference between viewpoint position and camera heading) | ||
*::: up is open to change | *::: up is open to change | ||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
=== To Do === | === To Do === | ||
=== Resources === | === Resources === | ||
Line 164: | Line 166: | ||
* [http://www.digitalrune.com/Products/GameEngine/Particles.aspx DigitalRune] | * [http://www.digitalrune.com/Products/GameEngine/Particles.aspx DigitalRune] | ||
+ | <!-- | ||
== Week 5 - Feb 6 == | == Week 5 - Feb 6 == | ||
=== This Week === | === This Week === | ||
Line 171: | Line 174: | ||
=== To Do === | === To Do === | ||
− | |||
* reorganize framework code so that vertex shader receives product of world, view, and projection matrices | * reorganize framework code so that vertex shader receives product of world, view, and projection matrices | ||
** store viewProjection matrix as an instance variable in Display | ** store viewProjection matrix as an instance variable in Display | ||
Line 180: | Line 182: | ||
* reorganize framework code to minimize duplication of heading normalization | * reorganize framework code to minimize duplication of heading normalization | ||
** perform normalization of heading in Display::beginDraw() | ** perform normalization of heading in Display::beginDraw() | ||
− | -- | + | |
+ | == Week 6 - Feb 13 == | ||
+ | === This Week === | ||
+ | * Effects Framework | ||
+ | === To Do === | ||
+ | === Resources === | ||
+ | |||
+ | == Week 7 - Feb 20 == | ||
+ | === This Week === | ||
+ | === To Do === | ||
+ | === Resources === | ||
− | + | == Week 8 - Mar 4 == | |
− | == Week | ||
=== This Week === | === This Week === | ||
* [http://msdn.microsoft.com/en-us/library/bb147178%28v=VS.85%29.aspx Mathematics of Lighting] | * [http://msdn.microsoft.com/en-us/library/bb147178%28v=VS.85%29.aspx Mathematics of Lighting] | ||
Line 242: | Line 253: | ||
*** [http://msdn.microsoft.com/en-us/library/bb509617%28v=vs.85%29.aspx length()] - length of a vector | *** [http://msdn.microsoft.com/en-us/library/bb509617%28v=vs.85%29.aspx length()] - length of a vector | ||
*** [http://msdn.microsoft.com/en-us/library/bb509645%28v=vs.85%29.aspx saturate()] - clamp scalar, vector, or matrix to [0, 1] | *** [http://msdn.microsoft.com/en-us/library/bb509645%28v=vs.85%29.aspx saturate()] - clamp scalar, vector, or matrix to [0, 1] | ||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
=== To Do === | === To Do === | ||
=== Resources === | === Resources === | ||
--> | --> |
Revision as of 20:13, 28 January 2012
GAM670/DPS905 | Weekly Schedule | Student List | Project Requirements | Teams and their Projects | Student Resources
Contents
GAM670/DPS905 -- Weekly Schedule 20121
Week 1 - Jan 8
This Week
- Assignment Discussion
- Suggested Enhancements
- Review of the Base Code
- Definition of a Framework
- Modularity through stable interfaces
- Re-usability through generic components
- Extensibility through hook methods
- Inversion of control - determines which application methods to invoke in response to external events
- Framework Architecture
- Modelling Layer
- API Translation Layer
- Notable Features of the Base Code
- camera, sound, and light are also derived from the Frame class
- textures attach at the object level
- texture connection is uncoupled from drawing of the graphics primitives
- reference frames are relative
- very simple collision detection
- Definition of a Framework
To Do
- add your name to the student list
- create a team page that includes the semester number 20121
- describe the game that you intend to develop
- list the topics of interest to your team in developing its game
- list the other topics of interest
Resources
Week 2 - Jan 16
This Week
- Relative Reference Frames
- Recursive calls
- Vector Frame::position()
- Matrix Frame::rotation()
- Matrix Frame::world()
- Detaching from and attaching to a parent frame
- Frame::attachTo()
- Recursive calls
- Geometry
- Plane
- normal + constant - examples
- equation of a plane: dot(n, x) + D = 0
- positive side of a plane dot(n, x) + D > 0
- Plane
- Collision Detection
- types of colliders
- spheres
- planes
- axis-aligned bounding boxes
- oriented bounding boxes
- types of colliders
To Do
- Research the feature that you are going to add and prepare a plan of action
- Prepare a team page for your team so that repos can be ordered
- Add a section to your team page to track your project and solicit commentary
Resources
Week 3 - Jan 23
This Week
- Collision Detection (cont'd)
- Shape
- Shape : Frame
- Shape::setRadius()
- Shape::getRadius()
- Shape::setRadius(float r);
- Shape::setRadius(float x, float y, float z);
- Shape::getRadius() const { return radius; }
- Shape::setPlane(Vector n, float d);
- Shape::setAxisAligned(Vector min, Vector max);
- Shape
- Comprehensive Camerawork
- rotation about an axis
- order of rotation matters
- Euler angles
- gimbal lock
- complex numbers
- solution of cubic equations 16th century
- two-dimensional representation
- matrix representation
- quaternions
- extension of complex numbers
- four-dimensional representation
- matrix representation
- geometric algebra (more abstract)
- Visibility Determination
- test a point for presence within a set of planes
- normal calculations - general rotation matrix - vector and angle
- ViewFrustum
- parameter - view * projection
- 6 planes
- near and far planes
- left and right planes
- top and bottom planes
- coding
- constructor
- ViewFrustum::contains()
- Finite Size of Objects
- Expansion of the View Frustum
- Index Buffers
- amount of storage needed for vertex data
- duplication of vertex data
- indexing
- indexed primitives
To Do
Resources
- Wikipedia on Complex Numbers
- Wikipedia on Quaternions
- Wikipedia on quaternions and Spatial Rotations
- Wolfram on Quaternions
- CProgramming.com on Quaternions
- Ogre intro on Quaternions
- collision sample
- indexBuffering sample
Week 4 - Jan 30
This Week
- Meshes
- What is a mesh?
- vertex list -> vertex buffer
- index list -> index buffer
- attribute list -> subset to which primitives belong
- Stock Objects
- Sphere
- Cylinder
- Torus
- Utah Teapot
- Custom Mesh COM object
- Create a Mesh
- DrawSubset
- FVF settings
- What is a mesh?
- SkyBox
- definition of a skybox
- other forms
- Billboards
- definition, purpose of a billboard
- types of billboards
- screen-aligned - useful for annotation text, lens flares
- normal is opposite to camera heading
- up is camera->up
- axial - useful for cylindrical symmetry - trees (textured object does not face straight on)
- up is fixed
- normal faces the viewer as much as possible
- view_plane - no distortion - useful for
- normal is fixed (opposite to camera heading)
- up is open to change
- viewpoint - simulates distortion due to perspective projection - useful for clouds
- normal is fixed (difference between viewpoint position and camera heading)
- up is open to change
- screen-aligned - useful for annotation text, lens flares
To Do
Resources