Visualize 3D objects purely through white noise pixel movement.
Interactive sandbox app built around this graphics effect. Supports loading custom 3D models in OBJ format via drag-and-drop.
Programmed in C++17 using OpenGL, GLFW, ImGui and various utility libraries. Dependencies are fetched automatically on configure/build (see below).
The flowfield is generated based on UV coordinates. The final per pixel flow vector depends on: sampled object tangent, angle/distance to perspective camera, current object/camera movement, accumulated rest from previous frames. This creates the illusion of noise pixels sticking to and moving smoothly along the object surface.
Any 3D game that doesn't heavily rely on textures (or UI) could potentially use this effect. I recommend precomputing flow maps as it's rather expensive to generate. The effect itself is fairly cheap using only one vert/frag pass and two compute shader passes. I would love to see games use this effect!
Collects and combines frames to visualize pixel movement (using e.g. sum of absolute differences).
Noice.mp4
Tested on Linux and Windows (MSVC and MinGW). Uses Ninja build system by default.
git clone https://github.com/erikrl2/Noice.git
cd Noice
cmake --preset ninja
cmake --build build/ninja --config Release
build/ninja/Release/Noice


