Our GPC 2025 talks are up on YT now!
youtu.be/fXakIV1OFes?...
youtu.be/mvCoqCic3nE?...
Our GPC 2025 talks are up on YT now!
youtu.be/fXakIV1OFes?...
youtu.be/mvCoqCic3nE?...
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...
FASTBuild v1.19 has been released, including:
* LightCache supports Clang & GCC for significantly faster cache operations
* Support for Ctrl+F7 integration with Visual Studio
* BFF syntax enhancements
* Bug fixes
Details: http://
fastbuild.org/docs/changelog.html Big thanks to all contributors!
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
I have procrastinated on writing so much that I wrote an entire document on writing tips: cseweb.ucsd.edu/~tzli/writin...
Probably not much is new but I find I still need to repeat the same things to my students regularly. Will update this document over time hopefully.
Thereβs also so called AoSoA layout which has benefits of the both (and some GPUs support that 10+ years but APIs never exposed). An example of AoSoA use on CPU also shows pretty solid perf (e.g. : github.com/pm4rtx/Unity...)
this point came up in a discussion some months ago which made me realize that supporting proper lambdas in hlsl would mean this "anyhit shader" logic could be passed in as lambda and inlined with the "hidden" code that does bvh traversal. maybe that'll happen some day..
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...
Original: an old photo I took in the forest
3D voxelized scene in the day.
3D voxelized scene in the night.
3D voxelized scene in the day with volumetric fog.
This was a fun quick experiment:
Using an old photo I took in the forest, I used ml-sharp to generate gaussian splats from it, voxelized it in my toy renderer, relit the scene dramatically.
#rendeting #metalrt
βFloating-Point Printing and Parsing Can Be Simple And Fastβ
The fastest known floating-point printer and parsing algorithms - fixed-width printing, shortest-width printing, and parsing, all in 400 lines of Go.
research.swtch.com/fp
research.swtch.com/fp-proof
Optimizing spatiotemporal variance-guided filtering for modern GPU architectures jcgt.org/published/00...
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.
A sneak peak of what I've been working on: A strand based hair system for Jolt Physics (WIP): youtu.be/Rl19G0c003o
-- JOB SEARCH POST/RT APPRECIATED --
Hello everyone!
I am available for work (full time position/internship) anywhere in the world with priority going to the EU, starting June 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.
As my holiday project, I went back to my retro engine project after a long time. Decided to add something modern, so here's meshlet rendering on Voodoo 2:
youtu.be/VOv8JqUZstQ
"An Experimental Approach to printf in HLSL" from the one and only
www.abolishcrlf.org/2025/12/31/P...
#SIGGRAPH2025 Advances in Real-Time Rendering in Games course talk recording of "FAST AS HELL: IDTECH8 GLOBAL ILLUMINATION" by @idsoftwaretiago.bsky.social from id Software is now online: youtu.be/VTrdeqMMMK0?... Enjoy!
#SIGGRAPH2025 Advances in Real-Time Rendering in Games course talk recording of "MEGALIGHTS: STOCHASTIC DIRECT LIGHTING IN UNREAL ENGINE 5" by @knarkowicz.bsky.socialβ¬
and @tiagocostav.bsky.social⬠from @epicgames.alt.store.ap.brid.gy is now online: youtu.be/dmmN8_c8Tb0?... Enjoy!
I wrote a blog post describing state of GPU market and what does it mean for support of new GPU features
asawicki.info/articles/sta...
Thanks to @asawicki.info for letting me publish on his blog
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...
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".
After nine years of development, meshoptimizer has reached its first major version, 1.0!
This release focuses on improvements in clusterization and simplification as well as stabilization. Here's a release announcement with more details on past, present and future; please RT!
meshoptimizer.org/v1
Here's some cute bounding box functions for 2D shapes. A longer list here: iquilezles.org/articles/bbo...
dear imgui 1.92.5 released! πͺ©
github.com/ocornut/imgu...
- many fixes/changes for Tables, InputText, Keyboard navigation, disable mode, single-axis auto sizing, backends etc.
- webgpu backend update for latest Emscripten API changes & native Dawn/WGPU.
Hi
When doing insertion / search, itβs probably better not to do that with unique hash per thread (multiple hashes per wave) to avoid scattered reads/writes, and rather repurpose threads in a wave to do linear probing of the same hash value (and repeat the process for all unique hashes within a wave)
The example makes use of 32-bit elements that hold flags + some data. For complex structures, one can repurpose data bits into an indirection index into an array holding structures (or multiple arrays with different structures, depending on frequency of access)