Тёмный

Caustics (Real-time Ray Tracing & Physics) 

Grant Kot
Подписаться 6 тыс.
Просмотров 3,8 тыс.
50% 1

~30 FPS on Intel 8700K & RTX 2080. Caustics is a lighting phenomenon usually caused by curved surfaces, where the light focuses into super bright areas. You can see its effect when I attract the liquid into a ball or you can see some reflected highlights on the temple walls. To get these results, I implemented part of the paper Eikonal Rendering: resources.mpi-i...

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

 

22 сен 2024

Поделиться:

Ссылка:

Скачать:

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

Добавить в:

Мой плейлист
Посмотреть позже
Комментарии : 19   
@GrantKot
@GrantKot 4 года назад
This is a small update to the Eikonal rendering where the refractions should be a bit sharper and I added back the sea foam. You can also start seeing some lighting caustic effects. I still plan to improve the caustics even further.
@boxicknowsbest9100
@boxicknowsbest9100 4 года назад
This is looking so good! love seeing the incremental improvement updates!
@GrantKot
@GrantKot 4 года назад
Thanks! Happy to hear you like this one!
@st.michaelthearchangel7774
@st.michaelthearchangel7774 4 года назад
Looks like a bunch of crazy jello cubes.
@TE-qu4jz
@TE-qu4jz 4 года назад
Fantastic! Keep up the great work :)
@alan83251
@alan83251 4 года назад
The physics run on the GPU? What kind of performance improvement could potentially be facilitated by the upcoming GTX 30 cards?
@GrantKot
@GrantKot 4 года назад
The physics are running on the CPU. My computer is fairly average: 8700K, RTX 2080. You’d get much better performance even on a current gen Threadripper and 2080 Ti build. And there is still room for optimizations moving it to DirectX 12 and taking advantage of multi-engine/async compute among other things. I imagine the new Nvidia and AMD cards will allow for further performance improvements as well but I don’t know anything the public doesn’t already know.
@channelforadventures8583
@channelforadventures8583 4 года назад
You should update to a R9 3900X since those prices have dropped to under 400 and get yourself the 12c/24t part specifically because the consoles are getting Zen2 and the split chiplet + IO architecture will help in optimizing for the platform better? That said excellent work!
@GrantKot
@GrantKot 4 года назад
Thanks! I saw the price drop but I'm actually thinking of waiting for the next generation of CPUs & GPUs before upgrading my desktop. I may need to do a whole build, since I would have to replace the motherboard as well, and I currently have really slow memory (2400mhz). Regarding consoles, I'm hoping to get my game a little farther along and be able to apply to the ID@Xbox program in a month or two. Then I might be able to optimize directly on the devkit.
@LimitedWard
@LimitedWard 4 года назад
Not sure if this is possible, but have you considered rendering each voxel as a metaball instead? Might make the water look a lot more droplet-like.
@GrantKot
@GrantKot 4 года назад
I'm planning on trying this out with the new Mesh Shaders feature that is available in DirectX 12 Ultimate. In addition to spheres, could also render actual geometric grass and other geometric blocks. And it will potentially introduce opportunities to optimize with frustum culling or LOD (render cubes from far away, upres to high-poly blocks up close).
@Psychlist1972
@Psychlist1972 4 года назад
Grant, can you talk a bit about what you did this in? Is it all code? If so, which language? Writing right to DirectX or OpenGL? Using RTX? Really curious about what's under this. I remember what you did on the Windows Phone and Kinect from way back :)
@GrantKot
@GrantKot 4 года назад
Hi Pete! This is currently using DirectX 11.1. I started from the SimpleInstancing sample from Xbox-ATG. I modified it to take in the affine transformation matrices my simulation generates since the physics uses Affine Particle-in-Cell/MLS-MPM. This allows the particles to shear instead of just pure position and rotation. Then I added in the PBR shader from DirectXTK but still needed transparency. So I then started writing to UAVs to voxelize the particles into 3D textures at the same time as rasterizing them to position and normal buffers for later deferred rendering. Then I do some light propagation on these 3D UAVs/volume textures. Then I do the final pass, using the position and normal buffers to come up with reflection/refraction rays and then march them through the volume using techniques from the paper Eikonal Rendering. It's kind of like hybrid rasterization & raytracing but this doesn't really need RTX or DXR since I'm not tracing triangles. I can also use the volume mipmaps to simulate blurrier reflections/refractions. I have not had to deal with denoising or temporal light accumulation. I do plan on porting over to DX12U (still learning) to take advantage of other features though. I'm curious to see if I can improve the performance by stacking the rasterization and lighting compute on top of each other (multi-engine).
@Psychlist1972
@Psychlist1972 4 года назад
@@GrantKot Super cool! So, desktop C++ app, I assume (not an Xbox app (given the mouse/kb) or a UWP app)
@GrantKot
@GrantKot 4 года назад
@@Psychlist1972 Yeah, currently desktop C++, but definitely thinking about the new Xbox as well :) I'm planning to apply once my game concept is fleshed out a little more.
@wasplay
@wasplay 4 года назад
@@GrantKot What kind of game is it going to be ?
@GrantKot
@GrantKot 4 года назад
@@wasplay I have a few ideas but it's not fully settled yet. There will probably be a strong elemental bending component and you can choose what material you're attracting or dragging. There might be some combat and building (sharing of levels), and I am also currently exploring co-op or local multiplayer. I think the system will lend itself well to user created content, since everything is dynamic and there is no need to bake anything like shadows or global illumination. User level files will be pretty small, this "level" in the video is just 0.5MB and can probably be reduced even further with compression.
@candziiss3012
@candziiss3012 4 года назад
Dude you got to talk
Далее
How I Use Mesh Shaders
1:10
Просмотров 3,7 тыс.
Ray Tracing: How NVIDIA Solved the Impossible!
16:11
Просмотров 795 тыс.
CGI vs Practical - Can you tell the difference?
11:22
1 MILLION FPS - The Slow Mo Guys
18:38
Просмотров 21 млн
6 Months of Voxel Physics Engine Optimizations
8:17
Просмотров 46 тыс.
Прыгаем в чёрную дыру (ScienceCLic)
14:53
Liquid Layers
6:05
Просмотров 13 тыс.
4K, 6 Months of Voxel Physics Engine Optimizations
8:17
Filming the Speed of Light at 10 Trillion FPS
13:06
Просмотров 41 млн
Why Doom is Awesome: Binary Space Partitioning
26:25
Просмотров 1,1 млн