meta-caustics

Real-Time Rendering of Deformable Glass with Hand Interaction

複数の球が滑らかに融合するガラス状オブジェクト(メタボール)を通した光の屈折と、床に落ちる虹色の集光模様(コースティクス)をリアルタイムに描画するインタラクティブ作品である。C++とOpenGL/GLSLで実装した。
一般の条件で正確にコースティクスを求める場合は、光源から大量のレイを飛ばして統計的に集光を推定するフォトンマッピングが一般的だが、ノイズが発生しやすく、計算量も増大するためリアルタイム描画は困難である。本作では「平面の床・点光源・メタボール」という限定的な条件のもと、床の各点から光源へ逆向きにレイを飛ばし、ガラス内での屈折を近似して追跡を行い、集光度を決定論的に計算する。これにより、GPU環境で、ノイズのない精細なコースティクスをフルHD・60fpsで安定して描画できる。
ハンドインタラクションでは、MediaPipeを用いて手の関節をリアルタイム検出し、握り具合に応じてメタボール同士の反発と引き寄せを制御する。手を開くと広がり、握ると集まり、回すと渦を巻くなど、手にまとわりつくような動きを体験できる。

An interactive piece that renders, in real time, the refraction of light through glass-like metaball objects, formed by smoothly blending multiple spheres, and the rainbow-colored caustic patterns that the light casts onto the floor.
It is implemented in C++ using OpenGL and GLSL.

In general, physically accurate caustics are computed using techniques such as photon mapping, which statistically estimates caustics by tracing large numbers of photons from the light source. However, these methods tend to introduce noise and require significant computation, making real-time rendering difficult.
In this work, under the constrained conditions of a planar floor, a point light source, and metaball geometry, rays are traced backward from each point on the floor toward the light source. Refraction within the glass object is approximated and tracked deterministically to compute light concentration.
This approach enables stable real-time rendering of noise-free, high-resolution caustics at 60 fps in Full HD on GPU-capable systems.

For hand-based interaction, MediaPipe is used to detect hand joints in real time, and the degree of grip controls attraction and repulsion between the metaballs.
Opening the hand causes the objects to spread apart, while closing it pulls them together; rotating the hand produces a swirling motion, creating an experience in which the metaballs appear to respond organically to the user's gestures.