All Projects → Erkaman → Cute Deferred Shading

Erkaman / Cute Deferred Shading

Licence: mit
Cute little deferred shading implementation.

Projects that are alternatives of or similar to Cute Deferred Shading

Glsltuto
GLSL shaders tutorial
Stars: ✭ 168 (+30.23%)
Mutual labels:  opengl, glsl, rendering
Shaderworkshop
Interactive GLSL fragment shaders editor made with Qt
Stars: ✭ 43 (-66.67%)
Mutual labels:  opengl, glsl, rendering
Glchaos.p
3D GPUs Strange Attractors and Hypercomplex Fractals explorer - up to 256 Million particles in RealTime
Stars: ✭ 590 (+357.36%)
Mutual labels:  opengl, glsl, rendering
Tess Opt
Demonstration of how we can use tessellation shaders to make faster fragment shaders.
Stars: ✭ 13 (-89.92%)
Mutual labels:  opengl, glsl, demo
Facevfx
Mapping real-time visual effect to human face.
Stars: ✭ 68 (-47.29%)
Mutual labels:  opengl, glsl
3d Game Shaders For Beginners
🎮 A step-by-step guide to implementing SSAO, depth of field, lighting, normal mapping, and more for your 3D game.
Stars: ✭ 11,698 (+8968.22%)
Mutual labels:  opengl, glsl
Learn Opengl Golang
Learn OpenGL Tutorials in Go
Stars: ✭ 69 (-46.51%)
Mutual labels:  opengl, glsl
Sildurs Shaders.github.io
Sildurs shaders website
Stars: ✭ 84 (-34.88%)
Mutual labels:  opengl, glsl
Craft
A simple Minecraft clone written in C using modern OpenGL (shaders).
Stars: ✭ 8,957 (+6843.41%)
Mutual labels:  opengl, glsl
Sky Shader
☀️ WebGL sky and sun shader editor
Stars: ✭ 90 (-30.23%)
Mutual labels:  glsl, demo
Tinyraycaster
486 lines of C++: old-school FPS in a weekend
Stars: ✭ 1,383 (+972.09%)
Mutual labels:  opengl, rendering
Shaderconductor
ShaderConductor is a tool designed for cross-compiling HLSL to other shading languages
Stars: ✭ 1,146 (+788.37%)
Mutual labels:  opengl, glsl
Quickfont
A Modern OpenGL Font Rendering Library for OpenTK
Stars: ✭ 63 (-51.16%)
Mutual labels:  opengl, rendering
Tinyrenderer
A brief computer graphics / rendering course
Stars: ✭ 11,776 (+9028.68%)
Mutual labels:  opengl, rendering
Graphics Snippets
Shading techniques and GLSL snippets
Stars: ✭ 53 (-58.91%)
Mutual labels:  opengl, glsl
Expo Three Demo
🍎👩‍🏫 Collection of Demos for THREE.js in Expo!
Stars: ✭ 76 (-41.09%)
Mutual labels:  opengl, demo
Physics3d
A 3D physics engine
Stars: ✭ 101 (-21.71%)
Mutual labels:  opengl, rendering
Gdx Vfx
LibGDX post-processing visual effects
Stars: ✭ 105 (-18.6%)
Mutual labels:  opengl, glsl
Crossshader
⚔️ A tool for cross compiling shaders. Convert between GLSL, HLSL, Metal Shader Language, or older versions of GLSL.
Stars: ✭ 113 (-12.4%)
Mutual labels:  opengl, glsl
Langterm
🕹️ WebGL-based VT220 emulator, made as a learning example and frontend for a text adventure
Stars: ✭ 35 (-72.87%)
Mutual labels:  glsl, demo

Cute Deferred Shading Implementation

This is a cute little implementation of normal deferred shading. The focus of this implementation was readability and brevity, so that others can learn from the code. The entire renderer is only about 1400 lines of C++ code. Note that there are probably ways in which the implementation can be made faster, but such optimizations were not performed to keep things brief, and readable.

The number of external dependencies has been intentionally kept low. The only dependencies are GLFW, a PNG loader(LodePNG) and an obj-file loader(tinyobjloader). This makes the implementation more self contained.

The entire implementation can be found in the file src/main.cpp. There are no other files.

Awesome Video

Result

Building and Running

The project uses CMake, and all dependencies are included, so you should use CMake to generate a "Visual Studio Solution"/makefile, and then use that to compile the program.

The compiled program takes a single command line argument: the directory in which the Cryktek Sponza obj-file can be located. In order to run, you should download Crytek Sponza from here, unpack, and then run the program as

deferred_shading sponza/

where sponza/ is the unpacked directory.

Camera Controls

Camera controls for the demo: w and s to walk forward and backward. a and d to stride. o and l to fly. Hold in m to go faster. Use the mouse to rotate the camera.

More Awesome Images

Note that the project description data, including the texts, logos, images, and/or trademarks, for each open source project belongs to its rightful owner. If you wish to add or remove any projects, please contact us at [email protected].