Helmut Garstenauer's Avatar

Helmut Garstenauer

@helmut-g

formerly: DigitalRune Engine, Apple (RealityKit, visionOS, Vision Pro) interests: game dev, graphics, physics, .NET, C# @HelmutG@mastodon.gamedev.place

606
Followers
302
Following
1
Posts
21.10.2024
Joined
Posts Following

Latest posts by Helmut Garstenauer @helmut-g

Screenshot showing skin with micro-occlusion at the top, and micro-shadowing below.

Screenshot showing skin with micro-occlusion at the top, and micro-shadowing below.

I finally wrapped up the second post on the series about micro-shadowing. On this one I go over a basic approach based on a microsurface, and I show results for different materials and lighting conditions.

irradiance.ca/posts/micros...

05.03.2026 21:49 πŸ‘ 40 πŸ” 11 πŸ’¬ 1 πŸ“Œ 0
Vulkan memory barriers and image layouts explained – RasterGrid | Software Consultancy

Vulkan memory barriers and image layouts explained www.rastergrid.com/blog/gpu-tec...

03.03.2026 21:25 πŸ‘ 32 πŸ” 9 πŸ’¬ 1 πŸ“Œ 0
Preview
Shipping Neural Texture Compression in Assassin’s Creed Mirage A neural material texture compression technique that uses machine learning to exploit the cross-channel structure and reconstruct full PBR materials in real time, enabling high compression rate in Ass...

Full article: www.ubisoft.com/en-us/news/i...

25.02.2026 12:17 πŸ‘ 3 πŸ” 4 πŸ’¬ 0 πŸ“Œ 0
Video thumbnail

Real-time Rendering with a Neural Irradiance Volume
Delivering fast inference (~1ms/frame), a tiny memory footprint (1-5MB), 10x quality gains over probe-based methods @ equivalent mem budgets, bringing neural rendering within reach of consumer hardware without RT or denoising.
arnocoomans.be/eg2026

27.02.2026 09:32 πŸ‘ 58 πŸ” 15 πŸ’¬ 3 πŸ“Œ 0
Preview
Adventures in Neural Rendering part 2: Cooperative vectors In the previous blog post we discussed a few potential neural network (MLP) applications in rendering and one of the conclusions was that although easy to implement, inference cost can be quite hig…

Continuing the adventures in neural networks, investigating how they can be hardware accelerated using Cooperative Vectors in HLSL, achieving impressive speedups. interplayoflight.wordpress.com/2026/02/21/a...

21.02.2026 16:06 πŸ‘ 28 πŸ” 3 πŸ’¬ 0 πŸ“Œ 0
Post image

Using ReSTIR to importance sample the brightest pixels on an image

www.shadertoy.com/view/XfycWw

15.02.2025 09:49 πŸ‘ 88 πŸ” 20 πŸ’¬ 2 πŸ“Œ 0
Preview
IBL Optimization Study III: Shared memory and Latency Hiding Last time , we looked at precomputing irradiance using spherical harmonics and how the math can be simplified compared to the expressions co...

IBL Optimization Study III: Shared memory and Latency Hiding technik90.blogspot.com/2026/02/ibl-...

17.02.2026 21:23 πŸ‘ 27 πŸ” 6 πŸ’¬ 0 πŸ“Œ 0
Simon Rodriguez Renderistically - Simon Rodriguez

[BLOG] A frame analysis of Dark Souls III
blog.simonrodriguez.fr/articles/202...

A detailed look at how the FromSoftware game renders a frame, with step-by-step comparisons and explanations.

21.02.2026 22:25 πŸ‘ 27 πŸ” 13 πŸ’¬ 1 πŸ“Œ 0
Post image

πŸš€ Unleash your creativity with GPU Zen 4!

πŸ“– Dive into cutting-edge techniques from industry experts to tackle complex graphics challenges and elevate your projects.

Available now on Amazon!
πŸ“” Standard Edition: a.co/d/0cvhJuSU
⭐️ Deluxe Edition: a.co/d/07t0MZGz

#GPUZen #GameDev

19.02.2026 23:02 πŸ‘ 22 πŸ” 9 πŸ’¬ 0 πŸ“Œ 0
Preview
Forget Superresolution, Sample Adaptively (when Path Tracing) Real-time path tracing increasingly operates under extremely low sampling budgets, often below one sample per pixel, as rendering complexity, resolution, and frame-rate requirements continue to rise. ...

Interesting paper showing great results for replacing standard low-res rendering + temporal upsampling (DLSS) with high-res GBuffer + adaptive sampling. Makes sense given rising costs of lighting computations vs GBuffer. arxiv.org/abs/2602.08642

14.02.2026 14:40 πŸ‘ 37 πŸ” 10 πŸ’¬ 0 πŸ“Œ 0
Post image Post image Post image Post image

"Isometric games don't exist" is a guide with 40 detailed charts about perspective in videogames.

It teaches you everything about isometry and what all the other game perspectives & projections are and how they work.

You can download it for free on my itch page
cyangmou.itch.io/isometric-ga...

13.02.2026 18:30 πŸ‘ 1107 πŸ” 422 πŸ’¬ 7 πŸ“Œ 11
Normal Map Compression Revisited – Ignacio CastaΓ±o

While working on spark.js, I realized that common normal map compression formats weren’t supported in popular frameworks like three.js. I added the necessary support to three.js and wrote an article to shed some light on the topic:

ludicon.com/castano/blog...

#webgpu #webgl #threejs #sparkjs

05.02.2026 05:04 πŸ‘ 17 πŸ” 11 πŸ’¬ 0 πŸ“Œ 0
Pushing Simulation to the Limit to Find Order in Chaos
Pushing Simulation to the Limit to Find Order in Chaos YouTube video by Drew's Campfire

A colleague sent me this: www.youtube.com/watch?v=8jVo...

No further comments needed, it's **very** good.

I've seen some of his videos in the past, but I missed this one. Glad I saw it.

03.02.2026 13:39 πŸ‘ 25 πŸ” 10 πŸ’¬ 1 πŸ“Œ 0
Post image Post image Post image Post image

Marcin Zalewski informed me that his blog post on real-time hair rendering using ray tracing is now available:
mmzala.github.io/blog/hair-ge...
This is nice work, in which he compares NVidia's hardware accelerated hair to several alternatives, including Reshetov's Phantom Ray Hair Intersector.

02.02.2026 15:29 πŸ‘ 40 πŸ” 13 πŸ’¬ 0 πŸ“Œ 0
Preview
Nanite Tessellation Nanite Tessellation, aka Nanite Dynamic Tessellation, aka Nanite Dynamic Displacement was the next major feature I worked on after Nanite it...

I'm finally writing up how Nanite Tessellation works. The first few blogs posts are up. More will be coming.
graphicrants.blogspot.com/2026/02/nani...

02.02.2026 02:40 πŸ‘ 160 πŸ” 51 πŸ’¬ 1 πŸ“Œ 1
Preview
Spinning around: Please don't! - siliceum Embark on a journey about why you should sometimes trust your OS more than yourself.

Ever wrote spin-locks or had to debug them?
I have, and I got tired of seeing (and writing) crappy ones, so I did a real investigation this time.

Spoiler: trust your OS.

siliceum.com/en/blog/post...

27.01.2026 10:40 πŸ‘ 23 πŸ” 9 πŸ’¬ 1 πŸ“Œ 1
Preview
Gyms, Zoos, and Museums: Your documentation should be in-game β€” Robin-Yann Storm, Product & UX Designer for Tools Gyms, Zoos, and Museums: Your documentation should be in-game

My 2025 talk 'Gyms, Zoos, and Museums: Your documentation should be in-game' is now also available in text format, for those who like to read instead of watch: rystorm.com/blog/gyms-zo...

And if you haven't seen it yet, there is an all new video too, with bonus material on the history of Zoos!

27.01.2026 18:11 πŸ‘ 241 πŸ” 78 πŸ’¬ 8 πŸ“Œ 10
Choosing Texture Formats for WebGPU applications – Ignacio CastaΓ±o

Choosing texture formats for WebGPU apps
www.ludicon.com/castano/blog...

Loading large scenes and running out of VRAM? This guide is for you. A follow up to @donmccurdy.com's guide, with a new option: Ship AVIF/WebP over the network, with native block-compressed textures in VRAM

#webgpu #webgl

27.01.2026 05:33 πŸ‘ 7 πŸ” 2 πŸ’¬ 0 πŸ“Œ 1
screen of project page of MeshSplatting

screen of project page of MeshSplatting

This seems to be extremely cool! will have to find time to set it up

meshsplatting.github.io

09.12.2025 18:03 πŸ‘ 3 πŸ” 2 πŸ’¬ 0 πŸ“Œ 0
Video thumbnail

I made a directional noise type I call Phacelle Noise which is pretty fast!

Is it new or does something functionally identical already exist? I'm not sure! But I didn't come across one like this yet anyway, so here's my findings:
blog.runevision.com/2026/01/phac...

#Graphics #Shaders #Shadertoy

22.01.2026 15:50 πŸ‘ 97 πŸ” 16 πŸ’¬ 5 πŸ“Œ 0
Preview
WebGPU Lines GPU-accelerated line rendering for WebGPU with instanced triangle strips

Still WIP, but *finally* adapted my line rendering module to WebGPU. Managed to salvage pretty much all of the logic from my old WebGL line rendering module. I know there's better algorithms and implementations out there, but I'm relatively content. rreusser.github.io/notebooks/we...

18.01.2026 03:30 πŸ‘ 226 πŸ” 17 πŸ’¬ 6 πŸ“Œ 0
Preview
Gradientspace Graph Beta β€” gradientspace I have released an initial version of Gradientspace Graph (GSGraph), a new C#-based NodeGraph Programming environment that also supports inline text-coding in C# and Python (and LLM-based CodeNode gen...

Hey I made a new thing - it's called Gradientspace Graph, and it's a C#-based NodeGraph Programming system that also supports inline C# and Python "Code Nodes". The NodeGraph Engine is MIT Open-Source and the Editor is Free. More details here: www.gradientspace.com/tutorials/20...

13.01.2026 19:36 πŸ‘ 62 πŸ” 17 πŸ’¬ 4 πŸ“Œ 2
Video thumbnail

🚨 Games marketing people 🚨

Here are 3 great and super helpful Chrome extensions for browsing Steam

ℹ️ Extra data and info on screen
πŸ’° See the estimated revenue
πŸ“ˆ Useful CCU info
πŸ“‰ Previous sales prices
πŸ”Ž Additional search filters
πŸ•ΈοΈ Firefox & Edge versions
πŸ”₯ And more

🧡 Thread below πŸ‘‡

20.06.2025 08:17 πŸ‘ 96 πŸ” 30 πŸ’¬ 1 πŸ“Œ 2

cseweb.ucsd.edu/~tzli/novelt...
I gave an internal talk at UCSD last year regarding "novelty" in computer science research. In it I "debunked" some of the myth people seem to have about what is good research in computer science these days. People seemed to like it, so I thought I should share.

09.01.2026 17:21 πŸ‘ 75 πŸ” 25 πŸ’¬ 2 πŸ“Œ 2
A timeline visually representing the advice from my post, emphasising how dramatically and reliably having more time, with a testable build, converts to your game being better and your studio being safer.

A timeline visually representing the advice from my post, emphasising how dramatically and reliably having more time, with a testable build, converts to your game being better and your studio being safer.

I've been running an indie games studio for 15 years now, and it felt like a good time to boil down what I've learned into 4 pieces of advice:

www.pentadact.com/2026-01-08-1...

I hope it's of use, not least because goddamn I forgot how long blog posts take to write.

08.01.2026 18:02 πŸ‘ 1845 πŸ” 577 πŸ’¬ 51 πŸ“Œ 65
Post image

I just released my video about the engine (and game) I've been working on.

The engine is based on dynamic SDFs, and the video describes how it works and what it makes possible.

Link in the reply!

This is my first YouTube video and it took forever - please repost!

06.01.2026 19:53 πŸ‘ 266 πŸ” 51 πŸ’¬ 13 πŸ“Œ 2
How to Vulkan in 2026 - How to Vulkan How to write Vulkan graphics code in 2026

My "How to Vulkan in 2026" @vulkan.org #Vulkan guide is now publicly available at www.howtovulkan.com

I still consider it a preview, though I'm mostly happy with it and only plan on changing minor things and incorporating some feedback.

03.01.2026 18:15 πŸ‘ 76 πŸ” 29 πŸ’¬ 0 πŸ“Œ 0
Screenshot of the blog post.

Screenshot of the blog post.

I got the first post about direct lighting material occlusion up on my blog. On this one I go over the commonly used micro-occlusion approach and its limitations, and I start digging into micro-shadowing as an improvement.

irradiance.ca/posts/micros...

20.12.2025 21:31 πŸ‘ 48 πŸ” 14 πŸ’¬ 1 πŸ“Œ 0
Preview
No Graphics API β€” Sebastian Aaltonen Graphics APIs and shader languages have significantly increased in complexity over the past decade. It’s time to start discussing how to strip down the abstractions to simplify development, improve pe...

My "No Graphics API" blog post is live! Please repost :)
www.sebastianaaltonen.com/blog/no-grap...

I spend 1.5 years doing this. Full rewrite last summer and another partial rewrite last month. As Hemingway said: "First draft of everything is always shit".

16.12.2025 18:51 πŸ‘ 466 πŸ” 191 πŸ’¬ 19 πŸ“Œ 12
The Ridiculous Engineering Of The World's Most Important Machine
The Ridiculous Engineering Of The World's Most Important Machine YouTube video by Veritasium

Another incredible video from Veritasium, all about the extreme lithography machines produced by ASML. The design & engineering required is simply insane! youtu.be/MiUHjLxm3V0?...

02.01.2026 00:44 πŸ‘ 11 πŸ” 2 πŸ’¬ 0 πŸ“Œ 0