Skip to content

jmcintyre24/Graphics-II-Course-Project

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

41 Commits
 
 
 
 
 
 

Repository files navigation

Graphics-II-Course-Project

Graphics II Project Repository

Prerequisites to Run

x64 Microsoft Redistributable for versions 2015/2017/2019

Overview

This is a DirectX11 project created for Project & Portfolio IV (Graphics-II) using Gateware libraries. (Which are written & Maintained @ Full Sail University, License's in project.).
CMake(VER. 3.16+) is required to build the project, though there is an executable in the MAIN\Build folder.

MAIN is the newest project itself, contains a BUILD folder contains the executable.

Cubes are used to represent the lights that have been implemented.

The cube inwards by the center of the mesh is the point light, the 'rainbow' cube that can be controlled is the directional light, the red light is the spot light. Along with that, the cube that is the directional light has the unique pixel shader applied to it.

Controls:

  • Holding right click, move mouse around to look around.
  • C travels downwards.
  • Space travels upwards.
  • WASD for general strafing/movement.
  • Q & E for rotating the camera quickly left or right.
  • Z toggles the ability to move the directional light.
  • Holding left click (AFTER PRESSING Z), dragging moves the directional light horizontally.
  • J & L spins the mesh.
  • Left Shift & Control zooms in and back out. (Shift > Inwards, Control > Outwards)
  • T & G controls near plane. (T moves it outwards, G inwards.)
  • Y & H controls far plane. (Y moves it inwards, H outwards.)
    • While holding Y, press 6 to instantly set to 10.0f if the far plane is greater than 10.0f, a MSG will print out [In Console] stating it was successful.
  • R resets camera zoom & clipping planes.

Features (WIP):

Milestone 1

  • Complex Mesh Loading with Obj2Header
  • Textures on Complex Mesh
  • Directional Lighting on Complex Mesh
  • Point Light on Complex Mesh (With Range Attenuation)
  • Two Different Functional Lights on the same drawn geometry. (Point Light & Directional Lighting)
  • Dynamic Change in direction of directional light & dynamic Change in position of positional light.
  • Normal Mapping on a full 3D complex mesh [StoneHenge].
  • Unique Pixel Shader using relative position, time, and a wave. Causes whatever mesh/object that is using that pixel shader to pulse and change colors based on the X, Z, and time.
  • Proceduarly Generated 3D Grid.

Milestone 2

  • Stabilized FPS fly-through style camera <--- Fixed Stabilization Issue
  • Infinite Skybox
  • Simple Camera Zoom

Milestone 3

  • Manually Adjustable near- and far- clip-planes.
  • Proceduraly Created Geometry done in Geometry Shader. (Borderline/Unsure -> Implemented a geometry shader that uses the existing mesh and creates a smaller version and 'spilt' smaller versions to generate cheap rocks procedurally.)
  • Vertex Shader Wave. (Modified vertex grid based on sine wave.)
  • Render to Texture. (Rendering out an offscreen scene to a texture on a 3D object.)
  • Functional spot light added with cone attentuation.
  • Second View Port added.
  • Dynamic position and direction on spot light.