- 12/13/2023: Initiate project
- 12/14/2023: Created singleton Window class
- 12/15/2023: Render car model
- 12/19/2023: Add light source and road (plane)
- 12/21/2023: Successfully run PhysX snippet (Hello world and Vehicle drive)
- 12/27/2023: Added gravity to car model and light cube
- separated phisics functionalities into a singleton class
- 12/28/2023: Draw skybox using cubemap. Created
Skybox
class that derivesDrawable
for special draw calls. - Toggle var
DrawWireframe
inApp
class to draw wireframe.
- 12/31/2023: Generated terrain using height map with Tesselation shader.
- 1/3/2024: changed car model (fixed missing textures) and use semi-fixed time step for render loop and physics step stability.
Warning
I haven't tried to apply PhysX height feild, Not sure if it suits for collision with vehicle so I didn't try it yet. Now I am just going to let the vehicle run on a plane and add textures to the plane instead of using the tesselated terrain.
- 1/4/2024 Import and draw fbx model recursively
This is for animating wheel direction when turing. I'm not sure why the transformation hierarchy works as I am applying scaling at the left-most of themodel
matrix (M = T_drawOffset * S * T_2 * T_1 * R
), I thought it should beM = T_drawOffset * T_2 * T_1 * R * S
.
- 1/6/2024 Added physX vehicle simulation and attached with car model.
The car is moving in pre-choreographed sequence.
- 1/8/2024 Studied Physx Vehicle SDK structure and applied collision onto vehicle and object in scene. \
- 1/11/2024 Add user input control car throttle, brake, and steer.
Add Imgui and following camera (to be imporved).
- 1/15/2024 Render terrain with color map. Instance drawing trees with height. \
Warning
Tree dosn't appear if srawn after terrain.
- 1/24/2024 Shadow mappping (shadows are only drarwn on terrain at the momment) \
- Tessellation shader for terrain.
- Incorporated Nvidia PhysX and vehicle SDK.
- Shadow mapping.
- clean way to render wireframes (bounding box)
- vehicle physics and user control
- render terrain with textures.
- calculate normal matrix on CPU and send in as uniform
- implement better following camera
- interpolate wheel rotation
- add normal and environment mapping in model shder
- change pointers to smart pointers
- should I move all dependencies (glfw, glm...) into solution folder?
- initialize App variables at contructor