Graphics Programming Weekly 455


[video] Offscreen Rendering // Vulkan For Beginners #33

  • demonstrates offscreen rendering in Vulkan as an alternative to rendering directly to the swapchain
  • explains how swapchain rendering can cause additional hardware overhead that doing the lighting pass to an HDR offscreen image avoids
  • covers command buffer refactorings required and integrating the submission into the render queue


Gabor Fields: Orientation-Selective Level-of-Detail for Volume Rendering

  • introduces Gabor Fields as an alternative to Gaussian-based volumetric representations
  • enables continuous level-of-detail by masking primitives based on frequency and orientation selectivity, avoiding re-fitting, mipmaps, or popping
  • accelerates rendering with stochastic analytic line integrals and uses a low-frequency Gaussian base for further optimizations


VK_EXT_layer_settings — Configure validation layers programmatically

  • demonstrates how to use VK_EXT_layer_settings to configure Vulkan validation layers from code
  • shows how to enable Best Practices checks and debugPrintfEXT via VkLayerSettingEXT
  • includes an interactive example that triggers common validation warnings


Rendering an OctMap

  • demonstrates how to render voxel occupancy maps from SLAM (Simultaneous Localization and Mapping) data as instanced cubes in Vulkan
  • additionally presents a comparison against GLTF meshes and embedded 3D Gaussian Splats


How sparse resources helped my GPU-driven renderer memory usage

  • discusses using D3D12 reserved resources to manage large persistent buffers in a GPU-driven renderer with dynamic memory requirements
  • compares grow-or-shrink, static, and block-based allocation strategies
  • followed by presenting a VirtualAlloc-style SparseBuffer wrapper that commits and decommits 64 KiB pages with a contiguous virtual address space


TriFlow: Generating Artist-Like 3D Mesh Topology via Nearest-Vertex Vector Fields

  • introduces a generative method that creates compact 3D meshes from SDF inputs
  • represents mesh topology as a Nearest-Vertex Vector Field (NVF) and trains a latent flow-matching model
  • build the final mesh by clustering surface regions with the generated NVF and using constrained QEM simplification


Your First Shader from ZERO in Godot 4

  • teaches how to write a first 2D fragment shader in Godot 4 by creating an animated portal effect step by step
  • covers shader fundamentals such as vertex and fragment stages, UVs, uniforms, functions, texture sampling, and noise deformation
  • includes practical Godot-specific topics like shader built-ins, visual debugging, and controlling shaders from GDScript


Neural Texture Compression in Metal 4

  • implements Neural Texture Compression in Metal on Apple Silicon
  • details the training pipeline with latent grids, quantization-aware training, Adam optimization, and inference using half-precision GEMV or M5 neural-accelerator tensor ops
  • discusses stochastic trilinear interpolation for mip blending, performance benchmarks across devices, and practical limitations such as alpha testing, anisotropic filtering, and mixed material resolutions


Introducing CUDA Rust: Two Tracks for Writing GPU Kernels

  • Introduces two Rust frontends for CUDA: cuda-oxide for SIMT programming and cutile-rs for tile-based programming
  • The cuda-oxide track compiles functions to PTX through a custom rustc backend, while the cutile-rs track JIT-compiles tile kernels via CUDA Tile IR on stable Rust
  • both tracks enforce memory safety at compile time through DisjointSlice and launch contracts or tensor partitioning


The Bounding Simplex: A SIMD-Era Rejection Primitive

  • presents the bounding simplex, a rejection primitive using d+1 half-spaces instead of the 2d half-spaces of an AABB
  • argues that the simplex becomes advantageous over AABBs on wide SIMD hardware
  • proposes the axis set {X,Y,-(X+Y)} for numerical stability
  • introduces the AABO as the intersection of two opposing simplices


[video] Dissolve & Noise | Unity Shader Code Basics 10

  • demonstrates how to create custom dissolve effects in Unity (HLSL shader code)
  • builds procedural Perlin and Voronoi noise generators from scratch


[video] How The Bloom Effect Actually Works

  • explains the physics and mathematics behind bloom as light diffraction and dispersion through an aperture
  • introduces Linear Time-Invariant systems, impulse responses, and convolution to model the response to bright point sources
  • shows how Fourier transforms can approximate diffraction patterns


Thanks to Graham Wihlidal for support of this series.


Would you like to see your name here too? Become a Patreon of this series.