Coder Social home page Coder Social logo

asdlei99 / directx11-playground Goto Github PK

View Code? Open in Web Editor NEW

This project forked from guillaume-haerinck/directx11-playground

0.0 1.0 0.0 24.46 MB

๐ŸŒ  Simple app to play around with DirectX with an ECS architecture

License: MIT License

C++ 92.09% HLSL 0.20% C 7.71%

directx11-playground's Introduction

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

Triangle exemple

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

Rotating cube

Rotating cube exemple

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

Textured primitives

Textured primitive exemple

Show some procedurally-generated primitives with their UV maps.

Model loading

Model loading exemple

Loads a GLTF model with its texture.

[WIC] Skybox

Show an environment in the background using a cubemap.

[WIC] Global GUI

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

Blinn-Phong shading

Directional light

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.

[WIC] Multiple light types

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)

[WIC] Gooch shading

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

[WIC] Toon shading

A rendering technique closer to traditional 2D animation.

Intermediate

[WIC] Object picking

Select objects on the scene with the mouse and raytracing.

[WIC] View frustrum culling

Do not render objects outside of the camera view.

[WIC] Occlusion culling

Do not render objects hidden by other ones.

[WIC] High Dynamic Range

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

[WIC] Gamma correction

Fix the gamma of the screen.

[WIC] Normal mapping

Show micro-geometry with lighting based on a texture.

[WIC] Parallax mapping

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

Physically based rendering (PBR)

[WIC] Directional light

Base exemple of PBR.

[WIC] Multiple light types

Test multiple light types with PBR.

[WIC] Materials

Uses PBR materials.

[WIC] Image based lighting (IBL)

Local illumination technique based on the scene.

[WIC] Screen-space subsurface scattering (SSS)

Shows hows lights can traverse some materials.

[WIC] Hair

Render hair and fur.

Shadows

[WIC] Directional shadow mapping

Shadows created by a directional light.

[WIC] Point shadow mapping

Shadows created by point lights.

[WIC] Screen space ambient occlusion (SSAO)

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

[WIC] Light map

Baked global illumination based on raytracing.

Animations

[WIC] Linear transform

Basic translation and rotation loaded from gltf.

[WIC] Squeletal animation

A basic character movement loaded from gltf.

Post-Processing

[WIC] Bloom

Show a light with bloom effect.

[WIC] Depth of field

Blur the out of focus area of the image.

[WIC] Motion blur

Blur based on movement of the camera.

Advanced

[WIC] Particle system

Shows emissive particles.

[WIC] Instanced rendering

Render a forest.

[WIC] Tesselation

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

[WIC] Deferred shading

Improve lighting performance with geometry buffer.

[WIC] Deferred plus shading

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

Based on

Youtube tutorials

Websites

Repos

Books

directx11-playground's People

Contributors

guillaume-haerinck avatar

Watchers

 avatar

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.