(Final) Project Four
Final Project代写 Description: In this final project, you will be implementing a game or interactive demonstration that integrates one
Description: In this final project, you will be implementing a game or interactive demonstration that integrates one or more additional capabilities of your choice into the scene graph architecture. Additionally you will be adding three specified functionalities to the scene graph architecture. These include the capability to search for a particular SceneNode, a class for background sounds, and implementation light sources that are part of the scene graph with positions and orientations that are updated accordingly.Final Project代写
You should download the CSE387ProjectFour.zip archive and use it as your starting point for the project.
Demonstration or Game Final Project代写
Implement a game using the architecture that we have created during the course of the semester. The project should function smoothly and be interactive. It should also be aesthetically appealing i.e. look good. The project should incorporate the capabilities and functionality that we have worked on during the semester. You are expected to also learn about additional computer graphics / game topics and incorporate one or more into the project. Whatever you develop needs to be incorporated into the scene graph/rendering architecture that we have created.
Project Requirements Final Project代写
- Fog, Transparency, and Blending
- Include at least one of these
- Simulated Lighting
- Integrate lighting into the scene graph architecture (see below) and illuminate the scene using multiple light sources of at least two different types
- Model Loading
- Incorporate at least three different models into the scene. Each should be texture mapped. Do not use models that I have previously used in class.Final Project代写
- Script Based Motion
- Include at least one object with movement controlled by a script.
- Physics Based Motion
- Include at least one object with movement controlled by the physics engine that interacts with other objects in your scene.Final Project代写
- Custom Collision Reaction through Scripts
- Implement customization reaction for collision and/or trigger events in scripts.
- Spatialized Sound
- Include both spatialized and background sounds (see below)Suggested New Capabilities and Places to Start:
Billboards Final Project代写
Additional Bullet Physics Final Project代写
- Trigger Zones
- Vehicle and Character Controllers
- Soft Body Dynamics
https://github.com/bulletphysics/bullet3/blob/master/docs/Bullet_User_Manual.pdf http://bulletphysics.org/mediawiki-1.5.8/index.php/Tutorial_Articles http://bulletphysics.org/mediawiki-1.5.8/index.php/Tutorials
Cube Maps/ Sky Boxes/ Environment Mapping https://learnopengl.com/#!Advanced-OpenGL/Cubemaps http://ogldev.atspace.co.uk/www/tutorial25/tutorial25.html
Deferred Shading Final Project代写
https://www.red3d.com/cwr/boids/ Geometry Shader / Exploding Objects
https://learnopengl.com/#!Advanced-OpenGL/Geometry-Shader Height Maps
http://www.mbsoftworks.sk/index.php?page=tutorials&series=1&tutorial=24 High Dynamic Range (HDR)
https://learnopengl.com/#!Advanced-OpenGL/Instancing Light Maps (Shadows)
http://www.opengl-tutorial.org/intermediate-tutorials/tutorial-15-lightmaps/ Normal (Bump) Mapping Final Project代写
https://learnopengl.com/#!Advanced-Lighting/Parallax-Mapping Particle Systems
Physically Based Rendering Final Project代写https://learnopengl.com/#!PBR/Theory https://learnopengl.com/#!PBR/Lighting
Picking using Bullet
Screen-Space Ambient Occlusion (SSAO) https://learnopengl.com/#!Advanced-Lighting/SSAO http://ogldev.atspace.co.uk/www/tutorial45/tutorial45.html
Shadow MappingFinal Project代写
http://www.opengl-tutorial.org/intermediate-tutorials/tutorial-16-shadow-mapping/ https://learnopengl.com/#!Advanced-Lighting/Shadows/Shadow-Mapping http://ogldev.atspace.co.uk/www/tutorial23/tutorial23.html http://ogldev.atspace.co.uk/www/tutorial24/tutorial24.html http://ogldev.atspace.co.uk/www/tutorial47/tutorial47.html
https://www.red3d.com/cwr/steer/ Skeletal Animation with ASSIMP
Scene Graph Development – Find Final Project代写
BehaviorScripts often need reference additional SceneNodes besides the one that they are attached to. One way to do this is to add a data member to the script and simply assigned the specific SceneNode to that data member.
In a BehaviorScript, it is often necessary to search the game scene for one or more SceneNodes. Add a name property to the SceneNode class. Modify SceneNode sub-classes as necessary to support this. Implement a Find method that can be used to search the entire scene graph of a sub-branch of the graph for a particular SceneNode based on the name. The method should return a reference to the SceneNode if it is found or nullptr if the name was not found in the branch the scene graph that was searched.Final Project代写
Optionally, you may also wish to add “Tag” and/or “Layer” functionality that can be used to classify a SceneNode as being part of a group. One way to implement these would be to use collision masks such as we have discussed in class. These can be used in numerous ways throughout a game engine. For instance, a tag might be used to designate membership in an “enemy” group. When a collision with any “enemy” in the group occurred, a BehaviorScript attached to one of the SceneNodes in the collision might specialize its execution based on the tag. Layers might be used to control what does and does not get rendered in the view of a Camera or designate what types of collisions are of interest.Final Project代写
Scene Graph Development – LightsFinal Project代写
Light sources are the one thing we have not yet integrated into our scene graph architecture. Create a Light or LightSource class that is a sub-class of SceneNode. Implement positional, directional, and spot lights that give off ambient, diffuse, and/or specular reflection by providing all of the necessary functionality in the class or through sub-classes of the class. Positions, directions, and spot light directions should be automatically updated based on translations and rotations of the light. One way to do this would be to automatically attach a BehaviorScript to each light source that updates these properties of the light. Instead of attaching this script in the Scene class, this script could instead be instantiated and attached in the constructor of the light. It should be possible to set all properties of the light sources through the class or classes that you create.
Scene Graph Development – SoundBackground
Add a sub-class of SoundSource that can be used to play non-spatialized background sounds.Final Project代写
Turn it in
Submission instructions for this project are similar to labs.
- Copy the folder containing your solution to the desktop.
- Change the name of the folder to CSE387ProjectFour followed by your unique identifier. For instance “CSE387ProjectFourBachmaer.”Final Project代写
- Open the solution. Make sure it still runs.
- Clean the solution by selecting Build->Clean Solution.
- Zip up the solution folder using the standard windows compression tool. (No 7zips, rars, etc.)
- Submit your zip archive of the solution through canvas.