Skip to content

🌠 Simple app to play around with DirectX with an ECS architecture

License

Notifications You must be signed in to change notification settings

guillaume-haerinck/directx11-playground

Repository files navigation

DirectX 11 ECS Playground

Small DirectX renderer with an Entity Component System architecture.

Table of Contents

Building

You must download Visual Studio IDE and install the C++ package. Now you can open directx11-playground.sln and build the app with f5.

Examples

Basics

Triangle exemple

A simple triangle. The only example that does not use indexed drawing.

Rotating cube exemple

A rotating colored cube. Each face is independant so that the colors can be applied without smearing.

Textured primitive exemple

Show some procedurally-generated primitives with their UV maps.

Model loading exemple

Loads a GLTF model with its texture.

[WIC] Skybox

Show an environment in the background using a cubemap.

Display a grid, some icons for the lights and a dynamic gizmo to always know the orientation of the camera.

Blinn-Phong shading

Phong shading exemple

Setup a simple scene with a directional light and no material. A menu is available to edit ambient, diffuse and specular properties.

Uses multiple point, directional and spotlights.

[WIC] Materials

Uses different objects with different materials applied to them to compare how they react to lighting.

Non-Photorealistic Rendering (NPR)

Change pixel color value from "cool to warm" based on normal direction angle from the camera.

A rendering technique closer to traditional 2D animation.

Intermediate

Select objects on the scene with the mouse and raytracing.

Do not render objects outside of the camera view.

Do not render objects hidden by other ones.

Allows a rendered image to show more details when the scene contains both shadows and highlights.

Fix the gamma of the screen.

Show micro-geometry with lighting based on a texture.

Adds micro-geometry to a model based on a texture.

Physically based rendering (PBR)

Base exemple of PBR.

Test multiple light types with PBR.

[WIC] Materials

Uses PBR materials.

Local illumination technique based on the scene.

Shows hows lights can traverse some materials.

[WIC] Hair

Render hair and fur.

Shadows

Shadows created by a directional light.

Shadows created by point lights.

Adds more shadows to micro-geometry based on vertex density.

[WIC] Light map

Baked global illumination based on raytracing.

Animations

Basic translation and rotation loaded from gltf.

A basic character movement loaded from gltf.

Post-Processing

[WIC] Bloom

Show a light with bloom effect.

Blur the out of focus area of the image.

Blur based on movement of the camera.

Advanced

Shows emissive particles.

Render a forest.

Shows how an object contains more or less geometry based on camera distance.

Improve lighting performance with geometry buffer.

Improve lighting performance in a forward shading pipeline by dividing the screen on multiple areas.

Based on

Youtube tutorials

Websites

Repos

Books

Releases

No releases published

Packages

No packages published