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 |
---|---|---|
![]() |
1 | Coverage of the basics of shaders in Unity and Unreal |
![]() |
1 | Gentle step-by-step guide through the abstract and complex universe of Fragment Shaders in GLSL |
![]() |
2 | Series covering many aspects of shader work in Unreal and Unity |
![]() |
2 | Series covering many general shader topics in Unity |
![]() |
2 | Common shader techniques and rendering concepts |
![]() |
2 | Common shader techniques and rendering concepts |
![]() |
3 | HLSL functions reference |
![]() |
4 | HLSL/GLSL Tutorials and articles by Inigo Quilez on computer graphics, fractals, demoscene, shaders and more |
![]() |
5 | A look at shader assembly code |
Rendering
Title/Link | Level | Description |
---|---|---|
![]() |
1 | Part one of this series is a great overview of the graphics pipeline |
![]() |
1 | Part 1 and 2 of Shader Quest are also a great overview of graphics basics |
![]() |
2 | Useful visual reference about spaces |
![]() |
2 | Interactive article explaining how cameras and lenses work. |
![]() |
2 | Review of rendering from Simon Schriebt |
![]() |
3 | Overview of what happens to a triangle behind the scenes |
![]() |
3 | GPU Performance for Game Artists |
![]() |
3 | Excellent introduction to the GPU |
![]() |
3 | Excellent Book on real-time rendering details and techniques |
![]() |
3 | All-around resource for rendering and math |
Math
Title/Link | Level | Description |
---|---|---|
![]() |
1 | Overview of math basics with some practical examples |
![]() |
2 | Some important math commonly used in game and graphics programming |
![]() |
2 | Interactive Math Tutorials |
![]() |
3 | Web version of the book, 3D Math Primer for Graphics and Game Development |
Application
Title/Link | Level | Description |
---|---|---|
![]() |
1 | Harry Alisvakis takes on various shader challenges |
![]() |
1 | Harry Alisvakis curates shaders and vfx from Twitter |
![]() |
1 | Ben Cloward demos common shader techniques |
![]() |
2 | Overview of many of the challenges faced in video game art and many of the tools that are used |
![]() |
2 | Unreal Engine 4 Shader articles by Ryan Brucks |
![]() |
2 | Unreal Engine 4 Shader articles by Tom Looman |
Additional Learning
Rendering Blogs
Title/Link | Description |
---|---|
![]() |
Weekly Descriptions to Graphics Programming and Shader Info |
![]() |
Rendering and Frame Breakdowns |
![]() |
Rendering and Frame Breakdowns |
![]() |
Rendering articles |
![]() |
Rendering articles |
![]() |
Rendering articles |
![]() |
Rendering and Graphics Code Articles |
![]() |
Rendering and Graphics Code Articles |
Art/Articles/Forums
Title/Link | Link |
---|---|
![]() |
Real-time, VFX, and Digital Art Articles |
![]() |
User-submitted Tech Art Work |
![]() |
Game Industry and Technology Articles |
![]() |
Technology Articles |
![]() |
Technical Art Forum |
![]() |
Polycount Thread for Tech Artists |
Online Graphics Tools
Title/Link | Link |
---|---|
![]() |
Tool for graphing using common shader function - useful for visualizing your data |
![]() |
Hub for a plethora of open-code GLSL Fragment Shaders |
![]() |
Tool for picking colors that fit in a chosen kind of palette |
![]() |
Various Math Calculators (e.g. dot product calculator, Pascal’s Triangle calculator, etc.) |