Feb 8 · 21 min read · What We're Learning Color is one of the most powerful tools in your graphics arsenal. So far, we've worked with basic color operations - sampling textures, mixing colors, and applying simple lighting. But there's a whole world of advanced color manip...
Join discussion
Feb 2 · 20 min read · What We're Learning So far in this series, every fragment we've processed has been drawn to the screen. We've colored them, textured them, and lit them - but we've always drawn them. What if you don't want to draw certain fragments at all? What if yo...
Join discussion
Jan 25 · 23 min read · What We're Learning So far in this series, we've worked with mathematical functions like sine waves, smooth gradients, and geometric patterns. These are powerful, but they all share a common limitation: they are too perfect. Nature isn't perfectly re...
Join discussion
Jan 18 · 24 min read · What We're Learning In previous articles, we created patterns using explicit boundaries: "Is this pixel inside the square?" But there is a more powerful way to define shapes in computer graphics: "How far is this pixel from the edge?" This is the wor...
Join discussion
Jan 10 · 25 min read · What We're Learning In the real world, colors are rarely static. The sky shifts from deep azure to pale cyan; a metal pipe has a bright highlight that fades into shadow; a sunset paints the clouds in bands of orange, pink, and purple. To replicate th...
Join discussion
Jan 7 · 3 min read · Long story short, I’m working on a shader for an indexed indirect draw in Unreal. And I had a VS-To-PS struct here as simple as: struct VertexOutput { float4 Position : SV_POSITION; } And this works just perfect fine. But things get buggy once I a...
Join discussion