Sign in

Krzysztof Narkowicz

@knarkowicz.bsky.social
1.5K followers 160 following 52 posts

Engineering Fellow at Epic Game. I love games, graphics and lighting. knarkowicz.wordpress.com

PostsRepliesMedia
Krzysztof Narkowicz @knarkowicz.bsky.social · 22/09/2026
Interesting DLSS5 tech details: github.com/maanHimself/...
github.com
GitHub - maanHimself/OpenDLSS-NR: A Vulkan reimplementation of NVIDIA's DLSS 5 Neural Rendering network, bit-exact against the original.
A Vulkan reimplementation of NVIDIA's DLSS 5 Neural Rendering network, bit-exact against the original. - maanHimself/OpenDLSS-NR
1208
Krzysztof Narkowicz @knarkowicz.bsky.social · 19/09/2026
Median sw eng salary on levels.fyi is about 2.5x higher in US than PL. That helps, but there are also location independent costs like outsourcing or marketing. IMO the key here is that they managed to make such an amazing game in 3y with ~100ppl on avg in 2026. That's an insane achievement.
100
Krzysztof Narkowicz @knarkowicz.bsky.social · 18/08/2026
I came to a very similar conclusion when working on MegaLights. It may not be true on high-end PC GPUs, but on consoles there wasn't any way we would be able to fit stochastic direct lighting in a 60hz budget with it.
171
Krzysztof Narkowicz @knarkowicz.bsky.social · 08/08/2026
It's great to see ARM being so open about their neural joint denoising and upsampling, explaining their approach, network inputs, temporal stability and how they trained this network: community.arm.com/cfs-file/__k...
community.arm.com
0308
Krzysztof Narkowicz @knarkowicz.bsky.social · 12/04/2026
Original PBGI instead of raymarching surfels was rasterizing small cubemaps (micro buffers) in order to compute GI. They had a much higher density of surfels and used it for a per pixel final gather instead of caching in an ambient cube probes. cgg.mff.cuni.cz/~jaroslav/gi...
cgg.mff.cuni.cz
030
Krzysztof Narkowicz @knarkowicz.bsky.social · 12/04/2026
An interesting idea to use surfels not only as a surface cache (PBGI), but also as a geo approx to trace against. The main use case is mobile, where triangle ray tracing isn’t widely supported in HW, and raymarching SDFs isn’t a great fit for bandwidth-limited devices. gdcvault.com/play/1035619...
gdcvault.com
The Evolution of Real-Time Global Illumination in 'Love and Deepspace' (Presented by Arm)
Love and Deepspace is a mobile game dedicated to providing players with a near-realistic romantic experience. Providing realistic rendering on mobile devices is our constant goal. Global illumination ...
1273
Krzysztof Narkowicz @knarkowicz.bsky.social · 30/03/2026
Planescape: Torment, Kentucky Route Zero, Pentiment, Heavy Rain.
050
Krzysztof Narkowicz @knarkowicz.bsky.social · 24/02/2026
Float to R8_UNorm conversion has a permitted tolerance of 0.6ulp in the DX spec. 0.55/255 on some GPUs rounds down to 0 and on others rounds up to 1/255. Dangerous behavior when R8_UNorm NumFramesAccumulated=0 is used by a denoiser to mark invalid history... microsoft.github.io/DirectX-Spec...
microsoft.github.io
Direct3D 11.3 Functional Specification
0214
Krzysztof Narkowicz @knarkowicz.bsky.social · 14/02/2026
Inspiring examples of stylized rendering in UE without any modifications to the engine. Just clever meshes and textures. Though I wonder if it holds up with changing lighting conditions? www.artstation.com/artwork/JrJKVv www.artstation.com/artwork/kNXBx2
artstation.com
Rainforest Stream In Unreal 5, Tyler Smith
Wanted to do some nature sketching in UE5 :D
050
Krzysztof Narkowicz @knarkowicz.bsky.social · 14/02/2026
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
arxiv.org
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. ...
04010
Reposted by Krzysztof Narkowicz
Brian Karis @briankaris.bsky.social · 02/02/2026
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...
graphicrants.blogspot.com
Nanite Tessellation
Nanite Tessellation, aka Nanite Dynamic Tessellation, aka Nanite Dynamic Displacement was the next major feature I worked on after Nanite it...
116250
Krzysztof Narkowicz @knarkowicz.bsky.social · 31/12/2025
Yeah, it's tricky as spatial hashing basically merges geometry into one value and cells have to be large for any caching. You could try to add a bounce index to your key (per Stachowiak), force rayT<cellSize to 0 (we do this) or add ray<cellSize to your key (gpuopen.com/download/GPU...).
gpuopen.com
240
Krzysztof Narkowicz @knarkowicz.bsky.social · 12/11/2025
Yes, it should work as long as those shapes are large enough (don't require explicit sampling) - many titles shipped using hidden Lumen emissives as area fill lights, though that's not as powerful for artists as an additive mesh light. Cool, I really enjoy stylized gfx and tech solutions for it.
030
Krzysztof Narkowicz @knarkowicz.bsky.social · 12/11/2025
Amazing results! So you were picking N most important analytical mesh light shapes for a given scene and then intersecting/accumulating for each Lumen ray (including screen space one)?
200
Krzysztof Narkowicz @knarkowicz.bsky.social · 14/10/2025
I recommend just reading the slides. After the talk, we filled the presenter notes with more information than we could fit in our live talk.
010
Krzysztof Narkowicz @knarkowicz.bsky.social · 30/09/2025
It was recorded, so at some point it should be available on the ACM website.
110
Krzysztof Narkowicz @knarkowicz.bsky.social · 26/08/2025
MegaLights slides were just posted online. There's a bunch of details in slide notes if you're curious how our new Stochastic Direct Lighting solution works, why we made it and want to learn a bit about the problem space.
35213
Reposted by Krzysztof Narkowicz
ceruleite.bsky.social @ceruleite.bsky.social · 26/08/2025
#SIGGRAPH2025 Advances in Real-Time Rendering in Games course slides for "MegaLights: Stochastic Direct Lighting in Unreal Engine 5” talk by @knarkowicz.bsky.social and @tiagocostav.bsky.social from Epic Games are now online advances.realtimerendering.com/s2025/index....
03212
Krzysztof Narkowicz @knarkowicz.bsky.social · 15/08/2025
Thank you @ceruleite.bsky.social for 20 years of organizing the Adavances course. I did learn a lot from it over the years. And also for a really well chosen speaker swag :)
060
Reposted by Krzysztof Narkowicz
ceruleite.bsky.social @ceruleite.bsky.social · 06/08/2025
It's time to share the program for the 2025 Advances in Real-time Rendering in Games. Check out all the details here: advances.realtimerendering.com/s2025/index.... and, of course, come attend the course live on Tuesday August 12 at SIGGRAPH in Vancouver!
26831
Krzysztof Narkowicz @knarkowicz.bsky.social · 31/07/2025
We use a similar technique in UE, but using cheap AO derived from the distance fields, which then artists use to modify materials in material shaders. Though it's much less powerful - more like a procedural scene-aware texturing than a mesh blend system.
200
Krzysztof Narkowicz @knarkowicz.bsky.social · 15/07/2025
Amazing talk about Neural Materials. Lots of insight - from why layered materials are important to an overview of current neural solutions and their tradeoffs: youtu.be/xUnXPNFWJUY?...
youtu.be
The Future of Analytical Materials in a Neural World
YouTube video by High-Performance Graphics
0309
Krzysztof Narkowicz @knarkowicz.bsky.social · 06/07/2025
My feeling is that 20y ago there was a huge barrier to start, but if you could land a publishing deal (even on Steam) your game would at least recoup a large part of the budget. Nowadays the risk is much higher.
020
Krzysztof Narkowicz @knarkowicz.bsky.social · 22/05/2025
It's very simple. One is checkerboarding and the other one is half/quater res.
030
Krzysztof Narkowicz @knarkowicz.bsky.social · 20/05/2025
Well, it's more like "Go, go, go, fuck (KURWAAA), police" :)
010
Krzysztof Narkowicz @knarkowicz.bsky.social · 14/05/2025
Great to see you getting this award and certainly well deserved!
130
Krzysztof Narkowicz @knarkowicz.bsky.social · 01/05/2025
It's designed for run time compression (e.g. real-time captured env maps), so quality isn't the best. If you can compress those offline then likely Compressonator would be a better choice.
100
Krzysztof Narkowicz @knarkowicz.bsky.social · 09/04/2025
I imagine dynamic register allocation is also quite useful on DXR 1.0, as on hit you need to evaluate materials and they can have highly variable complexity. At least in the future, as for now it seems like everyone is either simplifying or caching materials for perf reasons.
100
Krzysztof Narkowicz @knarkowicz.bsky.social · 07/04/2025
It reminds me of FMV games, which were a cool idea, but it also was a dead end due to various limitations of the tech.
200
Krzysztof Narkowicz @knarkowicz.bsky.social · 06/04/2025
Another great article from Chips and Cheese. This time about dynamic RDNA4 register allocation. Having full dynamic allocation would be huge for all those complex shaders we write nowadays, but as the article shows it's not easy to get there.
1182
Reposted by Krzysztof Narkowicz
Arseny Kapoulkine @zeux.io · 01/04/2025
New blog post! "Measuring acceleration structures", in which we will compare BVH costs on various GPU architectures and drivers and attempt to understand the details enough on AMD hardware to make sense of the numbers! Reposts appreciated :) zeux.io/2025/03/31/m...
zeux.io
Measuring acceleration structures
Hardware accelerated raytracing, as supported by DirectX 12 and Vulkan, relies on an abstract data structure that stores scene geometry, known as “acceleration structure” and often referred to as “BVH...
212456
Krzysztof Narkowicz @knarkowicz.bsky.social · 29/03/2025
I see this more as a big corp opened a service which allows you to order Simpson merch without owning the IP. Yeah, a skilled artist could make such a t-shirt himself, but it's not the same as a company earning money by selling them.
090
Krzysztof Narkowicz @knarkowicz.bsky.social · 14/03/2025
Well, obviously would prefer a tech paper actually digging into tech, but still it's a nice post with some hints. Hopefully one day the embargo will be lifted.
000
Krzysztof Narkowicz @knarkowicz.bsky.social · 13/03/2025
Interesting to see a bit of details behind the amazing DLSS tech: research.nvidia.com/labs/adlr/DL...
research.nvidia.com
DLSS 4: Transforming Real-Time Graphics with AI
1317
Krzysztof Narkowicz @knarkowicz.bsky.social · 21/12/2024
In UE we just write out line data to a buffer and then draw those lines using the rasterizer.
040
Krzysztof Narkowicz @knarkowicz.bsky.social · 15/12/2024
VT surface catching has always been a very tempting idea, which could help with lots of things, but how do you deal with generating unique and reasonable UVs on UGC content? Some things like foliage don't seem to have a good solution.
010
Krzysztof Narkowicz @knarkowicz.bsky.social · 10/12/2024
Not sure what's the definition of PT translucency, but UE5 RT translucency does trace paths. This is how it can do multiple reflection/refraction events, where each hit needs to be lit by multiple light sources and receive GI.
130
Krzysztof Narkowicz @knarkowicz.bsky.social · 04/12/2024
Graphics Programming Conference 2024 talks are up. Looking forward to learning the new Tomasz magic :) www.youtube.com/playlist?lis...
youtube.com
Graphics Programming Conference 2024 - YouTube
The Graphics Programming Conference is a three day event in November. We have keynotes from industry experts, presentations, and “masterclass” workshops with...
17822
Krzysztof Narkowicz @knarkowicz.bsky.social · 02/12/2024
It's just a latest type of one of those weird airplane audio jacks, preventing people from stealing headphones: www.amphenolpcd.com/wp-content/u...
amphenolpcd.com
000
Krzysztof Narkowicz @knarkowicz.bsky.social · 16/11/2024
Nowadays you could make a good living from videos like that on YouTube :)
030
Krzysztof Narkowicz @knarkowicz.bsky.social · 12/11/2024
Does anyone know whether DoF is done through path tracing or post in offline movie rendering? I've heard that it's mostly done in post due to performance and extra flexibility, but I wonder whether that's still the case, and whether some shots are rendered (challenging DoF) and some in post.
862
Krzysztof Narkowicz @knarkowicz.bsky.social · 07/11/2024
Shipped solution uses a small runtime NN, but at the end of the talk they mentioned that they later found a faster alternative, which they call there "product fields".
120
Krzysztof Narkowicz @knarkowicz.bsky.social · 06/11/2024
Talk was amazing, but not sure if this is an example of an appealing NN application, as they came up with a better non-NN solution at the end :)
100
Krzysztof Narkowicz @knarkowicz.bsky.social · 03/11/2024
I meant barriers for hobby projects. As for the practicality and performance cost, indeed that's an issue as ML is a quite bruteforce solution. I suspect upscalers don't run per pixel ML due to cost and inability to quantize. Rather they output downscaled/quantized heuristics, which then drive TAAU.
110
Krzysztof Narkowicz @knarkowicz.bsky.social · 02/11/2024
I find that the biggest barrier is training data and compute, so it's hard to build any cutting edge stuff outside of things like Neural Radiance Caching, which learn on the fly.
110
Krzysztof Narkowicz @knarkowicz.bsky.social · 01/11/2024
It's still under heavy development, so not ready to talk about specifics yet. General idea is that it's a stochastic light sampling technique like ReSTIR DI (or Brigade real-time PT, or any PT really). The actual algorithm for sampling is different though, e.g. instead of ReSTIR it uses ray guiding.
171
Krzysztof Narkowicz @knarkowicz.bsky.social · 30/10/2024
It’s early days. Lots of ideas on P4 shelves, algorithms to try and work left. Not ready yet to talk about tech details. Still, officially the cat is out of the bag, so it’s time to buckle up and deliver on the promise. Can't wait to see the first games shipping with this tech.
180
Krzysztof Narkowicz @knarkowicz.bsky.social · 30/10/2024
2 months ago there was this crazy idea - could we dogfood the latest prototype using a demo and shape it into an experimental feature? It was quite a ride, but thanks to @tiagocostav.bsky.social joining MegaLights, help from other engineers and an amazing art team we made it.
160
Krzysztof Narkowicz @knarkowicz.bsky.social · 30/10/2024
Main goal was to make it work across all target HW, including consoles. Otherwise it would just add extra work for artists setting up another lighting scenario, and high-end GPU lighting would be constrained by content choices, which had to be made to ship on the slower hardware.
150
Krzysztof Narkowicz @knarkowicz.bsky.social · 30/10/2024
Years ago I talked to a bunch of companies at GDC and everyone was bringing up optimizing number of lights, disabling shadows with distance, light overlap... It felt like there was a big opportunity to transform their workflows, so I started prototyping ideas between other work.
160