Radiance Cascades Rendered Directly

  Рет қаралды 65,152

Alexander Sannikov

Alexander Sannikov

Күн бұрын

Пікірлер: 231
@Alexander_Sannikov
@Alexander_Sannikov 5 ай бұрын
How ya'll folks found this video? I'm seeing a lot of half-life themed visitors coming from somewhere, and I've no idea where from.
@porttek0oficial
@porttek0oficial 5 ай бұрын
This was on my recommended page and had interesting thumbnail. I watched it until the end and I still don't know what I am looking at.
@Alexander_Sannikov
@Alexander_Sannikov 5 ай бұрын
@@porttek0oficial sorry for that..
@valshaped
@valshaped 5 ай бұрын
Don't be sorry for it! This was a wonderful demo, and you don't need to be a graphics programmer to find it interesting, fun, enjoyable, and visually appealing!
@Deathbynature89
@Deathbynature89 5 ай бұрын
Radiance Cascade sounds like Resonance Cascade combined with a cool thumbnail it is intriguing. "What is a Radiance Cascade? I wanna know." This was recommended to me on my homepage. I have watch videos on radiance fields and tutorials on Gaussian Splatting. The thumbnail also looks like something that could be rendered in Source 2.
@SuboptimalEng
@SuboptimalEng 5 ай бұрын
Probably getting recommended because of SimonDev’s recent video on Radiance Cascades heh.
@Alexander_Sannikov
@Alexander_Sannikov Жыл бұрын
One thing that I forgot to mention in the video is the, um, sparkles? These are path tracing fireflies that made their way into radiance fields -- they go away the more time you give path tracing to converge, but I did not bother waiting more than half an hour and I thought they look kind on cool anyway. They don't exist while using this data structure for calculating actual global illumination because it needs much lower resolution to be resolved and so it converges much faster.
@johnsherfey3675
@johnsherfey3675 5 ай бұрын
Would denoising help?
@Mr.LeoNov
@Mr.LeoNov 5 ай бұрын
​@@johnsherfey3675I don't think so giving how little resolution there is
@ThePrimaFacie
@ThePrimaFacie 5 ай бұрын
You should pin this as the top comment
@monx
@monx 5 ай бұрын
thanks. the video is missing a brief assurance that this "ghost skull" asset is presented exactly as it would appear in a game. It is not a human head in debug mode.
@draco6349
@draco6349 5 ай бұрын
it's a fascinating effect, actually- a volume that sparkles isn't something i've seen much before. i wonder if it has any actual use.
@OtterCynical
@OtterCynical 5 ай бұрын
Gordon doesn't need to hear all of this, he's a highly trained professional.
@minecraftermad
@minecraftermad 5 ай бұрын
No no that's resonance cascade.
@Etka06
@Etka06 5 ай бұрын
@@minecraftermad same thing
@Gelatinocyte2
@Gelatinocyte2 5 ай бұрын
Gordon doesn't need to *see* all of this, he's a highly trained *game dev.*
@K4leidos
@K4leidos 5 ай бұрын
Never change your mic. It's somehow almost perfect
@derc4N
@derc4N 5 ай бұрын
@atlas_19
@atlas_19 5 ай бұрын
It's like a voice recording/voice report from games and movies.
@liegon
@liegon 5 ай бұрын
It has a lofi feel, like a cassette recording.
@antonio_carvalho
@antonio_carvalho 5 ай бұрын
The slightly nasal voice in a matter of factly intonation also contribute to the effect
@Jam_Axo
@Jam_Axo 4 ай бұрын
its a mad scientist mic in the making
@astr0_th3_man84
@astr0_th3_man84 5 ай бұрын
My dumbass thinking this was a half life video
@Lexie_T
@Lexie_T 5 ай бұрын
There's no chance of a half life video.
@elpanatv2537
@elpanatv2537 5 ай бұрын
resonance cascade🔥🔥🔥🔥🔥🔥🗣🗣🗣🗣
@noisetide
@noisetide 5 ай бұрын
@@elpanatv2537 It's time to choose Mr. Freeman...
@makeandbreakgames1791
@makeandbreakgames1791 5 ай бұрын
same lol i thought it was a high quality render or something
@Trager57
@Trager57 5 ай бұрын
It was the weird thumbnail that tricked me
@Klayperson
@Klayperson 5 ай бұрын
this is a sickass way to render cosmic shadow people
@DilettanteProjects
@DilettanteProjects 5 ай бұрын
I never thought I'd live to see a radiance cascade
@Kavukamari
@Kavukamari 5 ай бұрын
let alone create one...
@Masonova1
@Masonova1 5 ай бұрын
☝️🤓 actually it was a resonance cascade
@DilettanteProjects
@DilettanteProjects 4 ай бұрын
@@Masonova1 I like to do this thing sometimes where I notice that one word sounds a bit like another and then I make a joke out of that
@Synthonym
@Synthonym 4 ай бұрын
@@Masonova1 whoooosh
@valshaped
@valshaped 5 ай бұрын
The cascades look like the raw output from a light field camera! Very cool!
@Alexander_Sannikov
@Alexander_Sannikov 5 ай бұрын
There's only so many ways you can encode a light field..
@johndawson6057
@johndawson6057 5 ай бұрын
​@@Alexander_Sannikovso it is used in light field cameras then?
@longjohn7992
@longjohn7992 5 ай бұрын
“Carmack doesn’t need to hear all this he’s a highly trained professional”
@Vulcorio
@Vulcorio 5 ай бұрын
No idea what I've just listened to but the imagery is very fascinating.
@euphemia3092
@euphemia3092 Жыл бұрын
Absolutely blown away by all of your work. Thank you for sharing!!
@ThePrimaFacie
@ThePrimaFacie 5 ай бұрын
My brain watching this and hearing how its done is doing the sparkly bits of the model. Thanks for the vid
@aburak621
@aburak621 Жыл бұрын
Thanks Alexander for you ExileCon presentation! It was a joy to watch and learn.
@bebroid420
@bebroid420 Жыл бұрын
2 years ago I was experimenting with directional lightmaps, trying to achieve both diffuse and sharp specular lighting. I've been messing with "plenoptic textures" that look very similar to this demo. It's really interesting how one can come up with a similar concept while trying to achieve different goal. The whole idea with the cascades and usage of this technique to calculate screen space global illuminance.... Just wow!
@footspring94
@footspring94 5 ай бұрын
like a digital hologram. crazy that this has been doable for such a long time and only now has been found. And just by someone on yt.
@CharlesVanNoland
@CharlesVanNoland 5 ай бұрын
This is very reminiscent of lightfield rendering (originally "image based rendering" 20 years ago) of the sort that OTOY and Lytro were working on a decade ago, except here you have multiple resolutions for multiple depths? I'll have to look at your paper to understand the cascade aspect.
@Alexander_Sannikov
@Alexander_Sannikov 5 ай бұрын
each cascade is encoded in a way that's similar to the good ol' image based rendering. but the most powerful property of RC is how information is distributed across multiple cascades.
@melody3741
@melody3741 4 ай бұрын
This is the first time I have ever comprehended these, because everyone else basically just called it black box. Thank you!!!
@Vegan_Kebab_In_My_Hand
@Vegan_Kebab_In_My_Hand 5 ай бұрын
Nice video, and great explanation of the cross-sections and their relationship to the spatial and angular resolutions!
@4.0.4
@4.0.4 5 ай бұрын
As Wave Function Collapse terrain generation has proven, cool names inspired on physics are generally better for game development.
@fritt_wastaken
@fritt_wastaken 4 ай бұрын
But wave function collapse is an abysmally terrible name. It has nothing to do with waves or functions. Gives wrong impression on both essence and complexity of the algorithm
@footspring94
@footspring94 5 ай бұрын
just think how this could replace individual props like tables in corners or show massive events like large cut scenes or animated backgrounds. I also think it will work very well as a way to manage surface texturing.
@TheNSJaws
@TheNSJaws Жыл бұрын
would you mind doing more of these? Not just for Cascade rendering, but in general. I quite appreciate your PoE presentations, and every time I rewatch them, I wish they gave you more time.
@codymitchell4114
@codymitchell4114 4 ай бұрын
Absolutely gorgeous rendering
@DabidarZ
@DabidarZ 5 ай бұрын
im so confuseddddd BUT THAT LOOKS cool and i love seeing new stuff!!!
@jeremyashcraft2053
@jeremyashcraft2053 4 ай бұрын
Really clever stuff! I know PoE 2 will be shipping with this lighting technique, and I can't wait to see it in action!
@perkele1989
@perkele1989 4 ай бұрын
The halflife refs are clearly due to your phenomenal HL voice and production quality
@photometricman
@photometricman Жыл бұрын
A lot of similarities in the atlas to lightfield photography. Highly interesting work. Thank you!
@Alexander_Sannikov
@Alexander_Sannikov Жыл бұрын
it is capturing the same data, so yeah
@Tr33fiddy
@Tr33fiddy 11 ай бұрын
Good thought. Like the Lytro light field camera.
@f7029
@f7029 5 ай бұрын
This is amazing!!!!! Really excited to see what comes out of this
@ЭдуардСухарев-ш9ч
@ЭдуардСухарев-ш9ч 5 ай бұрын
It came from recommendations and I have no idea what this is. But it's damn cool! Now I'll go deeper that rabbit hole to find out what it is and how you managed to make it work
@LukeGeaney
@LukeGeaney 4 ай бұрын
Subbed - found your channel via the SimonDev video on radiance cascades then your ExileCon video :)
@blakes8901
@blakes8901 5 ай бұрын
this genuinely might change everything. good luck. I hope this actually pays off for you monetarily.
@chris-hayes
@chris-hayes 5 ай бұрын
How.. illuminating. Very cool.
@satibel
@satibel Жыл бұрын
have you tried that with a billboard explosion? it may allow high speed rendering with some semi-3d effect.
@UncoveredTruths
@UncoveredTruths Жыл бұрын
such a cool technique
@manapotion1594
@manapotion1594 Жыл бұрын
Cool research. So, does that mean the angle of view is quite limited? Does the quality degrades with the "depth" of the object from camera?
@Alexander_Sannikov
@Alexander_Sannikov Жыл бұрын
the angle is not limited, but the quality does degrade with depth with this encoding
@TheEagleFace
@TheEagleFace 5 ай бұрын
babe wake up they just dropped virtual holograms
@DJDDstrich
@DJDDstrich Жыл бұрын
Hey Alex thanks for the video - Really cool to see a little more insight into this Radiance Cascades tech you've developed! Must be fun to play around with various little projects like this now that the tech has proven itself! How are you going with potentially open sourcing some form of it in the near future? Is it still a possibility? It seems like the only viable GI option for real-time procedural games like ARPGs or sim/management games, and, well I want to get my greedy little mitts on it! :D
@Alexander_Sannikov
@Alexander_Sannikov Жыл бұрын
I'm close to publishing an article first, them I'm going to open-source it.
@DJDDstrich
@DJDDstrich Жыл бұрын
@@Alexander_Sannikov amazing mate! I'm super excited and hope you get the recognition from it! Where might the article land and how do I get notified?
@Alexander_Sannikov
@Alexander_Sannikov Жыл бұрын
@@DJDDstrich I'm probably going to make a short announcement video on this channel with a link to something like google drive pdf before sending it to a journal.
@taliesinbeynon
@taliesinbeynon 2 күн бұрын
Reminds me a bit of lenticular holograms? But also, a funny analogy to the Heisenberg uncertainty principle. While that’s about arbitrary non-commuting operators, for position versus momentum it turns out to be about the 1/sigma that the Fourier transform does to the width of a Gaussian. But my point is: it is a constraint between spatial and temporal resolution, in some sense. Radiance cascades represent a spectrum of tradeoffs between spatial and angular resolution, right?
@Alexander_Sannikov
@Alexander_Sannikov Күн бұрын
i guess it is an analogy in mathematical sense, but i don't see how it's analagous in terms of physics
@sublucid
@sublucid Жыл бұрын
Super cool! Show us what this same model looks like illuminated by the final technique!
@ArtificialDjDAGX
@ArtificialDjDAGX 14 күн бұрын
Could it be possible to combine this with a destructible environment? Like, precalculating all of the static and destructible objects as "transparent" models, so that no matter how they're destroyed, they render in a way that makes them accurate even if you were to noclip into them?
@Merthalophor
@Merthalophor 4 ай бұрын
What I gather: We're "storing" in some way how the 3d model looks like if viewed through a plane from any angle, without keeping the 3d model. The most obvious way to do that is to store for each pixel of the plane what the pixel would look like if viewed from every angle. We could store, say, 200 different angles, which would mean that we have to store for _every_ pixel 200 different colors. Then, when rendering, we could check what angle we're looking at a pixel, then linarly interpolate between the colors associated with similar angles. What this paper shows is that this is not necessary, and we can make the image still look decent while storing much less information. The key idea is that while we want to store a _few_ angles for _every_ pixel, we only need a _few_ pixels that store a _lot_ of angles. So for example, we could store 4 angles for _every_ pixel - then have a separate map that stores 8 angles for every 16th pixel - then another map that stores 16 angles but only every 36 pixels, and so on. By cleverly interpolating this information, we get a really life-like image, while only storing a fraction of the information (and, conversely, while only having to _calculate_ a fraction of the information, if running in real time).
@Alexander_Sannikov
@Alexander_Sannikov 4 ай бұрын
the really important part is that the tradeoff of spatial:angular density is only possible for a given distance range. that's why RC stores radiance intervals, because they capture light coming from a certain distance range.
@Merthalophor
@Merthalophor 4 ай бұрын
@@Alexander_Sannikov Distance... from the object being rendered? If you moved away from the plane the quality would decrease?
@rapideye101
@rapideye101 5 ай бұрын
how does the sampling work then with the cascades? can you also make a video on that? or is there a paper?
@skicreature
@skicreature 4 ай бұрын
Your mention of the accuracy of penumbras makes me wonder if this same technique could be modified in the calculation of radiation dose calculation in radiation therapy. Basically we do a bunch of complex ray tracing or kernel convolutions to perform dose calculations in radiation therapy and calculate the interactions based on a fluence maps from particular angles. For us however reflectivity isn't so important. Mostly we just have attenuation (simple calculation), and a couple different types of scattering interactions (much more complex requiring monte carlo interactions). However, our accuracy in dose calculation tends to decrease at the edge of beams (at the penumbra) as the calculation becomes most difficult there with scattering interactions beginning to dominate over the attenuation interactions.
@Alexander_Sannikov
@Alexander_Sannikov 4 ай бұрын
@@skicreature people are already applying RC to a bunch of non-light radiative transfer processes. any process where energy is propagated in rays is suitable.
@pravkdey
@pravkdey 5 ай бұрын
Looks pretty! If it's too memory intense i can imagine it being used sparingly, like for smoke grenade or effects on weapons
@hnlo
@hnlo 4 ай бұрын
Great work! I'm really interested to find out how to encode the radiance cascade data into a texture, can you give me some pointers?
@Alexander_Sannikov
@Alexander_Sannikov 4 ай бұрын
this is explained in the paper
@Jianju69
@Jianju69 5 ай бұрын
Interesting effect, somewhat like glitter immersed in plastic. How much memory does this demo use? Seems too resource intensive for complex real-time scenes.
@firstclass3223
@firstclass3223 Жыл бұрын
Awesome stuff, well explained.
@iestynne
@iestynne 5 ай бұрын
Thanks for showing the atlas view. I'm curious why you chose parabolic encoding?
@ChristianKahler
@ChristianKahler 3 ай бұрын
Hi, great work! How do you render the parabolic cube maps and what pixel resolution do you start with? Looks already very high at the lowest level and you render all cube maps in realtime?
@Alexander_Sannikov
@Alexander_Sannikov 3 ай бұрын
@@ChristianKahler maps are path traced offline. the total resolution of all cascades combined into a single image was something like 4k x 4k lowest cascade probe resolution is something like 4x4
@ChristianKahler
@ChristianKahler 3 ай бұрын
@@Alexander_Sannikov Thanks for the info! So for realtime we need something more simple? I was just wondering how path of exile 2 does this step? ;-)
@Alexander_Sannikov
@Alexander_Sannikov 3 ай бұрын
@@ChristianKahler this demo demonstrates the fact that the data inside of RC is completely decoupled from the way you acquire it. Path tracing this takes minutes, but once it's baked into RC, I can render it in realtime in one millisecond. PoE2 uses screenspace raymarching to fill the data in cascades, so it's much faster to get the data. But the way the data is stored is mostly the same.
@CodeParticles
@CodeParticles 2 ай бұрын
@Alexander_Sannikov, Hello sir this is very mind blowing to me. Is there any way you have a tutorial on how the equations and bi-directional reflective distribution works? I've been tinkering with PBR which I assume is very antiquated now? I'm utterly fascinated and I use OpenGL C++ for my particle demos and side projects.
@Alexander_Sannikov
@Alexander_Sannikov 2 ай бұрын
This demo uses the standard GGX BRDF and a full PBR pipeline. The difference compared to conventional renderers is that instead of calculating it for every pixel every frame, it pre-calculates it into radiance cascades and then just reads the results every frame.
@LoraHannike
@LoraHannike 4 ай бұрын
digital hologram, finally great work! keep it up
@Alexander_Sannikov
@Alexander_Sannikov 4 ай бұрын
i have a video on actual simulated holograms. check my community page to see what it looks like.
@LoraHannike
@LoraHannike 4 ай бұрын
@@Alexander_Sannikov I will
@harry1010
@harry1010 5 ай бұрын
Never seen radiance fields rendered so fast - on the cpu, too!quick q - do you have angular resolution inconsistencies at different layers due to how the resolution changes at each depth layer?
@ellescer
@ellescer 5 ай бұрын
no idea what your talking about or what any of this means but, looks wicked cool dude
@AtomicBl453
@AtomicBl453 5 ай бұрын
i'm curious, would this help with more realistic sun sparkles on a body of water?
@AlexDicy
@AlexDicy 5 ай бұрын
How do you style ImGui like that? Is there a theme or did you manually change backgrounds and border radius?
@Alexander_Sannikov
@Alexander_Sannikov 5 ай бұрын
it's open source you can check. legitengine by raikiri
@AlexDicy
@AlexDicy 5 ай бұрын
@@Alexander_Sannikov Thanks!
@chapterone1162
@chapterone1162 5 ай бұрын
Really cool stuff man good work
@kabu8341
@kabu8341 5 ай бұрын
If you ever happen to have enough free time on your hands, I would love to have a video explanation for your radiance cascade for people who know not much about graphics programming :D SimonDev's Video was a good start for it tho, now I understand the things you do a bit more. Very fascinating. I still can't really imagine what those probes look like. As far as I understand now it sounds like you have those probes with different properties in the whole... err.. view? volume? of the camera and they are scanning everything and sending the averaged data to the camera and this is what you see in the end?
@oldlifeorig5028
@oldlifeorig5028 5 ай бұрын
Does it mean that we can look into 3d models and see it more realistically from inside? Not like backfaces, but volume of it's mesh idk
@Danuxsy
@Danuxsy 5 ай бұрын
So what would be the usecase of this?
@NightmareCourtPictures
@NightmareCourtPictures 5 ай бұрын
Use case of global illumination? With O(1) time complexity? Practically all applications for every graphical representation for the foreseeable future.
@Danuxsy
@Danuxsy 5 ай бұрын
Well this is different because it is NOT real-time like path tracing we see in games, this is computed offline and so cannot change afterwards. It's similar to splatting, looks like real life but not very usable in games (as of now anyway), me sleep.
@NightmareCourtPictures
@NightmareCourtPictures 5 ай бұрын
@@Danuxsy it's a stretch to say path tracing is real-time. i also don't know where or why you have the impression this isn't real-time, nor why it wouldn't be real-time, given how efficient it is.
@Danuxsy
@Danuxsy 5 ай бұрын
@@NightmareCourtPictures i watched the ExileCon2023 talking about their GI implementation using radiance cascades so I see that it does have good usecases yess, it's cool !
@caffiend81
@caffiend81 5 ай бұрын
@@Danuxsy it's usable in real time. Path of Exile 2 is using Radiance Cascades. IIRC their dev team published a white paper on the technique.
@Visigoth_
@Visigoth_ 4 ай бұрын
Cool video (Game Dev)... YT sees my interest in "digital volumes" and recommended this.
@Skythedragon
@Skythedragon Жыл бұрын
So from what I understand from this and the presentation, you take an array of textures, and for each pixel in that texture, look at it's 8 neighbors, and do some short distance (1px) raytracing, and repeat that for the number of cascades you have? Then to get the final value, you read the pixels in the final cascade for the direction you want to trace in? Wouldn't this make it O(n) for the number of cascades instead of having some fixed upper bound?
@Alexander_Sannikov
@Alexander_Sannikov Жыл бұрын
Nope, after the precalculation is done, there's no raycasting in this demo at all. Rendering the radiance field of one cascade in this case is equivalent to just reading a cubemap texture for every pixel, which is just a hardware bilinear interpolation. So, each of the 4 cascades are looked up this way and then merged. See at 4:23 each cascades literally stores tiny cubemaps: you don't raymarch them, you interpolate them.
@mcchickengrip423
@mcchickengrip423 3 ай бұрын
isnt this the tech path of exile 2 will use? :O wow amazing work
@attashemk8985
@attashemk8985 Жыл бұрын
Looks cool, will be interesting if nerfs could be baked in this cascade technique
@thewaysh
@thewaysh Жыл бұрын
Great video, thank you. Please upgrade your microphone!
@iamvfx
@iamvfx Жыл бұрын
I like it, it sounds like a recording from 1960s 😁
@Alexander_Sannikov
@Alexander_Sannikov Жыл бұрын
Sorry for that. That's why I usually don't voice my videos. I should get an actual mic, but I normally much prefer to program something than to waste time setting it up. UPD: ok, anyway, ordered a mic. Again, sorry for the quality on this one.
@themerpheus
@themerpheus 5 ай бұрын
so its like deep shadow maps but for irradiance?
@Deathend
@Deathend 5 ай бұрын
Totally a coincidence that it looks like a interdimensional ghost celebrating cico de mayo.
@StanislavMarchevsky
@StanislavMarchevsky 2 ай бұрын
Какая крутая концепция.
@StanislavMarchevsky
@StanislavMarchevsky 2 ай бұрын
Для одной 2D картинки обычно используется трилинейная фильтрация 4 соседних пикселя * 2, с соседнего мипмапа (8 texel fetch). В этом случае нужно блендить между собой 4 соседних пикселя внутри текущего кубмапа * 2 (соседний мипмап кубмапа) * 4 соседних кубмапа * 2 (столько же соседнего каскада). Получается 4 * 2 * 4 * 2 = 8 * 8 = 256 тексельфетчей. Вроде и много, с другой стороны, всего в 8 раз больше обычной трилинейной картинки. Прикольно, надо брать)
@StanislavMarchevsky
@StanislavMarchevsky 2 ай бұрын
А, ну разве что, чтоб дойти до самого дальнего каскада, надо проитерировать ближайшие.
@Alexander_Sannikov
@Alexander_Sannikov 2 ай бұрын
нет, оно не так работает. каждый каскад -- это одна выборка в четырёхмерном пространстве. четырёхмерное -- потому что 2д выборка по пространству и 2д по направлению. в самой наивной реализации с четырёхлинейной интерполяцией (это как билинейная-трилинейная-четырёхлиненая) это 2^4=16 выборок на каскад. мипы с этой техникой использовать смысла нет, потому что максимально эффективно память используется на фиксированном отдалении камеры, поэтому запекается один соответствующий этому направлению мип. однако, в пространствах высокой размерности есть гораздо более эффективные методы интерполяции -- вместо 2^N мультилинейной интерполяции, можно использовать симплекс-интерполяцию, для которой нужно N+1 выборок. это становится особенно полезно для интерполяции в многомерных пространствах N>5.
@StanislavMarchevsky
@StanislavMarchevsky 2 ай бұрын
@@Alexander_Sannikov 🤔 Ага, слегка понял, на если уж докапываться - то уже у шейдертое) Кстати, ведь из-за больших пустых областей можно хорошо сжать текстуру, сделав её размер пропорциональным не объему, а приблизить к количеству вокселей вблизи поверхности, что пропорционально площади поверхностей запекаемой сцены. Ещё любопытно, что каскады - это и GI probes, и как reflection cubemap-ы в одном) Интересно, а для достижения шероховатости можно ли обойтись без мультисемплинга или шума? 🤔 Я как-то носился с мыслью о GI, только думал запекать в сферические гармоники (через Фурье). Потом подумал, что это сложно и передумал) Короче, спасибо за видео, познавательно)
@Alexander_Sannikov
@Alexander_Sannikov 2 ай бұрын
@@StanislavMarchevsky в идеале да, объём информации должен скейлиться пропорционально площади, а не объёму. в PoE2 каскады используются для SSAO, SSGI и для screenspace reflections. glossy reflections приближённо реализуются семплингом из низких каскадов (у которых угловое разрешение ниже, чем у высоких). диффузный GI собирается из нулевого каскада (с самым низким угловым разрешением) в SH1 сферические гармоники.
@StanislavMarchevsky
@StanislavMarchevsky 2 ай бұрын
@@Alexander_Sannikov доволен, что думал в правильном направлении :D Буду подглядывать, что у вас интересного) 🤨
@JannikVogel
@JannikVogel Жыл бұрын
Can you share those 8k images you have used in this demo for people who want to reproduce this (without having to capture their own scene first), or could you even upload the entire demo code somewhere?
@Alexander_Sannikov
@Alexander_Sannikov Жыл бұрын
If you want to try this i really recommend replace the volume rendering part with some really simple SDF fractal raymarcher or a sphere. The only reason why i used volume data is because it's obvious that i'm not rendering it in realtime (that'd be much slower). That being said, at some point I will publish the sources.
@PanzerschrekCN
@PanzerschrekCN Жыл бұрын
Looks great! But it is hard to understand how it works. As i understand this, you just render the scene into a tiny cubemap for each point on a regular grid. You have 4 variants of this grid (cascades) - from less detail (spatial) to more detail, less detail grid contains more detail cubemaps, more detail grid contains less detail cubemaps. It is still unclear for me how fetching and mixing from these arrays of cubemaps works.
@Alexander_Sannikov
@Alexander_Sannikov Жыл бұрын
That's right, the blending part is kind of hard to explain in the video, that's why I'm writing an article with a proper explanation. However, the idea is actually very simple: each cubemap simply has an alpha channel, so since each cascade encodes its own depth range, they are always sorted front-to-back, so you just blend them using their alpha channel.
@JannikVogel
@JannikVogel Жыл бұрын
@@Alexander_Sannikov How do you choose these depth ranges? Are they manually chosen or do they "emerge" from the data (due to information not being representable at some angular resolution for example)?
@Alexander_Sannikov
@Alexander_Sannikov Жыл бұрын
@@JannikVogelthe discretization scheme is completely scene-independent. That means the exact same radiance cascades can be used to capture radiance of an arbitrary scene. In the paper I explain in great detail why depth ranges need to increase exponentially for subsequent cascades. If you're on "graphics programming" discord, you can have a look at the draft of my paper that people are reviewing right now.
@simplegamer6660
@simplegamer6660 5 ай бұрын
Damn, what mic are You using? It sounds rad af. I seriously wanna know P.S. Why do i have a feeling that i'm close to being the only one who came here *not* because i thought the video is somehow involved with half-life?:D
@Alexander_Sannikov
@Alexander_Sannikov 5 ай бұрын
Boys, looks like we have a non-half-life person here. I repeat, a person who didn't come to joke about resonance cascades.
@seccentral
@seccentral 5 ай бұрын
the profiler is legit. 👍
@JamesAidanKing
@JamesAidanKing 4 ай бұрын
yea i dont know what any of this is but it looks cool
@homematvej
@homematvej Жыл бұрын
Is there a paper or something?
@Alexander_Sannikov
@Alexander_Sannikov Жыл бұрын
there is now!
@simonl1938
@simonl1938 5 ай бұрын
this is so cool
@RPG_Guy-fx8ns
@RPG_Guy-fx8ns 5 ай бұрын
so basically you bake point clouds to an atlas of cube maps and use it to render imposter pixels
@p0146
@p0146 15 күн бұрын
bro has probably save us
@nates9778
@nates9778 Жыл бұрын
This is cool!
@grimtin10
@grimtin10 5 ай бұрын
yo this is really cool
@iamvfx
@iamvfx Жыл бұрын
Cool stuff! Needs more high quality examples
@pravkdey
@pravkdey 5 ай бұрын
The title sounds like a sleeper agent phrase haha
@J.Carstens
@J.Carstens 5 ай бұрын
Bro sounds like Posy
@TavishMcEwen
@TavishMcEwen 5 ай бұрын
so cool!!
@NeoShameMan
@NeoShameMan Жыл бұрын
It's funny i do something like that to render gi on mali 400 gpu in real time lol, but instead of storing the results, i store the uv of the points, which allows real time updates by simply texture feedback, ie the texture samples itself to resolve gi. I had the cascade idea but didn't implemented it, i didn't knew it would be that efficient. It's on unity's forum under the name exploration of custom diffise rtgi, the technique is called MAGIC for mapping approximation of gi compute 😂. I resolve slowly because i haven't tested how much i can render per frame, so it's one ray per pixel per frame, my computer is dead now lol hasn't finished.
@Alexander_Sannikov
@Alexander_Sannikov Жыл бұрын
can you link a video?
@gaia35
@gaia35 5 ай бұрын
This is why computers were built.
@aladorn
@aladorn Жыл бұрын
thank you for the video...veeery impresive.... please upgrade your mic
@gadirom
@gadirom Жыл бұрын
Ah! So there’s no sphere harmonics, you used cube maps. Still seems like a trickery. I’m looking forward for the paper. Really, O(1) looks like magic.
@Alexander_Sannikov
@Alexander_Sannikov Жыл бұрын
I use spherical harmonics to gather diffuse GI (not in this demo). This demo does not need gathering irradiance, so it only uses parabolic mapping (basically, cubemaps).
@gadirom
@gadirom Жыл бұрын
@@Alexander_Sannikov I see. Thank you.
@perialis2970
@perialis2970 5 ай бұрын
cool, this is a super cool video (not understanding one thing)
@anipodat394
@anipodat394 5 ай бұрын
Half-Life + Hollow Knight = Radiance Cascade
@addmix
@addmix 5 ай бұрын
Sparkles
@Lucsueus
@Lucsueus 5 ай бұрын
Saw this video on my homepage recommendations, no relation to Half-life at all (haven't looked at source/half-life content in forever). To be honest I have no clue what this even means, but I'm very intrigued and I often enjoy watching people passionately explain something that to me is very niche. Thank you for sharing!
@Terszel
@Terszel 5 ай бұрын
yeah
@macratak
@macratak Жыл бұрын
wheres the siggraph paper my man. im tryna read that!!!
@Alexander_Sannikov
@Alexander_Sannikov Жыл бұрын
well now you have it!
@perkele1989
@perkele1989 4 ай бұрын
you didnt even touch the roughness slider :( please, go into more tehcnical detail about how this works ! graphics programmer in me is amazed
@Alexander_Sannikov
@Alexander_Sannikov 4 ай бұрын
now I also wonder what that slider did, because it makes no sense :D
@eucenor4171
@eucenor4171 5 ай бұрын
0:07 global elimination technique 💀
@paranoidPhantom
@paranoidPhantom 5 ай бұрын
Нихуя не понял, но очень интересно)
@oldlifeorig5028
@oldlifeorig5028 5 ай бұрын
Could you please explain it all in a fortnite terms?
@ABWABWABWABWABWABWABWABWABWA
@ABWABWABWABWABWABWABWABWABWA Жыл бұрын
hell yeah
@icaroamorim3123
@icaroamorim3123 7 ай бұрын
I'm still a bit too stupid to understand but I will keep trying until I implement it
@icaroamorim3123
@icaroamorim3123 7 ай бұрын
Just read the full paper again, I can understand it much better now.
@stimpyfeelinit
@stimpyfeelinit Жыл бұрын
neat!!!!!
@КириллКарповский-и2м
@КириллКарповский-и2м 10 ай бұрын
Оп, оказывается это был тизер affliction в PoE)
@Alexander_Sannikov
@Alexander_Sannikov 10 ай бұрын
Как Вам удалось их соединить вообще?
@КириллКарповский-и2м
@КириллКарповский-и2м 10 ай бұрын
​@@Alexander_Sannikov Отвечая на данный вопрос, мне станет стыдно. Сам я мало что понимаю в разработке движка или проектировании/моделировании объектов. Но ваши панели на exilecon и данные ролики посматриваю, чисто из любопытства. Подача материала отличная Тут я увидел схожую модель наслоения частиц на объект, если можно так выразится, с текущей лигой в игре...даже цвета совпадают ) Заглянул сюда после вашего подкаста у CARDIFF'а. К слову, было бы отлично, если бы у вас получилось периодически организовывать с ним, или другими стримерами, такие подкасты. Хотя бы раз в полгода У зарубежной аудитории есть Крис и Джонатан, а у нас будете вы.
How Big Budget AAA Games Render Clouds
10:45
SimonDev
Рет қаралды 281 М.
How do Major Video Games Render Grass?
9:33
SimonDev
Рет қаралды 418 М.
Каха и дочка
00:28
К-Media
Рет қаралды 3,3 МЛН
Support each other🤝
00:31
ISSEI / いっせい
Рет қаралды 75 МЛН
The World Depends on 60-Year-Old Code No One Knows Anymore
9:30
Coding with Dee
Рет қаралды 1 МЛН
Real time optical wave field propagation
8:14
Alexander Sannikov
Рет қаралды 8 М.
Uncharted inspired level Blockout : Level Design
9:35
Eryk !
Рет қаралды 49 М.
EA Won’t Sell This Game - So I Hacked It
18:31
Nathan Baggs
Рет қаралды 300 М.
Radiance Caching for Real-Time Global Illumination
33:54
SIGGRAPH Advances in Real-Time Rendering
Рет қаралды 53 М.
I Created a Game Engine Just to Optimise This
4:50
Vercidium
Рет қаралды 1,1 МЛН
A Game Engine Built For Optimisation
5:16
Vercidium
Рет қаралды 250 М.
A simple procedural animation technique
8:31
argonaut
Рет қаралды 505 М.