About:

The author of the website 30fps.net, focusing on computer graphics and programming.

Website:

Specializations:

Outgoing Links:

nyanpasu64
Subscribe to RSS:
The post discusses the conversion of gamma-corrected sRGB colors to greyscale, highlighting the common method of using weighted sums based on Rec. 709 standards. It points out the subtle inaccuracies in this approach, particularly...
The post discusses color quantization algorithms, focusing on the use of the HyAB color distance formula in CIELAB space for pixel mapping in image compression. It explains the limitations of traditional methods like Euclidean dis...
The blog post discusses color quantization, focusing on the process of compressing images into a color palette and index image. It explains the median cut algorithm for palette design, its limitations, and the potential benefits o...
The blog post discusses the innovative palette trick used in the 1993 video game Doom to create a 'light diminishing' effect, where colors become darker with distance. It explains the technical challenges of working within a 256-c...
This article explores how to map pixels from an image to a color palette using different color spaces, particularly focusing on the CAM16-UCS model compared to simpler methods like Euclidean distance in sRGB. It discusses the limi...
The post discusses the concept of the first principal component in the context of color quantization and texture compression in computer graphics. It explains how this concept can be applied to RGB color spaces and introduces meth...
The article discusses the development of a Nintendo 64 demo for Revision 2025, focusing on lighting techniques such as baked lighting with normal mapping and real-time specular shading. The author also explores the challenges and ...
The text discusses the final installment in the 'Demystifying the PVS' series, focusing on portal flow and visibility calculations. It explains the process of recursive clipping, leaf visibility through portals, and the full imple...
The text discusses the concept of fine visibility via clipping in the context of the Quake game engine. It explains the process of portal clipping in 2D and 3D, and the use of separating planes to determine visibility. The author ...
The text explains the process of computing coarse base visibility in the context of portals and Quake. It describes how to determine which leaves are theoretically visible from any given portal and how to compute coarse visibility...

0Portals and Quake

2025-02-10

The text discusses the concept of portals and Quake, explaining how Quake's precomputed visibility works and how it helps reduce overdraw in 3D games. It also delves into the process of portal culling, occlusion culling, and the P...
The text discusses a method to scale pixel art games, focusing on the use of horizontal blur to replicate the look of old CRT displays. The author explains the proposed method and provides examples to support it.
The text explains how to present MS-DOS screenshots on modern displays with square pixels. It discusses the vertical stretching of images, resizing, scaling with different filters, and how to do it in practice. It also covers how ...
The text discusses the VQA video format used by Westwood Studios in the 90s, focusing on its compression techniques and how it was optimized for 90s CPUs, slow CD-ROM drives, and cheap graphics chips. It explains the vector quanti...
The text discusses the efficient way to split a NumPy array into tiles for image processing, providing a code example and comparing the speed with scikit-image's function. It also mentions the possibility of creating vectors of th...
The text discusses classic 3D video game shadow techniques, exploring various methods of creating shadows in video games, from 2D shadows to modern ray-traced shadows. It provides examples of different games and platforms that use...
The text discusses how to improve the perceived image quality of a raymarcher by applying small changes to the scene, including tone mapping, white saturation, color grading, glow, anti-aliasing, and dithering. It provides code sn...
The text discusses moving basis decomposition for images, including the process of reconstructing an image, optimizing the reconstruction, and undoing centering.
The text discusses the implementation of a color quantizer using a one-dimensional self-organizing map in the NeuralQuantizer tool. The author shares their excitement about encountering this classic machine learning model in a pra...
The text discusses the use of Principal Component Analysis (PCA) to compress RGB images into two channels, representing each pixel's RGB values as a combination of the top two principal directions. It also mentions the potential f...
The text discusses the problem of organizing a file format in C, and the repetitive code that comes with it. It proposes a solution of using a (object_id -> file_offset) mapping kept in a hash table to hide the bookkeeping. The so...
The text discusses the concept of sorting a sphere BVH with split planes to optimize hierarchical frustum culling. It explains the process of traversing a BVH to produce a list of visible objects and proposes sorting them in a fro...
The text discusses the author's experience in writing a software rasterizer for occlusion culling. It provides implementation details and tips for dealing with small resolutions and conservative rasterization. The author also reco...
The text explains how to extend a low bit depth color to a higher bit depth one using the Bit Extension Trick. It also discusses the process of going down from higher to lower bit depth and the implications for real-time rendering...