Upgrade to Pro — share decks privately, control downloads, hide ads and more …

グランブルーファンタジー『Project Re:LINK』におけるリアルタイム雲表現の研究と技術紹介!

Cygames
February 23, 2017

グランブルーファンタジー『Project Re:LINK』におけるリアルタイム雲表現の研究と技術紹介!

2017/02/18 GAME CREATORS CONFERENCE'17

Cygames

February 23, 2017
Tweet

More Decks by Cygames

Other Decks in Technology

Transcript

  1. ©  Cygames,  Inc. ⼤大阪Cygames • 設⽴立立⽇日 • 2015年年4⽉月1⽇日 • 所在地

    • グランフロント⼤大阪 • 事業内容 • ハイエンドゲームの開発
  2. ©  Cygames,  Inc. 平⾯面雲を形作る⽅方法 • 雲を形作る⽅方法はいくつか存在します。 • 今回は Volumetric  Noise

     Textureを⽤用いた ⼿手続き型(プロシージャル)雲 ⽣生成法を 研究しました。
  3. ©  Cygames,  Inc. 平⾯面雲を形作る⽅方法 研究にあたって、Guerrilla  Games社の The  Real-‐‑‒time  Volumetric  Cloudscapes

     of   Horizon  Zero  Dawn という資料料を参考にしました。 http://www.slideshare.net/guerrillagames/the-‐‑‒realtime-‐‑‒ volumetric-‐‑‒cloudscapes-‐‑‒of-‐‑‒horizon-‐‑‒zero-‐‑‒dawn
  4. ©  Cygames,  Inc. 平⾯面雲を形作る⽅方法 • 通常の Noise  Texture  に 奥⾏行行き(W軸)が増えた

    ノイズテクスチャ。 • 雲を形作る際の 基準となります。 イメージ図 Volumetric  Noise  Textureとは? U
  5. ©  Cygames,  Inc. Perlin Noise • Ken  Perlin⽒氏が開発したノイズ。 • 綺麗麗な雲模様を⽣生成することが

    可能です。 • 左図は、 ⾮非整数ブラウン運動 (Fractional  Brownian  Motion) によるガウス過程を経たものです。 Fractal   Perlin noise
  6. ©  Cygames,  Inc. Worley  Noise • Steven  Worley⽒氏が 開発したノイズ。 •

    ⽔水⾯面がキラキラ反射している様な 模様を⽣生成することが可能です。 Worley  noise
  7. ©  Cygames,  Inc. Perlin-‐‑‒Worley  Noise Perlin Noise  と Worley  Noise

     を合成することで モコモコとした膨らみを持つ雲模様を ⽣生成することが出来ます。
  8. ©  Cygames,  Inc. Perlin-‐‑‒Worley  Noise Perlin-‐‑‒Worley  noise と  は  

    ≦ ≦ の 任意のパラメータ Fractal Perlin Inversed Worley = ( ∗ )/  ( ∗ )
  9. ©  Cygames,  Inc. ランベルトの法則 吸光度度 = 吸光係数 ∗ 光路路⻑⾧長 吸光度度

    = 吸光係数 ∗ 光路路⻑⾧長 = 透過光 ⼊入射光 吸光係数とは、物質固有の定数です。
  10. ©  Cygames,  Inc. レイマーチ レイマーチにより雲密度度を測定すると… • 雲のかたちが決定します。 • 密度度が0ならばそこに雲は存在しません。 •

    雲のライティングが決定します。 • ステップの進んだ⻑⾧長さ=光路路⻑⾧長 • ランベルト・ベールの法則 • 吸光度度=吸光係数 ∗ 雲密度度 ∗ 光路路⻑⾧長
  11. ©  Cygames,  Inc. レイマーチ 1 合計は 20mol/L! 雲密度度の測定 (イメージ) 3

    6 2 8 ※この数値はイメージです。 1  +  3  =  4
  12. ©  Cygames,  Inc. レイマーチ レイマーチは負荷の⾼高い処理理です。 float density = 0.0; for

    (int i = 0; i < StepCount; i++) { density += calcDensity(...); } return calcColor(density); シェーダー内で ループ処理理… その為、 ⾼高速化が必要になります。
  13. ©  Cygames,  Inc. レイマーチ ⾼高速化 2.ステップの早期終了了 ⾼高速化後 1 3 6

    合計は 10mol/L! 雲密度度が充分濃い場合は、 ステップを早期終了了出来ます。
  14. ©  Cygames,  Inc. レイマーチ ⾼高速化 3.ステップ回数の削減 合計は 19mol/L! 3.5 ステップ幅を拡⼤大することで、回数を削減出来ます。

    ただし、測定結果の不不正確さが ⽐比例例することに注意してください。 ⾼高速化後 7.5 8
  15. ©  Cygames,  Inc. 平⾯面雲 – おさらい 平⾯面雲は Perlin Worley  

    Volumetric  Noise  Texture で形作っています。 U
  16. ©  Cygames,  Inc. 平⾯面雲 -‐‑‒ ⽣生じた課題 • ⼊入道雲は形に個性があり、 機械的に⽣生成される Volumetric

     Noise  Textureでは ⽣生成することが難しかった。 • 任意形状雲の研究が 別途必要に。 ⼊入道雲が表現出来ない!