Top all-time · #4261
Ben Golus
Personal blog · bgolus.medium.comprogramminggames
Ben Golus's personal blog at bgolus.medium.com covers programming and games. Since 2021, 18 different Hacker News readers have linked it 18 times, most often “The Quest for Very Wide Outlines”. The last post was in 2023, but the archive is still widely read.
Too few sampled comments (10) to say how often HN recommends it.?
Why HN links it
HN readers link Ben Golus's Medium posts on real-time graphics: anti-aliasing, mipmapping and texture filtering, wide outlines, and rendering a sphere on a quad. Commenters point to them as useful references.
Summarised by Claude from a sample of 10 HN comments that link here. Each comment is marked recommending, critical or neutral (citing without judging); how this works.
Most-linked posts?
- The Quest for Very Wide Outlines6 people · 6 mentions · first linked 2021-02-04
- Sharper mipmapping using shader based supersampling (2019)4 people · 4 mentions · first linked 2022-01-03
- The best darn grid shader yet (2023)4 people · 4 mentions · first linked 2023-10-21
- Rendering a Sphere on a Quad3 people · 3 mentions · first linked 2021-01-10
What Hacker News says?
True, this is something I struggled with writing and ended up with just a small note commenting that this is not widely applicable. Will clarify more in coming posts. It's all incredibly context specific. The reason for this order, is that you can very much can use all these approaches (SSAA, FXAA, MSAA etc.) for rendering simpler shapes and HUDs. So going through them, where these approaches break down and when it…
Comment linking /rendering-a-sphere-on-a-quad-13c92025570c
on “AAA – Analytical Anti-Aliasing”Submitted The best darn grid shader yet (2023) as a story · 216 points
HN discussionI loved the article that this links to about 'Jump Flood Algorithm'!: https://bgolus.medium.com/the-quest-for-very-wide-outlines-b... So fascinating! Thanks for indirectly leading me to this! I love thinking about all the various approaches available at the pixel/texel/etc level! It's also another case where it's a very clever way of generating a type of SDF (Signed Distance Field) that is doing a lot of the heavy-l…
Comment linking /the-quest-for-very-wide-outlines-ba82ed442cd9
on “How to draw an outline in a video game”Submitted The Quest for Very Wide Outlines as a story · 151 points
HN discussionA lower FOV actually translates to better PPD. You can use a basic formula: sqrt(hRes^2+vRes^2)/FOV. So a 100 degree FOV would give you about 36PPD, but a 90 degree FOV would actually give you an even better 40PPD. 60PPD is Apple's target for a "Retina" display, although there's a strong argument that you need double that at least for line pairs. For computer work purposes, we really should only care about matching…
Comment linking /sharper-mipmapping-using-shader-based-supersampling-ed7aadb47bec
on “Show HN: Simula One – Portable Linux VR Computer”Submitted Rendering a Sphere on a Quad as a story · 78 points
HN discussionThere's a really good blog post about the engineering of mipmaps from the perspective of mipmapping messing up their VR game's text legibility here: https://bgolus.medium.com/sharper-mipmapping-using-shader-ba... (May have been featured on HN recently, I can't remember how I got there). Often mipmaps are pretty much automatic from the player's perspective, it's often kind of baked in by the developers when processin…
Comment linking /sharper-mipmapping-using-shader-based-supersampling-ed7aadb47bec
on “Bevy game engine 0.6”Submitted Sharper mipmapping using shader based supersampling (2019) as a story · 72 points
HN discussionReminds me of this article on a similar approach: https://bgolus.medium.com/rendering-a-sphere-on-a-quad-13c92...
Comment linking /rendering-a-sphere-on-a-quad-13c92025570c
on “Sphere Rendering: Flat Planets”Submitted Darn Grid Shader (Yet). For as long as I've been writing as a story · 1 points
HN discussionThe floor desperately needs anisotropic texture filtering. Hopefully should be easy to turn on. Better yet, check this article and implement some really high quality texture filtering: https://bgolus.medium.com/sharper-mipmapping-using-shader-ba...
Comment linking /sharper-mipmapping-using-shader-based-supersampling-ed7aadb47bec
on “In-browser retro-futuristic tank game, open source”Submitted The Quest for Wide Outlines: An Exploration of GPU Silhouette Rendering as a story · 1 points
HN discussionhttps://bgolus.medium.com/the-quest-for-very-wide-outlines-b... FTW
Comment linking /the-quest-for-very-wide-outlines-ba82ed442cd9
on “Godot Shaders: View and Share Shaders for Godot”Submitted The Best Darn Grid Shader (Yet) as a story · 1 points
HN discussionhttps://bgolus.medium.com/the-quest-for-very-wide-outlines-b... mentions this trick, and provides an alternative approach if you want uniformly thick outlines in screen space rather than geometry space. Also geometry-based and screen-aside outlines generate different results when an object (like a curved roof) partially occludes itself.
Comment linking /the-quest-for-very-wide-outlines-ba82ed442cd9
on “Townscaper’s Rendering Style in WebGL”Submitted The Quest for Wide Outlines (2020) as a story · 1 points
HN discussionThis is one of those things that feels like a broken/half-assed/oversimplified implementation got completely proliferated into the world a long time ago and it took several years for the right person to do a full-depth mathematical analysis to reveal what we should've been doing all along. Similar to antialiasing and sharpening, texture filtering, color spaces and gamma correction, etc. It reminded me of this articl…
Comment linking /the-best-darn-grid-shader-yet-727f9278b9d8
on “Bilinear interpolation on a quadrilateral using Barycentric coordinates”SV_Depth disables early z culling for that draw. But doesn't disable early z culling for subsequent draws. It does disable some z buffer compression that some older / mobile GPUs implement, but that's less of an issue for modern GPUs. As for disabling early Z culling when drawing the impostor, the section titled "Fragmented Depth" covers this problem, and the solution. https://bgolus.medium.com/rendering-a-sphere-on…
Comment linking /rendering-a-sphere-on-a-quad-13c92025570c
on “Rendering a Sphere on a Quad”