Krzysztof Narkowicz

2.5K posts

Krzysztof Narkowicz

Krzysztof Narkowicz

@knarkowicz

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

Raleigh, NC Katılım Kasım 2009
397 Takip Edilen7.9K Takipçiler
Sabitlenmiş Tweet
Krzysztof Narkowicz
Krzysztof Narkowicz@knarkowicz·
Together with @EpicShaders and @_pmkelly we are doing an in-depth talk on Lumen at #rtadvances. We'll cover (virtually) how we trace rays, reuse computations, solve the whole indirect lighting path and noise, and scaled all of this to "The Matrix Awakens". #Lumen" target="_blank" rel="nofollow noopener">advances.realtimerendering.com/s2022/index.ht…
Krzysztof Narkowicz tweet media
English
5
48
246
0
Krzysztof Narkowicz
Krzysztof Narkowicz@knarkowicz·
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.
English
0
2
61
3.3K
Krzysztof Narkowicz
Krzysztof Narkowicz@knarkowicz·
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 joining MegaLights, help from other engineers and an amazing art team we made it.
English
2
2
37
3.7K
Krzysztof Narkowicz
Krzysztof Narkowicz@knarkowicz·
MegaLights release took me a bit by surprise. It was just a small prototype on a backburner, not planned to be showcased in UE 5.5. Now trying to catch up after the demo push, starting from writing the official docs which just went online: dev.epicgames.com/documentation/…
English
18
54
450
51.1K
Krzysztof Narkowicz
Krzysztof Narkowicz@knarkowicz·
@rianflo You can bake meshes into per mesh SDF with mips for LOD. Merge mesh SDF into clusters or global clipmaps for HLOD. Works reasonably well in UE, simpler than fitting analytical shapes to geo and provides a bound approx error.
English
0
0
0
147
Florian Hoenig
Florian Hoenig@rianflo·
Never mind, they do it manually 🤦‍♂️
English
2
0
3
483
Florian Hoenig
Florian Hoenig@rianflo·
Here is an unusual one: SDFDDGI - "Different from traditional SDF which are stored by discrete voxels, our approach approximates the scene by a set of simple primitive shapes" cad.zju.edu.cn/home/jin/tvc20…
English
1
0
5
924
Krzysztof Narkowicz
Krzysztof Narkowicz@knarkowicz·
@robcupisz It sounds like you did spend a lot of time investigating details like this one, and no wonder given the result. Thank you for the detailed explanation!
English
0
0
2
372
rob cupisz
rob cupisz@robcupisz·
@knarkowicz not really visible in the final frame here. It is slightly visible in the third shot, when the character walks away. Finally there's some peach fuzz on the coat, e.g. in the third shot. It doesn't write depth, so with DoF sometimes looks like a brighter halo.
English
1
0
1
441
rob cupisz
rob cupisz@robcupisz·
I can't believe we're done! Time Ghost A short film we on the Demo Team have been working on for a while youtu.be/o1JIK5W3DRU Like all our team’s demos, it runs in real-time at 30fps in Unity. Over the next days I’ll be posting rendering and tech art breakdowns in this 🧵
YouTube video
YouTube
English
33
75
423
43.1K
Krzysztof Narkowicz
Krzysztof Narkowicz@knarkowicz·
@volodXYZ @DylserX It's still in the research phase of finding the best solution (best tradeoffs for our use cases) and things may change, but at the moment there's no ReSTIR in MegaLights.
English
1
0
5
226
Vladimir Cazacu | 𝕧𝕠𝕝𝕠𝕕▿
@DylserX I might be wrong, but I think they both are both based on Nvidia's ReSTIR DI paper. Some of the older commits for ManyLights had the name ReSTIR attached. Speaking of RTXDI, anything else worth playing around with in the Nvidia branch if this is so much faster?
English
2
0
0
275
Dylan Browne
Dylan Browne@DylserX·
I've done some extra testing on another project which I was using RTXDI for, and well MegaLights seems to perform 2-3x better than RTXDI for me, with a more stable image.... Pretty cool! #UE5 #UnrealEngine #GameDev #Raytracing #Rendering #Realtime
Dylan Browne@DylserX

Some #MegaLights comparisons, amazing to see the performance increases in exchange for little artifacts / slight soft resolve, and even gets rid of Nanite Fallback issues. Approx 4 Bill Polys here, 140 RT Lights #UE5 #UnrealEngine #GameDev #Rendering #Raytracing #Realtime

English
4
4
38
3.7K
Krzysztof Narkowicz
Krzysztof Narkowicz@knarkowicz·
@HinodeCoder Yeah, GI is a rabbit hole. This is what I do at work for the last few years. But it's a fun one and produces nice pictures :)
English
0
0
0
127
Hinode Coder
Hinode Coder@HinodeCoder·
@knarkowicz I think this is probably some sort of a rabbit hole if you really want to dig into it :)
English
1
0
0
119
Hinode Coder
Hinode Coder@HinodeCoder·
Hello, I'm trying a new thing in terms of global illumination in #raycaster I've been thinking about using cellular automata and heat transfer to transfer light through a game level. This works for floors only and there is no bounced light but I'm working on it! #retro
Hinode Coder tweet media
GIF
English
1
0
3
553
Krzysztof Narkowicz
Krzysztof Narkowicz@knarkowicz·
@rms80 @ChristerEricson @tom_forsyth So while I understand your point, IMO instead of a worse technical solution the root cause needs to be fixed - tear down the barriers between specialized teams. As more engine code gets moved to the GPU side other teams need to be able to work on that too.
English
0
0
2
228
Krzysztof Narkowicz
Krzysztof Narkowicz@knarkowicz·
@rms80 @ChristerEricson @tom_forsyth It's a larger effort to maintain a CPU picker: build and stream in-editor only highres CPU geo, fast packet ray tracing to support drag/fuzzy select, emulate GPU code on CPU for alpha masking and vertex anim (and BVH for animated forest may not even fit in memory anyway)...
English
1
0
0
248
🙊Christer Ericson
🙊Christer Ericson@ChristerEricson·
The de rigueur ~1984 pre-GPU version of object picking used a tiny offscreen viewport of the picking area and, with the standard renderer, render objects into that buffer, checking for written pixels between each object. Same basic idea applies today, adapted for GPU counters.
Freya Holmér@FreyaHolmer

GPGPU question! in my modeling tool, I need to add a way to box select vertices, *without* selecting those obscured behind other geometry my current solution is a brute force CPU side intersection test of the selection box, and then an intersection test for every single face, for every single vertex, which isn't very scalable I could get into multithreading it on the CPU and burst compile and create acceleration kd-trees and uuuh [unhappy freya noises] or maybe, I can do this with compute shaders? 1. render a depth texture of the scene 2. run a compute shader that depth tests all vertices 3. the compute shader then writes a single bit for its selection state into a buffer 4. download to the CPU this would *significantly* speed up computation, but now the new worry is whether downloading the results of that will be fast enough for 8192 vertices (unusually high for my tool), this would be 1 KiB of data - would that take a reasonably short amount of time to download? I guess I could do things like run-length encode the thing, or other types of compression, which would reduce the average amount of data needed by quite a lot, but I don't know how to tell the CPU how much to download, before the download, and so maybe that would just incur two delays instead of just one, so idk if that's worth it

English
2
0
7
2.9K
Krzysztof Narkowicz
Krzysztof Narkowicz@knarkowicz·
@rms80 @ChristerEricson @tom_forsyth I see. Still for cycling you could skip drawing previously selected objects or write out a full list of objects for a given pixel/region with their depths. BTW we had cycling in my prev job as a temp workaround for poor CPU picking precision before we switched to GPU picking.
English
1
0
1
193
Ryan Schmidt
Ryan Schmidt@rms80·
@knarkowicz @ChristerEricson @tom_forsyth I didn’t say rendering approaches don’t work for first-hit object-level picking. I said they are handcuffs, when (eg) the UI devs want to implement other picking interactions that do not translate so easily to a z buffer (eg like repeat-click-cycling as a simple example)
English
1
0
1
217
Arseny Kapoulkine 🇺🇦
Three eternally unsolved problems in computer graphics: shadows, aliasing, and non-uniform scale.
English
8
2
67
8.2K
Krzysztof Narkowicz
Krzysztof Narkowicz@knarkowicz·
@rms80 @ChristerEricson @tom_forsyth In my prev job we started the engine from CPU picking by reusing physics code. Turned out to be a mistake, as you can't get robust selection due to the approx CPU geo, approx sorting (no zbuffer) and no fuzzy selection counting pixels. Switched to GPU later.
English
1
0
2
190
Ryan Schmidt
Ryan Schmidt@rms80·
@ChristerEricson @tom_forsyth If you implement what is necessary for CPU picking (ie some kind of spatial data structure) you open up so many more options - find-all-hits, closest-point, min-ray-distance, etc. Render-based picking seems easier up front, and eventually becomes handcuffs
English
3
0
3
307
Krzysztof Narkowicz
Krzysztof Narkowicz@knarkowicz·
@DylserX AFAIK hit-lighting and path tracer work on Linux in ue5-main, so you may want to give it another try :)
English
1
0
2
160
Dylan Browne
Dylan Browne@DylserX·
So although its come along way, still so much distance to go to be useable for me at least. Its a shame, its pretty much the only thing holding me back from getting back into Linux.
English
1
0
3
660
Dylan Browne
Dylan Browne@DylserX·
While Vulkan RayTracing is working in Lumen and with RT Shadows, Hit Lighting for Lumen reflections is not working at all and the lack of Path Tracer support in Vulkan is a definite issue for me.
English
1
0
2
736
Kostas Anagnostou
Kostas Anagnostou@KostasAAA·
Good read, this is an interesting question. We're not there yet, still lots of unsolved problems in real time gfx and framerate and portability/power consumption also complicate things more. The real question is will we ever reach a "good enough" state? blog.siggraph.org/2024/07/do-we-…
English
4
32
174
20.9K
Krzysztof Narkowicz
Krzysztof Narkowicz@knarkowicz·
@castano @guycalledfrank From what I remember general idea was based on your paper and I'm not a compression expert, so it will be interesting to see how you improve all of this in Spark.
English
1
0
0
445
Krzysztof Narkowicz
Krzysztof Narkowicz@knarkowicz·
@castano @guycalledfrank It was years ago... It's min/max line + least squares + some tricks to get "free" compression on prev gen. Partition mode is slower, but should be fine on current HW, though likely not a good tradeoff. Various AA/AAA games shipped with it for real-time probes, so it does its job.
English
1
0
2
389
Ignacio Castaño
Ignacio Castaño@castano·
I'm excited to announce that Spark 1.1 is out today! ludicon.com/spark/ What's new in this release? We have been listening to your feedback: This update is focused on the needs of PC developers.
English
4
35
136
15.3K