Profile avatar
theallenchou.bsky.social
Principal Game Programmer at Naughty Dog from Taiwan. Math. Physics. Graphics. AI. Bunnies 🐰 Gamedev Blog: http://blog.allenchou.net Discord: http://discord.gg/MEGuEFU MudBun: https://longbunnylabs.com/mudbun/
119 posts 525 followers 912 following
Regular Contributor
Active Commenter

Ray-marched surface, take 2. Not sure why it's so much brighter than regular meshing. Even dual contouring can't beat this because it's the ground truth. Voxel density affects the proxy mesh complexity but doesn't change the visuals. #MudBun #MadeWithUnity #GameDev #VFX

Take 1 was in 2021, and this time I have some ideas to make it more performant.

Ray-marched surface, take 2. Not sure why it's so much brighter than regular meshing. Even dual contouring can't beat this because it's the ground truth. Voxel density affects the proxy mesh complexity but doesn't change the visuals. #MudBun #MadeWithUnity #GameDev #VFX

Another one. Blending between surface nets or dual contouring and intermediate dual quads never gets old. The mesh is constructed & animated by sampling triangle noise with scrolling spherical coordinates. #MudBun #GameDev #MadeWithUnity #VFX

Another demo of blending between surface nets and intermediate dual quads. #MudBun #GameDev #MadeWithUnity #VFX

Quick & easy way to get dithered transparency to look more convincing on overlapping transparent objects: throw unique object hash/ID into the mix for noise seed. #GameDev #MadeWithUnity

Transparency blend & splat size blend. #MudBun #GameDev #MadeWithUnity #VFX

Sometimes it's desired to jitter splat orientation. With high-frequency noise though, the normals might appear to be too noisy. A blend back to the original normals can help, in the same vein as normal transfer techniques for foliage in games. #MudBun #GameDev #MadeWithUnity #VFX

More documentary of the shelved experimental ray-traced voxel render mode. Splat size was used as a proxy for rendered voxel size. Had to speed up the video to fit within bsky's limit. #MudBun #GameDev #MadeWithUnity #VFX

Sparse hierarchical voxel nodes are used to narrow down which voxels to generate triangles for. I use branching factors (8, 8, 4), so one highest-level node, or "chunk", contains to 256 voxels. Only a node that intersects the SDF zero surface is further branched. #MudBun #GameDev #MadeWithUnity #VFX

The surface nets & dual contouring algorithms both involve an intermediate step that produces voxel quads and a final step that offsets vertices towards the SDF zero isosurface. Naturally...I'd want to try blending between the two steps. #MudBun #GameDev #MadwWithUnity #VFX

Demonstrating varying voxel density, render modes, and splat options. #MudBun #GameDev #MadeWithUnity #VFX

Using each splat's center to sample a 3D Perlin noise gradient for offset creates this interesting effects as the sphere brush is moved around. #MudBun #GameDev #MadeWithUnity #VFX

SDF modeling is cool because you can just move the mouth around like this. #MudBun #BoingKit #GameDev #MadeWithUnity #VFX

Overlay blend mode for dye brushes. More artistic controls. #MudBun #GameDev #MadeWithUnity #GameDev

Dye brush blend modes are coming in MudBun v1.6.52. #MudBun #GameDev #MadeWIthUnity #VFX

But wait, what if we can also rotate/twist the normal and normal coordinates along the curve before feeding them to the noise function? #MudBun #MadeWithUnity #GameDev #VFX

A different set of inputs to feed into Perlin noise is the normal, binormal, and tangential coordinates along a curve. Rolling the tangential coordinate can create this interesting noise flow along a curve. #MudBun #MadeWithUnity #GameDev #VFX

Carterian vs. spherical noise. Under the hood is the same multi-octave Perlin noise, but the scrolling inputs are Cartesian coordinates vs. spherical coordinates. #MudBun #MadeWithUnity #GameDev #VFX

Unity doesn't give us the ability to skew/shear. No matter, nothing a nested intermediate game object can't solve. And that's exactly how my first Unity asset Squash & Stretch Kit achieved omni-directional squashing-and-stretching effects. #GameDev #MadeWithUnity #VFX

Textured splat, size jitter, color jitter, rotation jitter, camera facing, and screen-space flattening are all you need for some nice-looking SDF-based bushes. #MudBun #MadeWithUnity #GameDev #VFX

I forgot what prompted the development of the decal render mode, but I remember twisting the existing SDF data geared towards efficient meshing into something suitable for generating decals was a fun exercise. #MudBun #GameDev #MadeWithUnity #VFX

Ray-traced voxels was a fun experiment but wasn't optimized enough. Maybe now that MudBun's fully ported over to shader graph, I can find time to revisit the idea. This time for both URP and HDRP 🤔 #MudBun #MadeWithUnity #GameDev #VFX

Finally, MudBun's support for Unity's shader graph is fully complete. When the next MudBun update (v1.6.51) rolls out, these input nodes will be available for use in Unity 2021, 2022, and 6. #MudBun #MadeWithUnity #GameDev #VFX

In the middle of a Slack huddle. Slack: Re-authenticate to avoid interruption. Me: *clicks re-authenticate* Slack: *cuts me out of the huddle before refreshing itself to show the home screen*

The undo-redo dance. Like I said, I can't animate for the life of me, so I had to use...unconventional approaches. #MudBun #BoingKit #MadeWithUnity #GameDev #VFX