3d-game-shaders-for-beginners README

The project's README from github.com/lettier/3d-game-shaders-for-beginners. As one markdown file: README.md.

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

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

Searching Database…

What is this?A step-by-step guide to implementing 3D game shading techniques such as SSAO, depth of field, bloom, normal mapping, fog, and screen space reflection/refraction for your own 3D game.
Is this a tutorial or a ready-made shader library?It is a written tutorial with accompanying demo source code (.cxx, .vert, .frag), not a plug-and-play engine or library you import into your project.
How do I try the demo shaders myself?The guide walks through Setup, Building The Demo, and Running The Demo sections using the Panda3D engine and GLSL to compile and run the sample scene.
Do I need Panda3D to use these shaders?The demo code requires the Panda3D engine and GLSL to run as-is, but the written explanations are written so you can port each technique to Godot, Unity, Unreal, or any other engine.
Can I freely reuse the code in my own game?Only the .cxx, .vert, and .frag source files carry the included license; no other part of the project (text, images, font) is licensed for reuse.
Who is this guide meant for?Beginners who want to learn practical shading techniques for 3D games, explained conceptually so the knowledge transfers across engines.
What shading techniques does it cover?It covers texturing, Blinn-Phong lighting, Fresnel factor, rim lighting, cel shading, normal mapping, deferred rendering, fog, blur, bloom, SSAO, motion blur, chromatic aberration, screen space reflection/refraction, foam, flow mapping, outlining, depth of field, posterization, pixelization, sharpen, dilation, film grain, LUTs, and gamma correction.
Why use Panda3D instead of a big engine like Unity or Unreal?Panda3D and GLSL were chosen simply as a lightweight, open glue layer for demonstrating the shaders clearly; the concepts themselves are engine-agnostic and meant to be ported elsewhere.
Is any prior graphics programming experience assumed?The guide is written for beginners, explaining each technique conceptually before showing the GLSL implementation, so prior shader experience isn't required.
Creator
lettier
Size
34 MB
Stars
20K
Updated
CommitAug 29
Age
7y
Commits · 90 Days