Back to rankings

lettier/3d-game-shaders-for-beginners

C++lettier.github.io/3d-game-shaders-for-beginners/index.html

🎮 A step-by-step guide to implementing SSAO, depth of field, lighting, normal mapping, and more for your 3D game.

shaders3dgraphicspanda3dgame-developmentglslglsl-shadersgraphics-programming3d-graphicshlslunitygodot
Star Growth
Stars
19.8k
Forks
1.5k
Weekly Growth
Issues
17
5k10k15k
May 2019Sep 2021Feb 2024Jul 2026
README

3D Game Shaders For Beginners

3D Game Shaders For Beginners

Interested in adding textures, lighting, shadows, normal maps, glowing objects, ambient occlusion, reflections, refractions, and more to your 3D game? Great! Below is a collection of shading techniques that will take your game visuals to new heights. I've explained each technique in such a way that you can take what you learn here and apply/port it to whatever stack you use—be it Godot, Unity, Unreal, or something else. For the glue in between the shaders, I've chosen the fabulous Panda3D game engine and the OpenGL Shading Language (GLSL). So if that is your stack, then you'll also get the benefit of learning how to use these shading techniques with Panda3D and OpenGL specifically.

Table Of Contents

License

The included license applies only to the software portion of 3D Game Shaders For Beginners— specifically the .cxx, .vert, and .frag source code files. No other portion of 3D Game Shaders For Beginners has been licensed for use.

Attributions

(C) 2019 David Lettier
lettier.com

Related repositories
ssloy/tinyrenderer

A brief computer graphics / rendering course

C++Otheropenglc-plus-plus
haqr.eu/tinyrenderer/
23.9k2.3k
terkelg/awesome-creative-coding

Creative Coding: Generative Art, Data visualization, Interaction Design, Resources.

HTMLawesomecreative-coding
15.1k964
EmbarkStudios/rust-gpu

🐉 Making Rust a first-class language and ecosystem for GPU shaders 🚧

Rustcrates.ioApache License 2.0rustshaders
shader.rs
7.6k248
patriciogonzalezvivo/thebookofshaders

Step-by-step guide through the abstract and complex universe of Fragment Shaders.

GLSLOthershadersshader
thebookofshaders.com
7k752
michidk/Unity-Script-Collection

A maintained collection of useful & free unity scripts / library's / plugins and extensions

GNU General Public License v3.0unity-scriptsunity
michidk.github.io/Unity-Script-Collection/
6.3k652
ConfettiFX/The-Forge

The Forge Cross-Platform Framework PC Windows, Steamdeck (native), Ray Tracing, macOS / iOS, Android, XBOX, PS4, PS5, Switch, Quest 2

C++Apache License 2.0directx12vulkan
5.6k570
shader-slang/slang

Making it easier to work with shaders

C++Othershadershlsl
shader-slang.com
5.4k473
ssloy/tinyraytracer

A brief computer graphics / rendering course

C++c-plus-plusgraphics
github.com/ssloy/tinyraytracer/wiki
5.3k351
jagenjo/webglstudio.js

A full open source 3D graphics editor in the browser, with scene editor, coding pad, graph editor, virtual file system, and many features more.

JavaScriptnpmMIT License3dwebgl
5.3k621
patriciogonzalezvivo/glslViewer

Console-based GLSL Sandbox for 2D/3D shaders

C++BSD 3-Clause "New" or "Revised" Licenseshadersfragment-shader
patriciogonzalezvivo.github.io/glslViewer/
5.3k371
crosire/reshade

A generic post-processing injector for games and video software.

C++BSD 3-Clause "New" or "Revised" Licensepost-processinginjector
reshade.me
5.3k678
gfxfundamentals/webgl-fundamentals

WebGL lessons that start with the basics

HTMLOtherwebglglsl
webglfundamentals.org
5k688