Posts tagged: graphics
Vulkan Memory Types 07 Sep 2025
Picking up the discussion on memory and caching: how does this all interact with an external processor such as a GPU? GPUs are an intersting addition to this discussion because their operation is very memory-bound and very very multi-core. They also run alongside CPUs. This makes things ...complicated.
Read more...Rendering an Infinite Grid 01 Sep 2025
I've been working on a little VR project for a while, and one of the first things I needed at the start was something to stand on. So I made an infinite grid to be my floor. Here's how it works.
Read more...Camera Math 07 Aug 2025
Nothing special here, just stashing away some math I don't enjoy having to look up again and again.
Read more...Dynamic Descriptor Pools 01 Aug 2025
A couple days ago I wrote about my dynamic_buffer
helper which I use to push things like uniform blocks to the GPU without worrying too much about preallocating the exact amount of memory I need at application startup. Here's another helper which I use to make allocating descriptor sets easy.
Dynamic Graphics Buffers 30 Jul 2025
Yesterday, I described a ring buffer allocator suitable for pushing data to a GPU. Today, I'm using that allocator to manage a dynamic buffer suitable for sending things like blocks of uniforms up to the GPU which automatically grows when necessary.
Read more...WebGL Index Validation 19 Sep 2013
If you've ever browsed through the WebGL spec, you've likely seen section 6: Differences Between WebGL and OpenGL ES 2.0. Right at the top of that section, we find section 6.1: Buffer Object Binding. That section reads as follows:
Read more...Bicubic Filtering in Fewer Taps 23 Oct 2012
This post is based on the technique described in GPU Gems 2, chapter 20, Fast Third-Order Texture Filtering. While that's certainly a good read, I found that the authors skipped over a lot of detail and optimized a little prematurely, making the result rather difficult to parse. If you've read and understood their paper, then this isn't going to be news to you.
Read more...Windowed Fullscreen 29 Apr 2012
Windowed (fake) fullscreen is probably my favorite graphics option ever when it comes to PC games. It lets me have my nice fullscreen game, but doesn't lock me out of using my other monitor, and any programs running behind the game are an instant ALT+TAB away. Games that can go from fully windowed to fake-fullscreened in an instant are also super cool, and not all that difficult to write. So how does one implement such a thing?
Read more...Deferred Shading Tricks 21 Feb 2012
Deferred shading is a useful technique available on modern GPUs that allows one to decouple scene and lighting complexity. I'm not really writing a for-beginners article here. This is aimed at people who've got a basic engine set up and want to tune it.
Read more...hqNx 07 Jan 2012
This is a quick demo project I did a few years ago for fun. It's an implementation of the hq2x, hq3x, and hq4x image upscaling algorithms on the GPU.
Read more...Texture vs. Polygon: Round 1 13 Oct 2009
I recently critiqued some work-in-progress game art for an (I guess) art student, and it struck me that it can be fairly hard for a newcomer to judge where to put their details. Some details don't work very well as geometry. Others don't work well in a texture. Knowing where to put a given mark or line is the difference between effectively using your polygon budget to produce mind-blowingly good scenes and a mess of blurry textures and too-perfect railings.
Read more...