Mike Turitzin's banner
Mike Turitzin's profile picture

Mike Turitzin

@miketuritzin7,180 subscribers

Building a game/engine based on signed distance fields ~ Past: rendering lead @figma, indie VR dev, founder @workflowy, search backend @ Google, Quake modder

Shorts

Playing around with a "tunnel gun" that can open a tunnel in front of you that can be looked into or moved through. This type of thing is really simple in my engine - just spawn an SDF capsule subtraction that is locked to the player's view.

Playing around with a "tunnel gun" that can open a tunnel in front of you that can be looked into or moved through. This type of thing is really simple in my engine - just spawn an SDF capsule subtraction that is locked to the player's view.

281,995 просмотров

Experimenting with a SDF material blend function that is "stamps" the material volumetrically. The previous function I was using (which is the common one) blends the material around the surface influence area, and so would have no effect below ground.

Experimenting with a SDF material blend function that is "stamps" the material volumetrically. The previous function I was using (which is the common one) blends the material around the surface influence area, and so would have no effect below ground.

154,165 просмотров

Metallic materials are now officially supported in my engine. Previously, I hacked this for some videos by interpreting inverse "roughness" as "metallic", but obviously that isn't a great long-term solution :)

Metallic materials are now officially supported in my engine. Previously, I hacked this for some videos by interpreting inverse "roughness" as "metallic", but obviously that isn't a great long-term solution :)

38,349 просмотров

Cleaning up SDF physics objects with a portable hole. Oddly satisfying.

Cleaning up SDF physics objects with a portable hole. Oddly satisfying.

108,178 просмотров

I too use the sphere making algorithm

I too use the sphere making algorithm

67,316 просмотров

My engine doesn't currently support baking "metallic" into the SDF, but I can tweak a number in the shader to make everything metal 🤘🤘 I feel like I can hear a "clank" when shooting this stuff.

My engine doesn't currently support baking "metallic" into the SDF, but I can tweak a number in the shader to make everything metal 🤘🤘 I feel like I can hear a "clank" when shooting this stuff.

67,119 просмотров

Prowling around the SDF yards after dark, desecrating spheres with reckless abandon.

Prowling around the SDF yards after dark, desecrating spheres with reckless abandon.

35,818 просмотров

Sparse allocation/rendering of SDF bricks is now working! The pipeline is fully GPU-driven - a series of compute shaders that manages brick allocation/baking in a 3D texture atlas, followed by draw-indirect for rendering. Still a lot more work to do, including automatic LOD.

Sparse allocation/rendering of SDF bricks is now working! The pipeline is fully GPU-driven - a series of compute shaders that manages brick allocation/baking in a 3D texture atlas, followed by draw-indirect for rendering. Still a lot more work to do, including automatic LOD.

38,926 просмотров

This article is a great dive into the nuts and bolts of creating one of those tiny (but neat) shaders. Both in terms of algorithms and GLSL character minimization!

This article is a great dive into the nuts and bolts of creating one of those tiny (but neat) shaders. Both in terms of algorithms and GLSL character minimization!

13,248 просмотров

Moving to PBR shading (with baked roughness) is already making things look a lot more "real", even with very primitive lighting. Coming next is imaged-based lighting for diffuse+specular, SSAO, and shadows. More details: 1/

Moving to PBR shading (with baked roughness) is already making things look a lot more "real", even with very primitive lighting. Coming next is imaged-based lighting for diffuse+specular, SSAO, and shadows. More details: 1/

16,726 просмотров

Baking the SDF collision mesh sparsely via running marching cubes on world-space chunks. Each chunk's mesh is added to the physics sim as a static mesh body. When an SDF op is set to "dynamic" a dynamic body is created (and the op is longer included in the collision mesh).

Baking the SDF collision mesh sparsely via running marching cubes on world-space chunks. Each chunk's mesh is added to the physics sim as a static mesh body. When an SDF op is set to "dynamic" a dynamic body is created (and the op is longer included in the collision mesh).

18,019 просмотров

Ran across this great article on sampled SDFs that has *great* interactive WebGL illustrations that work really well for building intuition on how this works. This technique works for SDF-based text rendering or baking of 3D geometry like in my project.

Ran across this great article on sampled SDFs that has *great* interactive WebGL illustrations that work really well for building intuition on how this works. This technique works for SDF-based text rendering or baking of 3D geometry like in my project.

17,799 просмотров

Tracing a ray against the BVH and highlighting the leaves that are tested. (This is an "any hit" test for demonstration purposes! Next vid is shows closest-hit raycast.)

Tracing a ray against the BVH and highlighting the leaves that are tested. (This is an "any hit" test for demonstration purposes! Next vid is shows closest-hit raycast.)

18,486 просмотров

Added "corner radius" / rounding, which is easy to apply to any SDF shape that has an exact (outer) distance function - just subtract the radius from the scale and then offset the computed distance by the same radius. So you get rounded shapes "for free" with 1 subtraction. 1/

Added "corner radius" / rounding, which is easy to apply to any SDF shape that has an exact (outer) distance function - just subtract the radius from the scale and then offset the computed distance by the same radius. So you get rounded shapes "for free" with 1 subtraction. 1/

11,456 просмотров

Another large speedup to SDF brick rendering (-20-40%) that is obvious in hindsight: When baking bricks, calculate the texel bounds that actually contain the surface, and then rasterize/ray-march just those bounds rather than the full brick bounds. 1/

Another large speedup to SDF brick rendering (-20-40%) that is obvious in hindsight: When baking bricks, calculate the texel bounds that actually contain the surface, and then rasterize/ray-march just those bounds rather than the full brick bounds. 1/

11,310 просмотров

Videos

miketuritzin's profile picture

I built a sculpture for Burning Man.

Mike Turitzin

11,094 просмотров • 3 месяцев назад

miketuritzin's profile picture

Herding cubes.

Mike Turitzin

26,638 просмотров • 1 год назад

miketuritzin's profile picture

My foes when I confront them

Mike Turitzin

14,650 просмотров • 7 месяцев назад

Больше нет контента для загрузки