Skip to content
HomeVideosBooksBlogs
AllTop postsTopics
Podcasts
HistoryListsWatch laterLiked videosFollowing

The videos, books, blogs and podcasts Hacker News keeps recommending, all in one place.

VideosBooksBlogsPodcastsAboutPrivacySettings

Data from Hacker News, HackerTube, HackerBooks, HackerBlogs and Open Library. Credits · Not affiliated with Y Combinator.

HomeVideosBooksBlogsPodcasts
Ctrl K
    C

    Christoph Peters

    momentsingraphics.de · Personal blog · on HN since 2021

    Christoph Peters writes about computer graphics, covering blue noise, spectral rendering, radiometry, Gaussian splatting and ray computation.

    Visit blogRSSHN submissions
    ProgrammingMath
    What HN says

    HN commenters link his blue noise page and free textures for dithering, plus his cubic roots page, and recommend the blog.

    Stats for nerds
    15HN people shared it
    21linked in comments
    382story points
    Oct 2025last shared
    2022people per year2025

    Top posts on HN

    1. 1
      Goodbye C++, Hello C
      1 person · 243 points · first shared 2021 · 215 comments on HN
    2. 2
      Spectral rendering, part 2: Real-time rendering
      2 people · 60 points · first shared 2025 · 18 comments on HN
    3. 3
      Splatshop: Efficiently Editing Large Gaussian Splat Models
      1 person · 34 points · first shared 2025 · 2 comments on HN
    4. 4
      Spectral rendering, part 3: Spectral vs. RGB
      1 person · 17 points · first shared 2025 · 2 comments on HN
    5. 5
      Blue noise – white noise alternative for graphics (2016)
      8 people · 5 points · first shared 2023 · 1 comments on HN
    6. 6
      Gaussian Point Splatting
      1 person · 5 points · first shared 2026 · Discussion on HN
    7. 7
      Computing Camera Rays
      1 person · 4 points · first shared 2026 · Discussion on HN
    8. 8
      Radiometry, part 1: I got it backwards
      1 person · 2 points · first shared 2025 · Discussion on HN
    9. 9
      Path Tracing Workshop
      1 person · 2 points · first shared 2022 · Discussion on HN
    10. 10
      Radiometry, part 2: Spectra and photometry
      1 person · 2 points · first shared 2025 · Discussion on HN

    What HN people wrote when they linked it

    • kragenOct 2025

      The major dithering algorithm that's missing from this list is blue-noise dithering. This is very similar to "ordered dithering"; you can think of ordered dithering as either thresholding the pixel values with a different threshold value on each pixel, following a regular pattern, or as adding a different offset value to each pixel, following a regular pattern, and thresholding the result with a constant threshold. Blue-noise dithering replaces the regular pattern with a random pattern that's been high-pass filtered. This has all the advantages of ordered dithering, in particular avoiding "crawling" patterns during animation, but avoids the repetitive patterns and line artifacts it introduces.

      https://nelari.us/post/quick_and_dirty_dithering/ is the best quick introduction to the technique that I've seen. There's a more comprehensive introduction at https://momentsingraphics.de/BlueNoise.html. https://bartwronski.com/2016/10/30/dithering-part-three-real-world-2d-quantization-dithering/ also demonstrates it, comparing it to other dithering algorithms.

      Ulichney introduced blue noise to dithering in 01988 as a refinement of "white-noise dithering", also known as "random dithering", where you just add white noise before thresholding: https://cv.ulichney.com/papers/1988-blue-noise.pdf. Ulichney's paper is also a pretty comprehensive overview of dithering algorithms at the time, and he also makes some interesting observations about high-pass prefiltering ("sharpening", for…

    • CyLithAug 2025

      The library only solves up to cubic equations, and the comments have a link to the following page: https://momentsingraphics.de/CubicRoots.html

      For general polynomials, it matters a great deal in what basis it is represented. The typical monomial basis is usually not the best from a numerical standpoint. I am aware of some modern methods such as this: https://arxiv.org/pdf/1611.02435

      For polynomials expressed in e.g. a Bernstein basis, there are often much faster and stable tailored methods working solving for the eigenvalues of a companion matrix of a different form.

    • momojoOct 2025

      One of my favorite modern dithering methods is blue-noise dithering (see Figure 3b): https://developer.nvidia.com/blog/rendering-in-real-time-with-spatiotemporal-blue-noise-textures-part-2/#denoising_blue_noise

      The only catch is that generating blue noise is a roughly O(n^2) algorithm. Its not feasible to be generated on the fly, so in practice you just pregenerate a bunch of blue-noise textures and tile them.

      If you google 'pregenerated blue noise' you find plenty of them: https://momentsingraphics.de/BlueNoise.html

    • sprashJan 2023

      This is interesting if you are after retro effects. State of the art dithering however works with blue noise threshold textures[1] because we have plenty of memory available these days. Here is a nice comparison of all kinds of dithering algorithms that also shows the clear superiority of blue noise dithering: [2].

      1.: http://momentsingraphics.de/BlueNoise.html

      2.: https://surma.dev/things/ditherpunk/

    • pasteldreamOct 2025

      Agreed - blue noise dithering is very commonly used in computer graphics because it’s cheap and great, but it might be worth mentioning that it’s a kind of ordered dithering, which is mentioned in the article.

      Christoph Peters’s free blue noise textures are the most commonly used, for people who can’t be bothered running void and cluster themselves: https://momentsingraphics.de/BlueNoise.html

    • rikrootsMar 2025

      It's an array of pre-calculated values that I extracted from an image donated to the Public Domain by Christoph Peters (the link is an interesting read about bluenoise - recommend!) - http://momentsingraphics.de/BlueNoise.html

      No textures or masks, just brute computing on the CPU.

    Related

    Surmasurma.dev67 people

    Ditherpunk: The article I wish I had about monochrome image dithering

    Surma
    Personal · last shared 2025
    Decompositiondecomposition.al20 people

    A CAP tradeoff in the wild

    Decomposition
    Personal · last shared 2026
    Bart Wronskibartwronski.com36 people

    Why are video games graphics challenging? Productionizing rendering algorithms

    Bart Wronski
    Personal · last shared 2025
    Jamie Wongjamie-wong.com67 people

    Color: From Hex codes to Eyeballs

    Jamie Wong
    Personal · last shared 2026
    Interplay of Lightinterplayoflight.wordpress.com17 people

    How Unreal Renders a Frame

    Interplay of Light
    Personal · last shared 2026
    Hugo Eliasfreespace.virgin.net17 people

    Perlin Noise

    Hugo Elias
    Personal · last shared 2018
    Clément Bœschblog.pkh.me39 people

    Investigating why Steam started picking a random font

    Clément Bœsch
    Personal · last shared 2025
    Aras Pranckevičiusaras-p.info79 people

    I accidentally Blender VSE

    Aras Pranckevičius
    Personal · last shared 2026