OctaveEngine Nature

OctaveEngine Nature/製品詳細 - SandSurface

SandSurfaceの概要

SandSurfaceは、ゲーム向けの砂の表現を行うシミュレーション・レンダリングシステムです。物体による砂の変形をリアルタイムに計算しま すので、砂地に残る足跡や、砂を崩す/盛り上げるといった操作が可能です。また、砂の崩落現象や、風による模様(風紋)の生成もリアルタイムに計算しま す。 今までのゲームでは実現できなかった、「いじって遊べる」砂浜や砂場が作成できます。

SandSurfaceの特徴

リアルな砂の動き

独自の砂の物理モデルによって、砂の堆積、急な傾斜の砂の崩落、物体の衝突による砂の移動といった現実と同じような砂の動きをリアルタイムに計算す ることができます。 砂の崩落や風紋といった現象では、テクスチャ座標の移流によるテクスチャアニメーションを行うことで、砂の流れを計算解像度以上の細かさで表現していま す。
いくつかのパラメータを設定することで、さらさらとした流れからねっとりとした流れまで、砂の崩落の性質を柔軟に制御できます。

オブジェクトとの相互作用

専用の相互作用検出オブジェクトと組み合わせることで、ゲームキャラクターとの接触で砂を変形させる、といったインタラクティブな表現ができます。キャラクターの動きに合わせて相互作用検出オブジェクトを移動させるだけで、砂の衝突と変形が自動的に計算されます。

相互作用検出オブジェクトを組み合わせて熊手やトンボといった形状を作り、砂に模様を描いたり、山を作ったりできます。

オブジェクトとの相互作用イメージオブジェクトとの相互作用イメージ

棒で砂面に絵を描くことも出来ます。

オブジェクトとの相互作用イメージオブジェクトとの相互作用イメージ
動的LOD(レベル・オブ・ディティール)

SandSurfaceの標準の描画機能(Renderer)はジオメトリの動的LOD処理を行っており、凹凸の激しい部分は細かく、そうでない部 分は荒くポリゴンを生成してレンダリング負荷の低減を図っています。同時に、計算点の単位で法線を動的生成することにより、少ないジオメトリで十分に詳細 な砂表面のディティール表現を実現しています。

動的LOD動的LOD

SandSurfaceの機能リスト

シミュレーション部
(SandSurfaceBeat)
砂の崩落計算
  • パラメータによる挙動の調整
  • テクスチャによる流れの表現
    • 物体による砂の変形
      • 相互作用検出オブジェクトによる衝突と変形の計算
      • 風による風紋の発生の計算
標準のレンダリング部
(SandSurfaceRenderer)
凹凸に応じたポリゴン生成(LOD)
法線・ハイトマップを用いたシェーディングによる微細な凹凸の表現