Graphics Programming weekly - Issue 224 - February 27, 2022

Tiling simplex noise and flow noise in two and three dimensions

  • the paper presents a tileable implementation of simplex noise for 2D and 3D cases
  • discusses quality considerations as well as performance
  • code is provided
  • additionally provides WebGL examples on how to use the noise to create desired results

Real-time Shading with Free-form Planar Area Lights using Linearly Transformed Cosines

  • the paper proposed a real-time shading calculation for area lights defined by cubic Bezier curves
  • extends the polygonal area lights via linearly transformed cosines techniques
  • sample code is provided

Using Semaphore and Memory Sharing Extensions for Vulkan Interop with NVIDIA OpenCL

  • the article presents a new set of OpenCL and Vulkan extensions to allow interaction between the APIs
  • shows how to use the extensions to import semaphores, memory, and images between OpenCL and Vulkan

[video] Clipping and viewport mapping in OpenGL

  • the video tutorial explains the process that vertices passthrough after vertex processing
  • shows how vertices are projected onto the screen, clipped to the window
  • additionally shows how the mapping onto the viewport is archived and how it can be used to have multiple viewports


Senior Compiler Engineer

Fort Collins, Colorado, US, or remote

LunarG, a US-based, independent software consultancy, is looking for talented compiler engineers to help us deliver world-class, 3D-graphics solutions.

Our compiler experts create optimizations and enhancements to compiler modules used in GPUs. You’ll be provided with the opportunity to work on an interesting variety of technologies. Our projects range from open source to custom development for a diverse group of clients across the Gaming, VR/AR, and Consumer Electronics markets. We pay competitively, offer strong bonuses, and foster a flexible and supportive work environment – making LunarG a great place to work.

If interested, contact Karen Ghavam at

Untangling Direct3D 12 Memory Heap Types and Pools

  • the article shows how GPU memory is exposed to D3D12 application developers
  • presents a detailed view into how heap types are only a convenient high-level summary and how they map onto heap properties
  • shows how to get access to memory budgets, available memory and how it changes with integrated and external GPUs

Why you can’t update Android’s GPU drivers like on your PC

  • the article presents an overview of the Graphics driver development model on Android devices
  • discusses Google and OEM initiatives to improve the situation and what problems need to be solved
  • presents a look at how emulators can load custom user-mode drivers to resolve driver limitations

Building a new graphics engine in Rust - Part 2

  • the article presents the authors’ API decisions while developing a D3D12 based graphics engine using Rust
  • shows why API decisions are made as well as what difficulties were encountered during development
  • shows that Rust developers still need to be very careful when interacting with unsafe D3D12 calls

[video] Random Noise - Shader Graph Basics - Episode 35

  • the video tutorial explains the concept of a noise hash
  • allows random number generations from other data sources
  • applies the concept as part of an interior Mapping effect to allow randomized rooms inside of a building
  • presents the concepts inside of UE4 and Unity

[video] Live Coding and Alien Orb - Modeling & Shadows

  • the video tutorial presents a coding session of an extraterrestrial inspired Orb object
  • shows the modeling and shadowing technique based on Signed Distance Fields

Ben Cloward - book recommendations

  • the author presents his list of recommended books for technical artists

Thanks to Robert Wallis for support of this series.

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