DX11 Render Engine

C++

D3D11

HLSL

This was a semester long project in which we implemented the basics of what is necessary for a render engine.


Physically Based Rendering

Materials within this scene allow for PBR textures to be used in order to simulate different physically based attributes. Textures to make a PBR material in this engine include albedo, normals, roughness, and metalness.

Scene Management

This is a coinvent way to manage lights, objects, cameras, and the current skybox. Their ImGui updates accordingly to what the light type is.

Animation Curve Helper

My interest in animation led me to create this large helper file and a long list of animation curves that can be easily access and used. It also visualizes the curve within a small graph to help the user visualize what they have chosen. Note that this tool is conveniently set up connecting it to ImGui and so linking a new animation using this system is very convienent for rapid prototyping.

Lights

This engine allows for lights created from directional and point lights. Each have their own settings but both derrive from a lighting objects.

Dither Shader

I had always found it very interesting when games opted to use dithering in order to imitate transparency over normal transparency. Until we actually began to implement transparency during the production of this project I never knew what a PAIN it was in order to do and how expensive it can be.

I sought to implement my own rudimentary dithering pattern for myself in this engine that offered several different patterns, which can be swapped out for different textures, at different distances from point lights.

Cameras

Cameras are perspective and allow the user to traverse the world. The options during runtime lets the player change the speed of the camera and to swap to a different one if desired.

Skybox

Able to change the skybox of the current scene using a cube map. Scenes appear in ImGui as another optional button that when pressed swaps out what set of objects are to called from.

Shadows

As seen in the video and screenshots this engine also is able to create shadow maps using depth buffers created from light sources.


View the Code

Get access to the github that shows behind the scenes