Computer Graphics & Programming with Pekka Väänänen - 30fps.net

https://30fps.net/ (RSS)
visit blog
Portals and Quake
9 Jan 2025 | original ↗

This is the first installment in the “Demystifying the PVS” series.

Coarse base visibility
9 Jan 2025 | original ↗

This is the second installment in the “Demystifying the PVS” series.

Fine visibility via clipping
9 Jan 2025 | original ↗

This is the third installment in the “Demystifying the PVS” series.

A simple way to scale pixel art games
26 Nov 2024 | original ↗

A little horizontal blur doesn’t hurt.

How to present MS-DOS screenshots
14 Nov 2024 | original ↗

MS-DOS games that ran at 320x200 screen resolution didn’t have square pixels. This means the image was vertically stretched by the cathode-ray tube to fit the 4:3 aspect ratio of the actual display screen. As a consequence, screenshots taken of such games must be scaled vertically to look right on modern displays with square pixels.

How Westwood VQA works
13 Nov 2024 | original ↗

In which I investigate a 30-year-old video format.

Efficiently split a NumPy array into tiles
6 Nov 2024 | original ↗

Pekka Väänänen | 30fps.net | November 7th, 2024.

Classic 3D videogame shadow techniques
24 Oct 2024 | original ↗

Towards the end of Wim Wenders’s excellent Perfect Days, the protagonist Hirayama is drinking beer under a bridge after he has seen a Businessman courting his crush. Suddenly the Businessman joins him under the bridge. As it turns out, things aren’t actually that simple but the point is their conversation takes them to some fundamental questions:

Shader post-processing in a hurry
5 Apr 2024 | original ↗

So you have written a cool raymarcher but for some reason it looks cheap. There are a few basic things you can always do to improve the perceived image quality: tone mapping, avoiding clipping color channels, color grading, adding glow, anti-aliasing and dithering.

Moving basis decomposition for images
15 Mar 2024 | original ↗
Color quantization with a self-organizing map
7 Mar 2024 | original ↗

Pekka Väänänen | 30fps.net | March 8th, 2024

PCA image color compression experiment
4 Mar 2024 | original ↗

Pekka Väänänen | 30fps.net | March 5th, 2024

Clean pointer serialization in C
20 Jan 2024 | original ↗

Let’s say you’re programming in C and need to serialize a data structure to a storage format on disk. The storage format is not a perfect 1:1 representation of your internal data but for example a custom 3D model format of your game engine.

Sort a sphere BVH with split planes
9 Jan 2024 | original ↗

Hierarchical frustum culling is quick to do with a bounding volume hierarchy (BVH). Possibly the simplest of such is the sphere BVH where each node is represented by a sphere that is large enough to hold all of its children’s bounding spheres:

Annoying details of a Z-buffer rasterizer
3 Jan 2024 | original ↗

I wrote a software rasterizer for occlusion culling and hit many small speed bumps along the way. Here I reveal what I’ve learned in the hope of you writing your own with more ease than I did.

Going up in color bit depth
7 Nov 2023 | original ↗

The simplest thing: how to extend a low bit depth color to a higher bit depth one? Well, there’s a trick.

Image vector quantization is just like creating a tilemap
29 Apr 2023 | original ↗

Pekka Väänänen | 30fps.net | April 30th, 2023

In-place filtering of an array
21 Mar 2023 | original ↗

Let’s say you have a bunch of 2D boxes and you want to find only ones that intersect some other box. For example to do collision detection in a game. If you’re in a hurry you can just write a loop and be done with it:

BSP Lessons
6 Mar 2023 | original ↗

Nobody talks about binary space partitioning (BSP) trees anymore but they used to be a big deal in computer graphics. Here are some BSP lessons I recently learned.

Full screen triangle optimization
26 Feb 2023 | original ↗

So here’s a well-known optimization trick that also tells you a bit about how GPUs work.

↑ These items are from RSS. Visit the blog itself at https://30fps.net/ to find everything else and to appreciate author's digital home.