Skip to content

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

86 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Noice

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!

Sandbox Modes (Object, Text, Paint)

Image

Image

Image

Screenshot Feature

Collects and combines frames to visualize pixel movement (using e.g. sum of absolute differences).

Image

Demo Video

Noice.mp4

How to Build and Run

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

About

Graphics effect using noise movement

Resources

Stars

Watchers

Forks

Releases

Contributors

Languages