Show HN: Make your own real-time 3D blob using physically based rendering(blobmixer.14islands.com)
blobmixer.14islands.com
Show HN: Make your own real-time 3D blob using physically based rendering
https://blobmixer.14islands.com/
https://blobmixer.14islands.com/
This is basically a debug visualiser for all the material properties of MeshPhysicalMaterial in Three.js with some nice looking examples that you can remix.
The key ingredient for most of these blobs is to re-calculate normals after displacing the vertices in the vertex shader.
I had to use normal React state changes instead of transient updates to sync material properties with the debug GUI. This caused significant scroll jank in the gallery carousel at first. The solution was to use react@experimental with concurrent mode - it really made a huge difference with almost no frame drops while scrolling through the gallery.
Built using three, react-three-fiber, react-spring, react-use-gesture, @react-three/drei, troika-three-text, @react-three/xr, react-three-gui, @react-three/postprocessing, r3f-perf, zustand. Environment map photo by Jón Ragnarsson. Thank you all