正在加载视频...

视频加载失败

Volumetric fog (AERO) + GPU wave simulation. -- Interactive in Unity 6, URP. ✨ Already possible, you just need the texture.

69,490 次观看 • 3 个月前 •via X (Twitter)

13 条评论

Astounding Visions 的头像
Astounding Visions3 个月前

Wow, how?! Any way we can get a sample scene in Aero?

Mirza Beig 的头像
Mirza Beig3 个月前

> Wave sim outputs texture. > AERO has input for texture. 💡 A perfect match. 🫂

BlankBlinkBlank (Cody) Game dev scatterbrained 的头像
BlankBlinkBlank (Cody) Game dev scatterbrained3 个月前

Wooow

Dark Light 的头像
Dark Light3 个月前

Wow is this on asset store?

Mirza Beig 的头像
Mirza Beig3 个月前

AERO has already been able to do this, I'm just supplying the output of a wave simulation as the input texture.

ZandyXR ᯅ 的头像
ZandyXR ᯅ3 个月前

ohhhhh nice work!

CYBRDELIC (anti-technototalitarian/acc) 的头像
CYBRDELIC (anti-technototalitarian/acc)3 个月前

Impressive🫡

Rohan Arun 的头像
Rohan Arun3 个月前

Hey Super, build a single-page interactive Three.js app demonstrating volumetric fog (AERO-style) combined with a real GPU wave simulation, modeled on the Unity 6 URP demo referenced in the source post. The visitor's first action on load is to see a calm dark-blue water plane under raymarched volumetric fog with a single diagonal sun shaft; within two seconds an auto-generated ripple train is propagating across the water and visibly bending the fog density over each crest. Dragging the orbital camera (left-drag rotate, wheel zoom, right-drag pan) immediately reveals parallax between the wave height field and the fog volume. Clicking or tapping the water drops a new ripple source at the cursor world position; multiple simultaneous sources interfere coherently because they all feed the same ping-pong wave solver. Pin Three.js r161 from a CDN as the only 3D runtime; do not pull in React, Vue, Tailwind, or any other UI framework. The water surface is a 240×240-segment PlaneGeometry whose vertex shader displaces Y by sampling a 512×512 RG16F texture that is updated every frame by a full-screen quad shader solving the 2D wave equation (current = 2*previous - older + c²·∇²previous - damping·(previous - older)) using a ping-pong between two WebGLRenderTargets; new ripples are written into the current state by stamping a Gaussian bump at the cursor UV each time the user clicks or drags. The volumetric fog is rendered as a full-screen post pass after the scene: a raymarcher walks from the camera through the view-space depth buffer, accumulating scattering density, with density modulated by the same wave texture sampled at world-space (x,z) so fog thickens over wave crests. Anisotropic forward scattering is approximated with a clamped Henyey-Greenstein phase function (g ≈ 0.7) keyed off the dot product between the view ray and a user-controlled sun direction vector. The sun shaft appears as a soft cone of warm light whose intensity falls off with both density and view-sun angle.

abyssmadeuspart 的头像
abyssmadeuspart3 个月前

ignoring all the lighting, how much ms does it take for sim/ray marching?

Mirza Beig 的头像
Mirza Beig3 个月前

It depends on the march steps and simulation resolution.

Neko Legends 的头像
Neko Legends3 个月前

you're an artist

Thakur 的头像
Thakur3 个月前

GPU simulation ?

Mirza Beig 的头像
Mirza Beig3 个月前

Yes, it's a wave(s) simulation- via a compute shader.

相关视频