立ち上る煙の流体シミュレーションを作成します。ナビエ・ストークス方程式を簡略化した2D流体計算を使用して、リアルな煙の動きを実現します。流体計算による煙シミュレーションを作成しました。このコードの主な特徴: **流体計算の実装** - ナビエ・ストークス方程式を簡略化した2D流体シミュレーション - 拡散、移流、投影の各ステップを実装 - 非圧縮流体の条件を満たすための投影処理 **物理的効果** - **浮力**: 温度の高い部分が上昇する効果 - **粘性**: 流体の粘り気による拡散 - **風力**: 横方向の流れを生成 - **減衰**: 時間経過による密度の減少 **視覚的表現** - 温度に基づく色変化(赤→黄→白のグラデーション) - リアルタイムレンダリング - マウスドラッグで煙を発生 **操作方法** - マウスをドラッグして煙を発生させる - スライダーで物理パラメータを調整 - リセットボタンでシミュレーションをクリア このシミュレーションは、実際のCGソフトウェアで使用される流体計算の基本原理を実装しており、煙の自然な立ち上がりや渦巻きの動きを再現しています。
煙の持続時間を長くし、量も増やすように調整します。煙の持続時間と量を大幅に改善しました。主な変更点: **持続時間の改善** - 密度減衰率を0.998から0.9995に変更(煙がより長く残る) - 温度減衰率を0.995から0.999に変更(浮力効果も長持ち) - 背景フェード効果を弱く(0.1→0.05)して煙の軌跡を保持 **煙の量と密度の増加** - 密度追加量を100から300に増加 - 温度追加量を1.0から2.0に増加 - 煙発生範囲を5×5グリッドに拡大(距離に応じて強度調整) - 速度影響範囲も3×3グリッドに拡大 **視覚的改善** - より豊かな色表現(温度による色変化を強化) - 密度表示を0.8倍に調整して自然な濃淡を実現 これで煙がずっと長く画面に残り、より豊かで立体的な煙の動きを楽しめるようになりました。マウスをドラッグするとより濃厚な煙が発生し、自然に立ち上がって流れていく様子が観察できます。
エラーを修正します。buoyancySliderの要素が見つからないためです。エラーが修正されました。resetButtonのイベントリスナーが抜けていたのが原因でした。 これで以下の機能が正常に動作します: - **粘性スライダー**: 流体の粘り気を調整 - **密度減衰スライダー**: 煙の持続時間を調整 - **風力スライダー**: 横方向の風の強さを調整 - **浮力スライダー**: 上昇力の強さを調整(新機能) - **リセットボタン**: シミュレーションをクリア 煙は今度こそ自然に上昇し、マウスドラッグで煙を発生させて、各パラメータで動きを調整できるようになりました。
浮力を弱くして、煙がより自然に動くように調整します。浮力を大幅に調整しました。主な変更点: **浮力の調整** - 浮力スライダーの範囲を0.5-3(デフォルト1.2)に変更 - 密度による浮力係数を0.01から0.003に減少 - 密度による浮力に上限(50)を設定して暴走を防止 - 温度による浮力係数を0.5から0.1に減少 **環境気流の調整** - 環境の上昇気流を0.3から0.1に大幅減少 **より自然な動作** - 煙は穏やかに上昇し、画面に長く留まる - 浮力が強すぎて即座に消えることがなくなる - より現実的な煙の動きを実現 これで煙がゆっくりと自然に立ち上がり、適度な時間画面に残るようになります。浮力スライダーで微調整も可能です。
**画面サイズの変更** - キャンバスを600x450ピクセルに変更 **計算解像度の向上** - グリッドサイズを100x75から150x112に増加(1.5倍の解像度) - より細かい流体計算が可能 **粘性の調整** - 初期値を0.001から0.01に増加 - 煙がより自然に拡散し、滑らかな動きを実現 **計算精度の向上** - 拡散計算の反復回数を20から30に増加 - 対角近傍も考慮した6近傍拡散に変更 - より安定した計算結果 **効果** - より細かいディテールの煙の動きが表現可能 - 粘性により煙が自然に拡散 - 高解像度で滑らかな流体シミュレーション これでより詳細で自然な煙のシミュレーションが楽しめるようになりました。計算負荷は少し上がりますが、視覚的品質が大幅に向上しています。