Тёмный

Single shot global illumination with no denoiser 

Alexander Sannikov
Подписаться 10 тыс.
Просмотров 15 тыс.
50% 1

In this demo I present my first (mostly) working prototype of cascaded image space global illumination. It's fast enough to converge to a noise-free solution in about 5ms that does not require any denoising. My goal was to achieve this in one frame, which means no temporal reprojection, no reusing data from previous frames, etc. This implementation works in screenspace because I found a particularly efficient way of utilizing image space samples with this approach, but it obviously has classic image-space drawbacks.
I show how cascades of varying spatial resolution all combine to form the final GI solution. The core idea here is that GI can be broken down into "cascades" of different spatial resolutions, where low spatial resolution cascades have higher angular resolution and allow capturing far-field GI, and high spatial resolution cascades complement them by capturing low angular resolution near-field global illumination data.
The work is relatively evenly distributed between cascades, which means that for example level 6 cascade is downscaled 64x64 times, but there's as much GI to calculate at that frequency as there is at cascade level 0 that has no downscaling.

Наука

Опубликовано:

 

18 апр 2023

Поделиться:

Ссылка:

Скачать:

Готовим ссылку...

Добавить в:

Мой плейлист
Посмотреть позже
Комментарии : 122   
@samaskew188
@samaskew188 11 месяцев назад
Hey Alexander, I just wanted to say I loved your talk! This was so incredibly cool and I'm so glad you shared all of these details rather than keeping it secret for the studio.
@Alexander_Sannikov
@Alexander_Sannikov 11 месяцев назад
thank you!
@francoisgrassard
@francoisgrassard 7 месяцев назад
@@Alexander_Sannikov I add my comment to this one to thank you too. It was incredibly interesting !
@bcn_clips
@bcn_clips 11 месяцев назад
Bro is single-handedly beating the entire D4 development team. Great work, Alexander
@DivinusAngelus
@DivinusAngelus 11 месяцев назад
D4 bad
@Bekspejszyn
@Bekspejszyn 11 месяцев назад
D4 bad
@StickyStanHoney
@StickyStanHoney 11 месяцев назад
D4 bad
@iamarugin
@iamarugin 9 месяцев назад
D4 not great, not terrible
@techpriest4787
@techpriest4787 10 дней назад
D4?
@CowPimp
@CowPimp Год назад
Hey Alexander, I just wanted to say that I just subscribed after your talk at Exilecon. A lot of the discussion went over my head, but even the pieces I understood were fascinating. The need to find clever ways to improve image quality through tricks that minimize computational expense seems like an engaging puzzle to solve. It was awesome to see someone so passionate; it was very obvious you love what you do. Cheers.
@Alexander_Sannikov
@Alexander_Sannikov Год назад
thanks!
@dubot4076
@dubot4076 11 месяцев назад
Saw your talk at Exilecon on the livestream just now. Amazing explanation and very cool to hear. Thank you for your work, the passion towards your craft is seen and respected. Keep doing what you’re doing, thanks again.
@Empyriangaming
@Empyriangaming 11 месяцев назад
I loved your passion about your work during the Exilecon talk. Even though I barely understood anything! Thanks for your work
@bcn_clips
@bcn_clips 11 месяцев назад
He basically developed a Global Illumination Algorithm with the best performance on the entire market or something.. that's what I understood, and its very impressive work!
@ohchristusername
@ohchristusername 11 месяцев назад
Supreme performance at the exilecon talk, very inspiring to see your custom solutions!
@cleanedgecards9115
@cleanedgecards9115 11 месяцев назад
Your passion during your talk at Exilecon is inspiring. Keep it up man
@Hook1m
@Hook1m 11 месяцев назад
Loved your talk at Exilecon!
@dargorwarrior
@dargorwarrior Год назад
Alex is the guy, savior of GGG.
@Thomason1005
@Thomason1005 8 дней назад
i am amazed by this idea of cascaded lighting. i am amazed to see where you take it next, the global lighting mentioned in your paper, or even handling direct lighting this way seems promising.
@nicoh7321
@nicoh7321 11 месяцев назад
Hi Alexander, your talk in exilecon was amazing! Thank you so much!
@MeNoMeanTo
@MeNoMeanTo 11 месяцев назад
Your exilecon talk gives this demo a lot of perspective, really impressive!. Love your work!
@memz5619
@memz5619 11 месяцев назад
You're incredibly smart! Love your energy and the way you explain details of everything.
@Tristan97122
@Tristan97122 11 месяцев назад
Absolutely loved your talk at exilecon, and the performance characteristics of this approach are amazing indeed! Gratz!
@pianochad
@pianochad 11 месяцев назад
Exceptional talk at Exilecon. I absolutely dig your passion!
@Blunk_
@Blunk_ 11 месяцев назад
You were amazing to listen during Exilecon, very humble of you to share your secret/technique like that. By doing this you clearly inspired and help others to learn and its can only improuve the futur of the gaming industries. Big respect that was awesome.
@hfok
@hfok Год назад
Can't Wait for your panel in ExileCon 2023!
@Alexander_Sannikov
@Alexander_Sannikov Год назад
are you attending? :)
@hfok
@hfok Год назад
@@Alexander_Sannikov YES! I am!
@hfok
@hfok Год назад
@@Alexander_Sannikov Will you have a time for meet and greet thing during the Con?
@Alexander_Sannikov
@Alexander_Sannikov Год назад
@@hfok for sure. find me, feel free to have a chat!
@Alexander_Sannikov
@Alexander_Sannikov Год назад
@@hfok did you meet me on day 1? i'm kaom!
@AdamBH
@AdamBH 11 месяцев назад
I think your and GGG's openness to share and teach will have a big impact on making other games across the industry better as a result. Thanks for sharing!
@Varquynne
@Varquynne 11 месяцев назад
Absolutely blown away, Alexander! Your first ExileCon talk was fascinating, and I loved your talk at the second ExileCon. Your passion, knowledge, and talent radiated throughout the entirety of it. Thank you so much for creating the "canvas and paints" so to speak for the game. Your tools and innovations have allowed the artists to create a jaw-droppingly beautiful game. When Mathil was playing through the Eternal Prison, I gasped when I saw the water rushing in from the outside to cover the floor. The fluid physics and blending sold that so much. It's probably a lot of time to put together manuscripts for publication, but I can imagine seeing papers authored by you going out to the academic community to share your work.
@omercognacunsal8378
@omercognacunsal8378 11 месяцев назад
Hierarchical Cascades solution was mind-blowing! First time ever heard of the topic and it captured me, huge work!
@Vashiro
@Vashiro 11 месяцев назад
HUGE FAN OF YOUR WORK, THANK YOU FOR BEING PART OF GGG + POE!
@geagle7154
@geagle7154 11 месяцев назад
Like others I'm here because of your exilecon talk - I have zero knowledge in this space but found myself absolutely glued to my seat, you did a fantastic job presenting a complex topic and it's clear you love to talk about it. Just wanted to say thank you!
@BillyHarden
@BillyHarden 11 месяцев назад
I have never heard a Dev talk SO passionate about his work or journey like you did on exilecon. Also i absolutely need that shirt, i love it.
@iestynne
@iestynne 14 дней назад
This is a really really cool idea. I hope people pick up on this. Seems like this parametrization could have lots of uses.
@iestynne
@iestynne 14 дней назад
Like maybe this could lead to an improved version of Debevec's VR lightfield rendering...
@Kudalinny
@Kudalinny 11 месяцев назад
Hey Alexander! I wanna add up to all the nice comments here by saying that I love hearing knowleadgeable people talk about their fields, and you are one of those people! The way you explained everything in a smooth and clear way was fascinating, especially to audiences that know nothing about graphics and textures (like me). Thank you for the amazing talk at the Exilecon and the amazing job you've been doing with PoE!
@Alexander_Sannikov
@Alexander_Sannikov 11 месяцев назад
glad you liked it!
@SpookyFairyVR
@SpookyFairyVR 11 месяцев назад
Hi Alexander, amazing presentation, so impressed. Made me even more excited to play PoE2
@alanleonardopiovesan
@alanleonardopiovesan Год назад
Hey Alex! Not long to see your great work, it's one of the things I'm most excited to follow! Thank you for everything and for the work at GGG. You are very talented!
@Alexander_Sannikov
@Alexander_Sannikov Год назад
thanks! are you attending tomorrow?
@alanleonardopiovesan
@alanleonardopiovesan Год назад
@@Alexander_Sannikov unfortunately not! But I will be following the live broadcast from Brazil.
@leonardoritter5086
@leonardoritter5086 Год назад
@@Alexander_Sannikov Brazil is looking forward to your part tomorrow, for the teasers your work is absurd
@danilonunes4526
@danilonunes4526 Год назад
​@@Alexander_Sannikov Your work is amazing, man! Looking forward to seeing your presentation tomorrow.
@krahenke
@krahenke 11 месяцев назад
Absolutely top notch work
@niklazz7037
@niklazz7037 11 месяцев назад
Got a sub bud, I saw you talk on exilecon. Your passion is contagious. GGG is very lucky to have you and likewise. Keep the good work mate. GL with development!
@RevernBlitz
@RevernBlitz 11 месяцев назад
Александр, спасибо за ваш в клад в мою любимую игру, мечтаю работать в ГГГ с такими же увлечёнными своей работой людьми как ваши коллеги, но пока что я только в школе. Удачи в дальнейшей работе над сиквелом
@evooverwatch4083
@evooverwatch4083 11 месяцев назад
Hey just heard your talk at exilecon and although im not interested the slightly in programming and stuff you were a pleasure to listen to :)
@cycataklata
@cycataklata 11 месяцев назад
Who else had no idea what the exilecon talk was about but loved it anyway?
@ReapsTV
@ReapsTV 11 месяцев назад
Excellent talk at Exilecon!
@SilverstringsMusings
@SilverstringsMusings Год назад
This looks really good for a screen space based technique.
@elfferich1212
@elfferich1212 19 дней назад
this algorithm isn't limited to screen space btw. just this implementation
@DravenphilupDoom
@DravenphilupDoom 11 месяцев назад
Amazing talk best of exilecon
@youssefabusamra3142
@youssefabusamra3142 11 месяцев назад
Awesome work! big fan of the hierarchical screen space probes idea. I'm curious experiment with doing world space traces rather than image space from the screen space probes
@2SURANJAN
@2SURANJAN 11 месяцев назад
please publish a paper on this
@satibel
@satibel 11 месяцев назад
Came here from the Exilecon talk, that's some wizardry that's more impressive than the half life alyx bottles.
@morfea123
@morfea123 11 месяцев назад
Great stuff at Exilecon!
@snaker9er
@snaker9er 11 месяцев назад
How did you max out intelligence and charisma
@Alexander_Sannikov
@Alexander_Sannikov 11 месяцев назад
"social life" is a dump stat
@vitormoraes8320
@vitormoraes8320 Год назад
If I understood correctly, because you're not using temporal data, convergence has to be achieved per frame is that right? Great work as always.
@Alexander_Sannikov
@Alexander_Sannikov Год назад
Correct. I honestly find it annoying where most modern papers report that their GI works in "5ms per frame" when in actuality it takes 5ms per frame for 3 seconds to converge. That's one of the reasons why I think it's only fair to compare what you can achieve over a period of one frame in isolation (and obviously if needed one can also accumulate this data over multiple frames to dramatically increase convergence).
@iestynne
@iestynne 14 дней назад
Another paper pet peeve: "runs in realtime" meaning takes 16ms to run (leaving nothing for the rest of your game!) at low resolution with a scene that avoids all the quality edge cases. Yup, totally solved.
@peter486
@peter486 11 месяцев назад
This looks absolutely stunning! Keep creating more of these projects, Alexander. As an environment artist, I'm not a coder, but I always enjoy witnessing the magic that can be achieved with shaders. By the way, your ice shader and the grass shader for Poe dynamic tiles were fantastic! The water shader was also impressive, although I can't even imagine how you'd set it up when Poe tiles up the map. Have you explored Unreal 5.2? We have something called "substrate" there, which is really cool because it allows us to stack two shaders on top of each other, enabling even more exciting possibilities for our creations. ps i saw a demo projcted you have done that looks very close to "nanite" would you be able to use that for poe to cutt down on the geo cost? for me nanite is so good, becaus ei realy thing "retyppo" is so time taking i just use "zbrush to auto typo my montains and rocks atm" and covert them into nanite onjects. the greatest cost for me isent geo drawcall its textures.. atleast for me :)
@user-gm5bj9lx7u
@user-gm5bj9lx7u Год назад
Around 01:51 when you show each cascade separately there seems to be no occlusion e.g. shadow behind the column, but the combined result does. I'm trying to understand what is going on there. How does each cascade calculate GI? Is it horizon based?
@Alexander_Sannikov
@Alexander_Sannikov Год назад
That's the type of observation I hoped somebody would make. I have basically failed to find a good way how to demonstrate this, but the idea is that in addition to radiance, cascades also store occlusion. So short-range cascades encode occlusion of the column, and they occlude radiance from longer-range cascades. So the long range cascade carries light behind the column, but the short range cascade occludes it when they're combined. You can see this effect clearer in my previous video called "2d Full Global Illumination #2" at 0:52, because it's just easier to think in 2d, but it directly translates into 3d. I have a version where each cascade calculates GI in horizon-based fashion, but it's next to impossible to resolve disocclusion for horizon-based algorithms in a physically-based manner. So instead of that I'm using a 128-bit occlusion mask of horizon rays.
@towb0at
@towb0at 11 месяцев назад
Just added you to the list of physicists I look up to
@DJDDstrich
@DJDDstrich 11 месяцев назад
Absolutely loved your Exilecon 23 talk Alex! You looked super excited to finally tell the world about your awesome GI solution, and you should be proud! Do you think you will be able to dedicate any time to writing more technical deep dives on this technique? I'd love to try to replicate it for our future games at some point!
@Alexander_Sannikov
@Alexander_Sannikov 11 месяцев назад
Glad you liked it. I'm thinking of writing an article or maybe publishing the sources, but not sure yet.
@MattWoelk
@MattWoelk 11 месяцев назад
@@Alexander_Sannikov Should we subscribe here, or do you have an account somewhere else we should follow in order to see/read it? (Fastinating talk, by the way! That's how I found you as well. Very exciting!)
@iFaFo_0
@iFaFo_0 11 месяцев назад
@@Alexander_Sannikov Please do this is groundbreaking. It can really push the industry forward🙏 Thank you for showing us this amazing technique.
@DJDDstrich
@DJDDstrich 11 месяцев назад
@@Alexander_Sannikov mate if you could provide a write up and some source code to go with it that would be a dream. It seems your team at GGG are very sharing already, so it would be really something to see your tech land and then even evolve in other projects!
@sythys_
@sythys_ Год назад
Isn't path tracing more affordable at this point? How cheap is this to calculate? I somehow like this approach and at the same time hate how it behaves out of screen space.
@asdfsafdsfdsfds3988
@asdfsafdsfdsfds3988 11 месяцев назад
Are u guys considering an upscaling tech for poe2 that works on all gpus? ...cause game looks demanding
@OculusTales
@OculusTales 11 месяцев назад
Hey Alex, loved both of your Exilecon talks. It's wonderful to see someone with so much passion about their craft, and also amazing to see the results of your hard work. Could you persuade someone at GGG to let us disable the player light so that we can admire all the GI from skills without it getting in the way? :)
@Alexander_Sannikov
@Alexander_Sannikov 11 месяцев назад
direct light and player light do often get in the way, which is annoying. however, the greatest obstacle to GI shining is due to it being optional (and off by default) in PoE1, so we could not create environments that rely on it. PoE2 will have it on by default.
@OculusTales
@OculusTales 11 месяцев назад
@@Alexander_Sannikov Great to know. All of the footage I've seen so far looks absolutely gorgeous, so I'll be looking forward to playing it when the beta is out. Thanks again for all of your great work!
@PanzerschrekCN
@PanzerschrekCN Год назад
Выглядит интересно. Но артефакты подхода в пространстве экрана всё-же бросаются в глаза. Да, в PoE это будет слабо заметно, но всё же, есть ли какие-либо идеи, как можно было бы побороть их? Например, как-то совмещая информацию из нескольких кадров или используя некую иную информацию, что не попадает в кадр?
@corpsious
@corpsious 11 месяцев назад
I agree, and I'm interested in how this could be overcome. Maybe render and discard 15% extra viewport at the bottom of the viewport (where there are likely to be emissive objects which should be influencing the scene?) He said in the recent ExileCon talk that the same technique works for world-space, but that's not what they went with because of game-specific implementation preferences.
@danmer414
@danmer414 11 месяцев назад
what a lad!
@jhonprosto7850
@jhonprosto7850 5 месяцев назад
I was glad to hear that at least one of the developers is interested in the Labyrinth. In this league, for some reason, it was made useless and it just killed me, as a person who is only interested in the concept of a maze in this game - difficult trials with an endorphin explosion at the end. I hate the man who decided to get rid of enchantments.
@user-yx5wd5yy6h
@user-yx5wd5yy6h Год назад
выглядит завораживающе =) а как техника называется - есть какие нибудь пейперы ее описывающие? спасибо.
@Alexander_Sannikov
@Alexander_Sannikov Год назад
Я назвал технику hierarchal light probe cascades. Первое видео с экспериментальной демонстрацией её идеи -- это "2d Full Global Illumination #1", которое я раньше публиковал. Придумал с потолка, никаких похожих техник я не встречал.
@alleycatsphinx
@alleycatsphinx Год назад
Are you using a hierarchical structure to handle your cascades which isn't based on a cubic lattice?
@Alexander_Sannikov
@Alexander_Sannikov Год назад
it is based just in a square grid
@paulomarangoni5566
@paulomarangoni5566 11 месяцев назад
it's pretty nice to see this technique going to the game, I've been following since the 2d version, do you have any plans to share a article describing the technique or something like that?
@Alexander_Sannikov
@Alexander_Sannikov 11 месяцев назад
i mean.. I did try to explain the main principles on the exilecon talk as well as I could.
@RobertJohanssonRBImGuy
@RobertJohanssonRBImGuy Год назад
would it be fair to say you can accomplish efficient cheap cost of render vs doing ray tracing at approximatly same level of visual impact?
@Alexander_Sannikov
@Alexander_Sannikov Год назад
doing rendering can be very cheap if you render very simple lighting. what's expensive is rendering lighting in which every point of every object casts light on every point of every other object and also blocks light that's passing through it. the latter is called global illumination. and yes, typically it's solved with rays and I propose a much more efficient alternative that converges to the same result.
@RobertJohanssonRBImGuy
@RobertJohanssonRBImGuy Год назад
@@Alexander_Sannikov Yes its how I understood your 2019 video on the subject. Slowing down the Ngamakanui trailer you guys did, when the avatar passes from the lightspell bluish to the softer yellow light under the entry, if one slows down this a frame shows the yellow light is not seamless lighted as the change in one frame shows the like a light switch is turned on. However, in full speed normal, it shows seamless interaction as the avatar moves trough. Thanks, have fun preppin for exilecon, I be watching from eu.
@RobertJohanssonRBImGuy
@RobertJohanssonRBImGuy 11 месяцев назад
@@Alexander_Sannikov watching the 2023 talk I now understand why global illumination in 4k works better (faster) even in 4k vs the old previous render. The cost to enable GI is much lower. The recent patch and new render does help to lessen the cost when enabling GI without GI apperantly not being implmented yet in the latest patch for poe1. Oled 4k using a 6700xt a mid range card. Thanks.
@unheall
@unheall Год назад
Hi! Will you be giving a talk at exilecon this year? ps: пересматривал твою прошлую презу раза 3 наверное) Очень крутая
@Alexander_Sannikov
@Alexander_Sannikov Год назад
I surely hope so! But preparing a good presentation is a lot of effort.
@unheall
@unheall Год назад
​@@Alexander_Sannikov29.07 | 04:00 GMT 😉
@unheall
@unheall 11 месяцев назад
@@Alexander_Sannikov just watched it's live. Incredible works as usual 👍 Так держать Саша :)
@sublucid
@sublucid Год назад
Rendering backfaces to depth would obviate need for the "Thickness" slider 😀
@Alexander_Sannikov
@Alexander_Sannikov Год назад
Rendering the entire scene twice is not really acceptable in a production environment. Besides, geometry sometimes has multiple layers: for example, if there's a double-sided poster stuck onto a wall, you want to use thickness of the wall, not that of the poster for screenspace effects.
@sagielevy
@sagielevy 4 дня назад
This is absolutely amazing, the talk was just great! I have one question, if I were to have a metallic sphere in this scene, positioned such that the light reflects just at it's bottom (relative to the camera), would the reflection look skewed? I saw the LTC algorithm Unity developed allows for realtime area lighting and they support light skewing which looks beautiful. I guess if this GI solution is realistic you should be getting it for free but I figured I'd ask :)
@Alexander_Sannikov
@Alexander_Sannikov 4 дня назад
yes, specular reflections can be gathered from RC no problem. you can see my community posts for some examples.
@sagielevy
@sagielevy 2 дня назад
@@Alexander_Sannikov I'll have a look. Thanks!
@zhizhou3907
@zhizhou3907 3 месяца назад
This is really incredible! But I think it only calculates the first bounce of global illumination?
@Alexander_Sannikov
@Alexander_Sannikov 3 месяца назад
The way consequent bounces are usually calculated is simply by running single bounce propagation each frame, progressively increasing the number of bounces over time.
@PavelTomasVic
@PavelTomasVic 11 месяцев назад
Do you publish things like this on some sort of public github?
@Alexander_Sannikov
@Alexander_Sannikov 11 месяцев назад
i did publish our previous GI along with a bunch of other rendering techniques on github raikiri/LegitEngine
@user-cv1rh8tn5s
@user-cv1rh8tn5s 6 месяцев назад
Александр, благодарю вас за то, что пришли на подкаст к Юре. Очень интересно было послушать! У меня есть вопрос, одним из артдиректоров ПОЕ2 является Роман Куприянов, достаточной известный человек у среди русскоязычных художников, мне вот интересно вы как-то вели с ним общение? Насколько мне известно, он работает удаленно в Питере, но при этом все равно является артдиректором, как так могло получиться?
@Alexander_Sannikov
@Alexander_Sannikov 6 месяцев назад
спасибо. он в офисе работает. я с ним общался, но не особо много. а вообще концепт художники иногда работают удалённо,потому что им мало нужно с другими взаимодействовать.
@snurffff
@snurffff Год назад
Would you be able to make this work in world space?
@Alexander_Sannikov
@Alexander_Sannikov Год назад
i have 2 previous videos with the same technique in world space. the resolution is much worse, voxels are much slower to trace than pixels, but it's possible.
Далее
Real time optical wave field propagation
8:14
Просмотров 6 тыс.
We Need to Rethink Exercise - The Workout Paradox
12:00
МАРИЯ ГОЛУБКИНА О БАБУШКЕ #shorts
00:43
"Mafia" is a Racing Game
10:17
Просмотров 139 тыс.
6 Months of Voxel Physics Engine Optimizations
8:17
Просмотров 45 тыс.
Godot Has A New Global Illumination System ...Again
11:48
Hollow Knight- Don't Kill the Nailsmith!
4:14
Просмотров 1,9 млн
How Are Games Rendering Fur?
28:51
Просмотров 440 тыс.
Quake's PVS: A hidden gem of rendering optimization
6:48
How to Soldering wire in Factory ?
0:10
Просмотров 1,8 млн