レイマーチングによるメタボール

2.0
1.0
0.0
0.0
-5.0
有効

WebGLを使用して2つの球体が融合したメタボールをレイマーチング法で描画

主な特徴は以下の通りです:
レイマーチング法:3Dシーンの各ピクセルから視線(レイ)を飛ばし、メタボールの表面との交点を探す手法を実装しています。
メタボールの表現: 2つの球体が時間とともに動きながら融合します 各球体からの距離を基に、滑らかに融合する表面を生成しています thresholdの値を変更することで融合の度合いを調整できます
シェーディング: 法線ベクトルを計算して、拡散光と鏡面反射を使った簡単な照明効果を実装 青系の基本色に光沢効果を加えています
アニメーション: 時間経過とともに2つの球体が動くようになっています requestAnimationFrameを使用して滑らかなアニメーションを実現
このHTMLファイルをブラウザで開くと、青い色のメタボールが画面中央で滑らかに動きながら融合する様子が表示されます。WebGLが対応しているほとんどのモダンブラウザで動作します。

2つの球体のメタボールを制御するためのスライダーを追加

UIコントロールの追加: 球体間の距離を調整するスライダー(0.5〜4.0) メタボールの閾値を調整するスライダー(0.5〜2.0) カメラのX、Y、Z位置を調整するスライダー アニメーションのオン/オフを切り替えるチェックボックス
シェーダーの改良: ユニフォーム変数を追加して、UI操作によるパラメーター変更を反映 球体の配置を距離パラメーターに基づいて動的に計算 アニメーション無効時には球体が固定位置になるよう修正
スタイリングの改善: 見やすいUIレイアウトを追加 スライダーと現在の値を表示するエリアを配置 シンプルで操作しやすいデザイン
動作の変更: カメラ位置を変更することで、メタボールを異なる角度から観察可能に 閾値を変更すると、メタボールの融合の度合いが変化 距離パラメーターで2つの球体間の基本距離を調整可能
このWebアプリケーションでは、スライダーを使って各パラメーターをリアルタイムで調整でき、メタボールの様々な表現を探索できます。アニメーションを無効にすると、静止した状態でパラメーターの効果を確認しやすくなります。