Shantanu Pandey
  • Projects
    • Hard Light Vector
    • Memory Manager
    • Samurai Crusader
    • Dyslexia VR
    • Geriatric Depression Suite
  • Prototypes
    • Game Mechanics
    • Diana's Inferno
    • MakeUp & BreakUp
    • 10Pest
    • Ninja Pinball
  • Blogs
    • Sic Parvis Magna
    • Game Engineering - Week 1
    • Game Engineering - Week 2
    • Game Engineering - Week 3
    • Game Engineering - Week 4
    • Game Engineering - Week 5
    • Game Engineering - Week 6
    • Game Engineering - Week 7
    • Game Engineering - Week 8
    • Game Engineering - Week 9
    • Engine Feature - Audio Subsystem
    • Final Project - GameEngineering III
    • AI Movement Algorithms
    • Pathfinding Algortihms
    • Decision Makiing
  • About

Week 2 - 08/30/2018

9/6/2018

0 Comments

 
Built upon the understanding of last week, this week’s assignment require us to understand the graphics pipeline better and create a platform independent interface for mesh and effect. The requirement was instead of using platform specific graphics files, we have a create make a platform independent interfaces and use that for both OpenGL and Direct3D.

To clarify the graphics terms, mesh is the geometric data used in drawing and effect is the shading data over the geometric data. This means mesh defines the boundaries and effect defines the coloring over it. There is also an important difference between OpenGL and Direct3d on how they draw on screen. OpenGL takes the coordinate of vertices in counter-clock wise direction while Direct3D takes them in clockwise direction.
​
As the implementation of this assignment, I created a platform independent cMesh and cEffect class and both the Graphics.gl.cpp and Graphics.d3d.cpp call the same functions to initialize, draw, bind and clear the meshes and effect.
Picture
One major difference between Direct3d and OpenGL is the initialization of views. This step doesn’t happen in OpenGL but Direct3D initializes a view to render target on screen. It takes the screen’s resolution width and height to render the target. These views are initialized before the shading data (i.e. effect) and geometry data (i.e. meshes). One way I could think of to avoid this is we could initialize the views automatically when user initializes the effects for Direct3D. Preprocessor can be used in cEffect class to initialize views before the effects only for Direct3D.

Some screenshots from this assignment are below:


Playable Exe Download​
Picture
Game Screenshot
Picture
Direct3d Graphics Debugging - ClearRenderTarget()
Picture
Direct 3D Graphics Debugging - ClearVIew()
Picture
OpenGL Graphics Debugging using Render Doc - glClear()
Picture
OpenGL Graphics Debugging using Render Doc - glDrawArray() Texture Viewer
Picture
OpenGL Graphics Debugging using Render Doc - glDrawArray() Mesh Output
0 Comments



Leave a Reply.

    Author

    Write something about yourself. No need to be fancy, just an overview.

    Archives

    September 2018

    Categories

    All

    RSS Feed

FOR ANY FURTHER DETAILS


Telephone

801-859-1131

Email

Resume
File Size: 227 kb
File Type: pdf
Download File

Visit Hard Light Vector
[email protected]
Git Hub
  • Projects
    • Hard Light Vector
    • Memory Manager
    • Samurai Crusader
    • Dyslexia VR
    • Geriatric Depression Suite
  • Prototypes
    • Game Mechanics
    • Diana's Inferno
    • MakeUp & BreakUp
    • 10Pest
    • Ninja Pinball
  • Blogs
    • Sic Parvis Magna
    • Game Engineering - Week 1
    • Game Engineering - Week 2
    • Game Engineering - Week 3
    • Game Engineering - Week 4
    • Game Engineering - Week 5
    • Game Engineering - Week 6
    • Game Engineering - Week 7
    • Game Engineering - Week 8
    • Game Engineering - Week 9
    • Engine Feature - Audio Subsystem
    • Final Project - GameEngineering III
    • AI Movement Algorithms
    • Pathfinding Algortihms
    • Decision Makiing
  • About