Graphics & images
Pixels and vectors, colour spaces, formats and compression, resolution and 3D graphics basics.
Lighting in 3D: Lambert, Phong and PBR materials explained
How light on a 3D surface is calculated: Lambertian diffuse reflection, Phong and Blinn-Phong highlights, interpolation and physically based materials.
3D models and meshes: vertices, polygons, normals and topology
How a 3D model is built: vertices, edges and faces, triangles and quads, normals and smoothing, clean topology and formats such as OBJ, STL and glTF.
3D transformations: matrices, homogeneous coordinates, projection
How a 3D point reaches the screen: translation, rotation and scale with 4×4 matrices, homogeneous coordinates and the model, view and projection matrices.
Alpha channel and compositing: premultiplied alpha and blend modes
How transparency works in images: the alpha channel, the over operator, premultiplied alpha, dark fringes around cut-outs and how layer blend modes work.
Bit depth, banding and dithering: 8, 10 and 16 bits explained
How many levels a smooth gradient needs: bit depth, banding, dithering, floating point, and when it pays to edit at 16 bits per channel instead of 8 bits.
CMYK and printing: subtractive color, rich black and conversion
How printing reproduces colors with cyan, magenta, yellow and black: subtractive mixing, halftoning, ink limits, rich black and common conversion mistakes.
Color spaces: sRGB, Adobe RGB, Display P3 and Rec. 2020 compared
What sets sRGB, Adobe RGB, Display P3, Rec. 2020 and ProPhoto apart: gamut, white point, transfer curves and which space to choose for each kind of work.
Convolution filters: blur, sharpening and edges with kernels
How image filters work: convolution with a kernel, Gaussian blur, the unsharp mask, edge detection and the median filter, explained with simple examples.
Gamma correction and linear light: why gradients come out dark
What gamma is, why sRGB values are not proportional to light, and how to work in linear space to get correct gradients, blending and image resizing.
The rasterization pipeline: how the GPU draws a 3D scene
The stages through which a graphics card turns triangles into pixels: vertex shader, clipping, rasterization, fragment shader, z-buffer and blending.
Histogram, levels and curves: reading and fixing a photo's tones
How to read a photo's histogram, spot blown highlights and blocked shadows, and use levels and curves to correct exposure and contrast in a measured way.
How JPEG works: DCT, quantisation and compression artifacts
A photo's journey through a JPEG encoder: YCbCr, chroma subsampling, 8×8 blocks, DCT, quantisation and entropy coding, and where the artifacts come from.
HSL, HSV, Lab and OKLCH: color models for picking and comparing
Hue, saturation and lightness: how HSL and HSV work, why they are not perceptual, and when you need CIE Lab, Delta E and OKLCH for balanced color palettes.
ICC profiles and color management: moving color between devices
How color management works: ICC profiles, the connection space, rendering intents, monitor calibration and soft proofing before a job goes to press.
Image compression: lossless and lossy approaches compared
How image file size is reduced: redundancy, RLE, Huffman coding, prediction, lossy compression and why some images compress so poorly whatever you try.
Interpolation and resampling: bilinear, bicubic and Lanczos
What happens when you resize an image: nearest neighbour, bilinear, bicubic, Lanczos, aliasing and moiré, and which filter to choose in each case.
Inside an SVG file: viewBox, paths and how to clean it up
An SVG file is readable text: its structure, the viewBox, path commands, groups and transforms, plus the steps to clean up an SVG exported from an editor.
Inside the PNG format: chunks, filters, DEFLATE and transparency
How a PNG file is built: signature, chunks, color types, row filters, DEFLATE compression, interlacing and the methods for producing much lighter files.
Raster images: what the pixels of a digital photo really are
A raster image is a grid of numbers: what a pixel contains, how to work out an image's size in memory, and why pixels are not really little squares at all.
RAW files and the Bayer filter: from sensor to finished photo
What a RAW file really contains: the Bayer filter, demosaicing, linear 12-14 bit data, white balance and its advantages over shooting in JPEG mode.
Ray tracing and path tracing: simulating the path of light
How ray tracing and path tracing work: primary and shadow rays, reflections, the rendering equation, Monte Carlo sampling, noise and denoising methods.
Resolution, DPI and PPI: how many pixels you really need to print
What DPI and PPI really mean, why «72 dpi for the web» means nothing, and how to work out how many pixels you need to print an image at a given size.
The RGB model and additive color: how a screen creates colors
Why three lights are enough to reproduce almost any color: additive mixing, metamerism, hexadecimal notation and the limits of the RGB model on screens.
Textures and UV mapping: coordinates, mipmaps, anisotropic filtering
How a 2D image is applied to a 3D model: UV coordinates, seams, texel density, mipmaps, and bilinear, trilinear and anisotropic texture filtering.
Vector graphics and Bézier curves: drawing with mathematics
Paths, anchor points, handles and Bézier curves: how vector graphics work and why a vector logo stays crisp at any size, from business card to poster.