NFGE
NFGE-Nicolas Four Game Engine
Description:
This my own C++ game engine that developed using Direct3D 11.
It has:
It has:
- AI library:
- Support FSM
- Path-finding algorithms
- Perception module
- Steering Module
- Core library:
- Handle window management with Win32.
- Implemented memory management structure such as:
- BlockAllocator & TypeAllocator
- Handle & HandlePool
- Implemented Macro for Meta system that can achieve run time class information retrieve(Reflection System)
- Graphic library:
- Implemented 3D graphic rendering pipeline that integrate post-process module
- Support Perspective Camera & Orthographic Camera
- Support Mesh building, sprite rendering, and text rendering
- Support custom Geometry Shader, Vertex Shader, and Pixel Shader
- Implemented Skeleton animation system with:
- Animation blending
- Partially animation
- Animation blend tree
- Input library:
- Handle window management with Win32.
- Network library:
- Developed StreamReader and StreamWriter for retrieving and sending infromation through network.
- Support both Tcp socket and Udp socket connection
- Developed linkingContext and ObjectFactory to allows the game object synchronization between machines through network
- Math library:
- Implemented Essential data structure for 3D graphic calculation:
- Vector2,3,4
- Matrix33,Matrix44
- Quaternion
- Circle, AABB, OBB, Ray
- Implemented useful interpolation function:
- LinearSpline
- QuadraticBezier
- CubicBezier
- CutmulRomspline
- Physics:
- Implemented Verlet particle physics system
Integrated External Library:
- Assimp -- For 3D model importing
- Dear Imgui -- For Debug UI
- DirectXTK -- For graphic & audio
- RapidJSON -- For loading and saving Json file
Project in NFGE:
- Depth blur Demo:
- Using 3D Graphic render pipeline to render 5 sphere meshes that has Diffuse, Specular, normal and displacement texture.
- Implemented with Depth blur post-processing effect by rendering the z value of all vertices in to a Render target in the first path. In the second path bind the z value texture with the pixel shader and blend each pixel base on the z value.
- Shadow Maping Demo:
- Using 3D Graphic render pipeline to render tank modles that has diffuse, Specular, normal texutre.
- Implemented shadow effect post-process by rendering the pixel's z value with a orthographic light camera that has a view frustum always cover the main camera's view sight. And bind this texture and light camera's view matrix to the next render path. By recomputing the z value for each pixel in the second path. we can know should it be shadowed by comparing the z value with the z value in the first path.
Technical Support:
My Instructor: Peter Chan
Comments
Post a Comment