Best of Graphics Programming2025

  1. 1
    Video
    Avatar of lowlevelgamedevLow Level Game Dev·50w

    It's easy to make games in C++ from scratch!

    Making games in C++ from scratch is more accessible than commonly believed, requiring only basic language features like functions, structs, and vectors. A three-step approach involves learning fundamental C++ concepts, creating simple 2D games using libraries like SFML, and progressively tackling more complex projects like Terraria clones. While game engines offer quick prototyping, custom C++ development provides better optimization control and fewer limitations for specific game types, particularly those requiring custom systems like voxel-based games.

  2. 2
    Article
    Avatar of hnHacker News·34w

    Improved Map Generation

    Firaxis Games replaced their predictable fractal noise map generation system with a new Voronoi diagram-based approach for Civilization VII. The new technique creates more natural, varied maps by simulating tectonic plates and growing landmasses using configurable rules, while maintaining gameplay balance. Two new map types were introduced: Continents and Islands, and Pangea and Islands, with the system designed for future expansion and modding support.

  3. 3
    Video
    Avatar of twoninutepapersTwo Minute Papers·32w

    The Worst Bug In Games Is Now Gone Forever

    A breakthrough collision detection method using cubic barriers and advanced mathematical techniques eliminates clipping issues in simulations with millions of contact points. The technique handles complex scenarios like twisted cloth, ribbons, and deformable objects without any geometry passing through itself, running on a single GPU. Developed by Dr. Ryoichi Ando and published at SIGGRAPH Asia, the research has practical applications in gaming, VFX, and automated fashion design, though it requires minutes per frame to compute.

  4. 4
    Article
    Avatar of zedZed·40w

    Zed for Windows: What's Taking So Long?! — Zed's Blog

    Zed's Windows port has been in development by a four-person team for six weeks, tackling platform-specific challenges including creating a DirectX 11 rendering backend to replace Vulkan for better compatibility, reimplementing glyph rasterization for debugging support, optimizing GPU memory usage through improved MSAA handling, developing a Windows-compatible auto-updater system, and implementing crash reporting with minidump files. The team is now focusing on key bindings, SSH remoting, WSL support, extensions compatibility, and performance optimization before the general release.

  5. 5
    Article
    Avatar of lobstersLobsters·44w

    The current technology is not ready for proper blending

    Color blending in graphics programming faces significant challenges when choosing between sRGB, linear RGB, and perceptually uniform color spaces like OkLab. While OkLab provides the most visually accurate results for color gradients and blending, linear RGB is physically correct but can produce undesirable visual artifacts, especially in monochrome gradients. The article demonstrates these differences through GLSL code examples and explains why current graphics pipelines struggle to implement proper perceptually uniform blending consistently across all rendering operations.

  6. 6
    Article
    Avatar of 80lv80 LEVEL·31w

    Stunning Magical 3D Illusion in Flat Card

    Artist Mingwei 'CMZW' Lim created a portal-like 3D illusion on a flat card surface using Blender. The card reveals holographic stars and new depths when moved, similar to holographic display experiments. The artist has previously created various visual effects including Balatro-style cards, custom post-processing VFX collections, distance-based glitch effects, and pixelated Earth renders.

  7. 7
    Video
    Avatar of communityCommunity Picks·1y

    Introduction to shaders: Learn the basics!

    This post is an introductory guide to writing shader programs, focusing on creating 2D art and effects using fragment shaders. It explains the basics, such as what shaders are, why they run on the GPU instead of the CPU, and introduces fundamental concepts of GLSL (OpenGL Shader Language). The guide includes a detailed walkthrough of setting up shaders using JavaScript and p5.js, covering concepts like vertex and fragment shaders, vectors, parallel computing, and some practical examples of applying shaders to create visual effects, gradients, and image manipulations.

  8. 8
    Article
    Avatar of chromeChrome Developers·36w

    What's New in WebGPU (Chrome 140)

    Chrome 140 introduces several WebGPU improvements including adapter consumption after device requests, texture shorthand usage for better ergonomics, 1D texture sampling support in vertex shaders, deprecation of bgra8unorm read-only storage textures, removal of GPUAdapter isFallbackAdapter attribute, and various Dawn backend optimizations for better performance on mobile GPUs.

  9. 9
    Article
    Avatar of chromeChrome Developers·34w

    What's New in WebGPU (Chrome 141)

    Chrome 141 introduces major WebGPU improvements including completion of the Tint IR project that delivers up to 7x performance gains in shader compilation, integer range analysis for more efficient bounds checking, SPIR-V 1.4 support for Vulkan backend, and stabilization of the webgpu.h header with prebuilt Dawn binaries now available on GitHub Actions.

  10. 10
    Article
    Avatar of jendrikillnerJendrik Illner·1y

    Graphics Programming weekly - Issue 388 - April 20th, 2025

    This post covers various topics in graphics programming including an introduction to mathematical notation in graphics research, Ubisoft's open-source colorblind simulation tool, NVIDIA’s GDC technical sessions, combining shader effects, Monte Carlo integration techniques for rendering, MIT’s machine learning course for inverse graphics, Microsoft's DirectX roadmap, and Vulkan tutorial series integrated with the Assimp library. It also includes details on creating efficient random number generators optimized for SIMD and GPU execution.

  11. 11
    Video
    Avatar of lowlevelgamedevLow Level Game Dev·47w

    Should you start with OpenGL or Vulkan?

    OpenGL is significantly easier to learn than Vulkan for beginners, requiring 10 times less code to render basic graphics. While Vulkan offers better performance and more control, it demands extensive programming experience and complex debugging. OpenGL remains viable for many applications and provides a better foundation for understanding graphics programming concepts before potentially transitioning to Vulkan.

  12. 12
    Article
    Avatar of c0de517ec0de517e's weblore·44w

    ImagePeeker.

    ImagePeeker is a debugging tool that continuously monitors process memory and displays it as 2D images. The tool supports multiple pixel formats including HDR, can handle block-swizzled images, and enables visual debugging of graphics applications. The author advocates for creating simple, custom debugging tools to enhance development workflow, particularly for C/C++ programmers who lack advanced visual debugging capabilities in traditional debuggers.

  13. 13
    Video
    Avatar of twoninutepapersTwo Minute Papers·45w

    Roblox Solved The Physics Problem That Stumped Everyone!

    Roblox and University of Utah developed Augmented Vertex Block Descent (AVBD), a physics simulation method that solves complex collision and constraint problems that stumped previous techniques. The method can simulate millions of particles at 100 FPS on consumer graphics cards and correctly handles challenging scenarios like heavy objects on light chains, chain mail collisions, and spring-connected blocks where older methods failed completely.

  14. 14
    Article
    Avatar of codropsCodrops·51w

    Building a Real-Time Dithering Shader

    A detailed walkthrough of creating a real-time dithering shader using GLSL and WebGL. The implementation uses a 4x4 Bayer matrix for ordered dithering, supports optional pixelation and grayscale modes, and integrates with the postprocessing library as a composable effect. The shader transforms smooth gradients into stylized pixel patterns reminiscent of 8-bit graphics, offering customizable parameters like grid size and pixel ratio for retro visual effects in modern web applications.

  15. 15
    Article
    Avatar of 80lv80 LEVEL·48w

    Custom Unity Renderer Transforming 3D Scenes into Pixel Art

    Red Giraffe created a custom Unity render pipeline that transforms 3D scenes into pixel art using downsampling and quantization techniques. The system works by downsampling internal textures into low-resolution buffers, quantizing them, then upsampling back to source resolution. The colorful shadows are achieved through a custom render pass that quantizes the image and matches shadow values to appropriate available colors.

  16. 16
    Article
    Avatar of iotechhubiO tech_hub·38w

    Creative Coding With Perlin Noise

    Perlin noise transforms harsh randomness into smooth, natural-looking patterns for creative coding projects. Unlike Math.random(), it generates gradual transitions between values, making it perfect for creating organic movement in particles, terrain generation, and visual effects. The technique involves calculating noise values based on position coordinates and applying them to properties like movement, color, or opacity. Examples include recreating the Joy Division album cover, simulating flying insects with individual movement paths, creating fire spark effects with decay and depth, and building flow fields where particles follow calculated directional forces across a grid.

  17. 17
    Article
    Avatar of chromeChrome Developers·47w

    What's New in WebGPU (Chrome 138)

    Chrome 138 introduces several WebGPU improvements including simplified buffer binding syntax, stricter size validation for mapped buffers, updated GPU architecture reporting for Nvidia Blackwell and AMD RDNA4, deprecation of GPUAdapter's isFallbackAdapter attribute, and enhanced Dawn framework support with Emscripten integration for cross-platform development.

  18. 18
    Video
    Avatar of lowlevelgamedevLow Level Game Dev·33w

    The 5 levels of OpenGL

    A progression framework for learning OpenGL, from rendering your first triangle to mastering advanced techniques like compute shaders and ray tracing. The author shares their personal journey from beginner to advanced graphics programmer, breaking down five distinct skill levels: understanding basic rendering, grasping fundamentals, implementing 3D graphics, mastering advanced features like PBR and shadows, and finally achieving expert-level proficiency with compute shaders and complex optimizations. The piece emphasizes that advancement comes from pushing through difficult concepts rather than avoiding them.

  19. 19
    Article
    Avatar of jendrikillnerJendrik Illner·1y

    Graphics Programming weekly - Issue 386 - April 6th, 2025

    Highlights include a deep dive into rendering realistic grass, explanations of Quadrature and Monte Carlo Integration techniques, exploration of PlayStation 2 GPU programming techniques, and an analysis of raytracing acceleration structures. It also covers bindless textures in OpenGL, mirror rendering in video games, 2D Gaussian Splatting in Python, AMD’s RDNA4 architecture, and updates to the Vulkan Hardware Database.

  20. 20
    Article
    Avatar of jendrikillnerJendrik Illner·1y

    Graphics Programming weekly - Issue 379 - February 16th, 2025

    The post covers various advanced topics in graphics programming, including a tutorial on creating a pixel shader for a character head, combining different lighting models using Unity and Unreal, and an analytic approximation for color spaces. It also discusses implementing Surface-Stable Fractal Dither, lighting tricks in Anno 1800, using WebGPU from JavaScript, a novel sphere tracing algorithm, GPU Assisted Validation optimization, 4096x4096 matrix multiplication for RDNA3, and the Vulkan Safety Critical Emulation stack.