Hacker News with Generative AI: Computer Graphics

Don't "optimize" conditional moves in shaders with mix()+step() (iquilezles.org)
In this article I want to correct a popular misconception that's been making the rounds in computer graphics aficionado circles for a long time now.
Generating Voronoi diagrams using Fortune's algorithm (redpenguin101.github.io)
Generating Voronoi Diagrams using Fortune’s Algorithm
Simulating water over terrain (lisyarus.github.io)
If you don't want a long an boring introduction, skip directly to the virtual pipes method description.I will get a little bit sad if you do this, though x)
How Are Images Stored? A Deep Dive into GIF, PNG, and JPEG (cefboud.com)
This post is me indulging in a rabbit hole. I somehow found myself thinking about images, probably after my recent exploration of some compression schemes. It’s common knowledge that images are either grayscale or RGB, that mixing red, green, and blue creates new colors. But there’s certainly more to storing an image than just aligning three-byte RGB values.
Bezier Curves and Picasso (jeremykun.com)
Some of my favorite of Pablo Picasso’s works are his line drawings. He did a number of them about animals: an owl, a camel, a butterfly, etc. This piece called “Dog” is on my wall:
Radiant Foam: Real-Time Differentiable Ray Tracing (radfoam.github.io)
Research on differentiable scene representations is consistently moving towards more efficient, real-time models.
Keep 'em (not) separated: detecting discontinuities in grid graphs (holm.dog)
In this post, I'm going to describe how I efficiently detected enclosed spaces in my browser game's map.
Building a Mesh Using Spherical Embedding (andrews.wiki)
When trying to build a 3D model of an object in the real world, the goal is most often to construct a connected mesh of triangles or quadrilaterals that represents that object's surface.
Rapidly rendering fractals on stupidly unsuitable machines (cowlark.com)
So a week or so ago I wrote a toy Mandelbrot generator for the BBC Micro, capable of using 2.6-bit fixed point arithmetic to draw a pretty terrible vaguely-Mandelbroid image in twelve seconds. That program is now obsolete: the very poorly named Bogomandel is capable of drawing pretty good actual Mandelbrot and Julia images, at higher precision, faster. Here it is.
Bilinear down/upsampling, aligning pixel grids, and that infamous GPU half pixel (2021) (bartwronski.com)
See this ugly pixel shift when upsampling a downsampled image? My post describes where it can come from and how to avoid those!
The Graphics Codex (graphicscodex.com)
Subpixel Zoo: A Catalog of Subpixel Geometry (geometrian.com)
An image pixel might be a little square with a flat color[1], but to actually present the image on a physical display (or related technology), we illuminate discrete 'subpixels'. The perceived color in an area is then the addition of the subpixels' emissions in that area.
Hunyuan3D 2.0 – High-Resolution 3D Assets Generation (github.com/Tencent)
We present Hunyuan3D 2.0, an advanced large-scale 3D synthesis system for generating high-resolution textured 3D assets.
Ask HN: State of the Art in Video Stabilization? (ycombinator.com)
I know of Hyperlapse Pro, which did some kind of 3D reconstruction of the scene to stabilize a video, Hyperlapse Mobile which just does frame selection (but still works very well), and LocalRF [0] which seems to use NeRFs to construct a smoothed video. But all are relatively old given the rapid rate of improvement in AI and computer graphics, and all are hard to run.
Rapidly rendering fractals on stupidly unsuitable machines (cowlark.com)
So a week or so ago I wrote a toy Mandelbrot generator for the BBC Micro, capable of using 2.6-bit fixed point arithmetic to draw a pretty terrible vaguely-Mandelbroid image in twelve seconds. That program is now obsolete: the very poorly named Bogomandel is capable of drawing pretty good actual Mandelbrot and Julia images, at higher precision, faster. Here it is.
CFRS[] Community Demos: Patterns drawn with turtle graphics with 6 commands (susam.github.io)
This document contains a collection of CFRS[] demos contributed by community members. CFRS[] is an extremely minimal drawing language that consists of only six simple commands: C, F, R, S, [, and ].
Dissecting "Tiny Clouds" shadertoy (2017) (demofox.org)
There is an amazing shadertoy called “Tiny Clouds” by stubbe (twitter: @Stubbesaurus) which flies you through nearly photorealistic clouds in only 10 lines of code / 280 characters (2 old sized tweets or 1 new larger sized tweet).
A ray caster tutorial in ASCII art (github.com/shikaan)
A ray caster in Typescript and HTML Canvas with annotated explanations in ASCII art.
How hard would it be to display the contents of an image file on the screen? (nereid.pl)
How hard would it be to display the contents of an image file on the screen? You just load the image pixels somehow, perhaps using a readily available library, and then display those pixels on the screen. Easy, right? Well, not quite, as it turns out.
Maze Generation: Recursive Division (2011) (jamisbuck.org)
A novel method for generating fractal-like mazes is presented, with sample code and an animation
Generating an infinite world with the Wave Function Collapse algorithm (marian42.de)
This article describes how I generate an infinite city using the Wave Function Collapse algorithm in a way that is fast, deterministic, parallelizable and reliable.
Physically Based Rendering: From Theory to Implementation (pbr-book.org)
Photorealistic computer graphics are ubiquitous in today's world, widely used in movies and video games as well as product design and architecture.
From ASCII to ASIC: Porting donut.c to a tiny slice of silicon (a1k0n.net)
For many years after coming up with donut.c, I wondered in the back of my mind if it could be simplified somehow, like maybe there was a way to raytrace a donut with a small chunk of code. In October 2023, I tweeted a dumb random epiphany where I figured out another way to do it which requires no memory, no sines or cosines, no square roots, no divisions, and technically, not even any multiplications.
B800 Text (shikadi.net)
B800 Text is a text-mode screen dump, and under x86 real mode (such as used by DOS) can be copied byte for byte into video memory starting at B800:0000, causing the data to appear on the screen when the video card is in text mode.
Nvidia Blackwell GeForce RTX 50 Series Opens New World of AI Computer Graphics (nvidia.com)
CES—NVIDIA today unveiled the most advanced consumer GPUs for gamers, creators and developers — the GeForce RTX™ 50 Series Desktop and Laptop GPUs.
How to draw an outline in a video game (ameye.dev)
Rendering outlines is a technique that is often used in games either for aesthetic reasons or for supporting gameplay by using it for highlights and selections around an object.
The Invention of Battlezone (2022) (ieee.org)
Three-dimensional displays first appeared on computer screens in the 1960s, and very large machines could manipulate those images in real time, but it was not until 1980 that a video-game player could maneuver at will through an imaginary landscape, wreaking havoc until brought to an untimely end by enemy tanks.
VoxelSpace: Terrain rendering algorithm in less than 20 lines of code (2020) (github.com/s-macke)
Let us go back to the year 1992. The CPUs were 1000 times slower than today and the acceleration via a GPU was unknown or unaffordable. 3D games were calculated exclusively on the CPU and the rendering engine rendered filled polygons with a single color.
Ray Tracing in One Weekend (raytracing.github.io)
I’ve taught many graphics classes over the years. Often I do them in ray tracing, because you are forced to write all the code, but you can still get cool images with no API. I decided to adapt my course notes into a how-to, to get you to a cool program as quickly as possible. It will not be a full-featured ray tracer, but it does have the indirect lighting which has made ray tracing a staple in movies.
Sub-pixel distance transform (2023) (acko.net)
This page includes diagrams in WebGPU, which has limited browser support. For the full experience, use Chrome on Windows or Mac, or a developer build on other platforms.