Overview
Graphics
I call this hat “graphics” because though it’s often referred to as shaders or lookdev, it’s about more than just that. A tech artist focused on graphics should also know how rendering works in order to help artists understand how to achieve the look they want and how to optimize their work. Understanding the fundamentals of how assets become pixels on the screen is also important for assessing and improving performance, as well as interfacing with engineers on current and future graphics features of the engine.
Shaders
Shaders are programs that receive input about something like geometry and output data about how to render it. There are a few different shaders, but the ones that receive the most attention are the vertex shader and the pixel shader. The vertex shader typically handles data about vertex position, normal, and more, and passes along this data. Once the data reaches the pixel shader, any reasonable number of operations can be executed, but most often in Physically Based Rendering (PBR), the shaders looks at textures to describe the surface of the object.
Performance
In order to be real-time, games have to process and render data quickly. Profiling is measuring performance using tools that assess what’s being processed or rendered, what commands were used, and how long it took.
How to use this page
The resources below are categorized and ordered with a level I’ve assigned. The category is based upon what the information primarily deals with, but there is certainly topic crossover. If you’re just getting started, I recommend becoming comfortable with the concepts at each level before progressing to the next (e.g. start with level 1 of each topic, then come back and dive into the next level). That said, feel free to explore what you find useful and/or interesting.
Learning
Shaders
Title/Link | Level | Description |
---|---|---|
ShaderQuest | 1 | Coverage of the basics of shaders in Unity and Unreal |
The Book of Shaders | 1 | Gentle step-by-step guide through the abstract and complex universe of Fragment Shaders in GLSL |
Shader Graph Basics | 2 | Series covering many aspects of shader work in Unreal and Unity |
Shaders for Game Artists | 2 | Series covering many general shader topics in Unity |
ShaderQuest | 2 | Common shader techniques and rendering concepts |
Unreal Material Documentation | 2 | Common shader techniques and rendering concepts |
HLSL Documentation | 3 | HLSL functions reference |
Inigo Quilez | 4 | HLSL/GLSL Tutorials and articles by Inigo Quilez on computer graphics, fractals, demoscene, shaders and more |
Shader Assembly | 5 | A look at shader assembly code |
Rendering
Title/Link | Level | Description |
---|---|---|
Shader Graph Basics | 1 | Part one of this series is a great overview of the graphics pipeline |
ShaderQuest | 1 | Part 1 and 2 of Shader Quest are also a great overview of graphics basics |
Reference Frames | 2 | Useful visual reference about spaces |
Cameras and Lenses | 2 | Interactive article explaining how cameras and lenses work. |
Render Hell | 2 | Review of rendering from Simon Schriebt |
Life of a Triangle | 3 | Overview of what happens to a triangle behind the scenes |
Fragment Buffer | 3 | GPU Performance for Game Artists |
Gentle Introduction to the GPU | 3 | Excellent introduction to the GPU |
Real-Time Rendering | 3 | Excellent Book on real-time rendering details and techniques |
Scratch A Pixel | 3 | All-around resource for rendering and math |
Math
Title/Link | Level | Description |
---|---|---|
Math for Game Devs | 1 | Overview of math basics with some practical examples |
Linear algebra for game dev | 2 | Some important math commonly used in game and graphics programming |
Immersive Linear Algebra | 2 | Interactive Math Tutorials |
GameMath.com | 3 | Web version of the book, 3D Math Primer for Graphics and Game Development |
Application
Title/Link | Level | Description |
---|---|---|
Shader Tutorial Archive | 1 | Harry Alisvakis takes on various shader challenges |
Technically Art | 1 | Harry Alisvakis curates shaders and vfx from Twitter |
UE4 and Unity Shader Videos | 1 | Ben Cloward demos common shader techniques |
Video Game Graphics Challenges | 2 | Overview of many of the challenges faced in video game art and many of the tools that are used |
Shader Bits | 2 | Unreal Engine 4 Shader articles by Ryan Brucks |
Tom Looman | 2 | Unreal Engine 4 Shader articles by Tom Looman |
Additional Learning
Rendering Blogs
Title/Link | Description |
---|---|
Jendrik Illner | Weekly Descriptions to Graphics Programming and Shader Info |
Adrian Courreges | Rendering and Frame Breakdowns |
astralcode | Rendering and Frame Breakdowns |
jpg | Rendering articles |
Bart Wronski | Rendering articles |
C0DE51 | Rendering articles |
demofox | Rendering and Graphics Code Articles |
Interplay of Light | Rendering and Graphics Code Articles |
Art/Articles/Forums
Title/Link | Link |
---|---|
80Lvl | Real-time, VFX, and Digital Art Articles |
ArtStation TechArt | User-submitted Tech Art Work |
GameDeveloper | Game Industry and Technology Articles |
Lesterbanks | Technology Articles |
Tech-Artists.Org | Technical Art Forum |
Polycount Tech Art WAYWO | Polycount Thread for Tech Artists |
Online Graphics Tools
Title/Link | Link |
---|---|
GraphToy | Tool for graphing using common shader function - useful for visualizing your data |
ShaderToy | Hub for a plethora of open-code GLSL Fragment Shaders |
Paletton Color Picker | Tool for picking colors that fit in a chosen kind of palette |
Omni Calculator | Various Math Calculators (e.g. dot product calculator, Pascal’s Triangle calculator, etc.) |