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

ゲームアプリの数学@GREE GameDevelopers' Meetup

gree_tech
December 17, 2015

ゲームアプリの数学@GREE GameDevelopers' Meetup

久富木 隆一(グリー株式会社)「ゲームアプリの数学@GREE GameDevelopers' Meetup」

GREE GameDevelopers' Meetup 02 での登壇資料です
http://greegdm02.peatix.com/

gree_tech

December 17, 2015
Tweet

More Decks by gree_tech

Other Decks in Technology

Transcript

  1. 書籍『ゲームアプリの数学 Unityで学ぶ基礎からシェーダーまで』 左: ⼤大型本 右: Kindle版 SBクリエイティブ 刊 第1章 三⾓角関数

    第2章 座標系 第3章 ベクトル 第4章 ⾏行行列列 第5章 座標変換 第6章 クォータニオン 第7章 曲線 第8章 ゲームアプリの環境 第9章 シェーダー
  2. 『ゲームアプリの数学』概要 u  現代の2D/3Dゲーム開発に必要な数学要 素を簡潔に解説 u  1-4章: 前半の⼭山である5章-座標変換(3D ジオメトリー処理理)の構成要素 u  1-8章:

    後半の⼭山である9章-シェーダー (GPUでのジオメトリー/フラグメント並 列列処理理)の構成要素 u  ベクトル、⾏行行列列、クォータニオンの定義 と演算(API) u  1章: 紀元前から17世紀、2-6章: 19世紀、 7-9章: 20世紀 第1章 三⾓角関数 第2章 座標系 第3章 ベクトル 第4章 ⾏行行列列 第5章 座標変換 第6章 クォータニオン 第7章 曲線 第8章 ゲームアプリの環境 第9章 シェーダー
  3. 『ゲームアプリの数学』概要 u 7章 曲線: ジオメトリーの、アルゴ リズムによる⼿手続き⽣生成 (procedural generation) u 8章: リアルタイム3Dグラフィック ストレンド、GPUアーキテク

    チャーの歴史、(モバイル)システム アーキテクチャー、グラフィック スパイプライン解説により、GPU 上の並列列プログラミングの⽂文脈と 前提知識識を補充 第1章 三⾓角関数 第2章 座標系 第3章 ベクトル 第4章 ⾏行行列列 第5章 座標変換 第6章 クォータニオン 第7章 曲線 第8章 ゲームアプリの環境 第9章 シェーダー
  4. 『ゲームアプリの数学』概要 // vertex shader void main() { gl_Position = gl_ModelViewProjectionMatrix

    * gl_Vertex; } // fragment shader void main() { gl_FragColor = vec4(1.0, 0.0, 0.0, 1.0); } この最も単純なシェーダープログラムが何を意味してい るかの解説に書籍の⼤大部分は割かれている
  5. 『ゲームアプリの数学』番外編 float sdSphere( vec3 p, float s ) { return

    length(p) - s; } float sdBox( vec3 p, vec3 b ) { vec3 d = abs(p) - b; return min(max(d.x,max(d.y,d.z)),0.0) + length(max(d,0.0)); } float opS( float d1, float d2 ) { return max(-d2,d1); } vec2 opU( vec2 d1, vec2 d2 ) { return (d1.x<d2.x) ? d1 : d2; } u  距離離関数(distance function)と、 そのブーリアン演算で、ジオメ トリーのプリミティブを表現 Raymarching – Primitives by Íñgo Quílez http://iquilezles.org/www/articles/ distfunctions/distfunctions.htm https://www.shadertoy.com/view/Xds3zN
  6. 『ゲームアプリの数学』番外編 u 符号付距離離場(signed distance field, SDF) u  全ての点について最も近い物体表⾯面への 距離離を正の値(物体の外側)か負の値(内側) で記録 u 

    3D空間なら3Dテクスチャーに保存できる u  レイマーチングにSDFを併⽤用すると、⼀一定 間隔ではなくSDFの値ずつ⾏行行進(=sphere tracing)できるので、効率率率が良良い u  ただしSDF⾃自体はストレージ領領域やメモ リー空間を占有する Per-Pixel Displacement Mapping with Distance Functions By William Donnelly, GPU Gems 2, 2005
  7. 『ゲームアプリの数学』番外編 u SDFはフォントレンダリングにも応⽤用 Improved Alpha-Tested Magnification for Vector Textures and Special

    Effects, Chris Green, Valve, SIGGRAPH 2007 u  SDFとGPUによる補間で⾼高解像度度の元 フォント画像並の縁の滑滑らかさを再現 u  解像度度毎に複数枚のフォントテクス チャーを⽤用意する必要がなく、1枚のSDF テクスチャーで済み、メモリーの節約 u  有名UnityアセットText Mesh ProもSDF対応 u  Google ChromeのレンダリングエンジンSkiaでもSDFによるフォン トレンダリングに対応 https://github.com/google/skia/blob/master/gm/dftext.cpp
  8. 『ゲームアプリの数学』番外編 u さらにその先へ – SDFをも⼿手続き⽣生成 u  レイマーチングの第⼀一⼈人者Iñigo Quilezによる2008年年の発表 u  数式とフラグメントシェーダープ ログラムを絵筆のように使い、⼿手

    続き⽣生成によって複雑な3Dシー ンを4KBのデモに納める u  古くに存在したヨーロッパのデモ シーンでは細い回線でドヤるため の⼿手段として華やかなCGデモを いかに⼩小さなプログラムで表現す るかが競われた Rendering Worlds with Two Triangles with raytracing on the GPU in 4096 bytes by Iñigo Quilez, NVSCENE 2008
  9. 『ゲームアプリの数学』番外編 u ハイブリッドレンダリング u  デモシーン出⾝身でSCEに在籍していた Matt Swobodaによる⼿手続き⽣生成や SDFについての2012年年の発表での、将 来のレンダリングパイプライン予想 u  メインのキャラクター表⽰示は依然とし

    てポリゴンをラスタライズ u  照明や反射といった効果はレイトレー シングなどの⼿手法を限定的に低精度度で 採⽤用へ Advanced Procedural Rendering in DirectX 11 by Matt Swoboda, SCEE, GDC 2012
  10. 『ゲームアプリの数学』番外編 u  Advances in Real-Time Rendering in Games @ SIGGRAPH

    2015 AAAゲームを開発する有名開発会社 の最⾼高峰をなす⾯面々による、現代の ゲームにおけるグラフィックスレン ダリングに関する10のセッション
  11. 『ゲームアプリの数学』番外編 u  Advances in Real-Time Rendering in Games @ SIGGRAPH

    2015 10のセッションのうち7つが レイマーチングまたはSDFに ついて⾔言及
  12. 『ゲームアプリの数学』番外編 u  Learning from Failure: a Survey of Promising, Unconventional

    and Mostly Abandoned Renderers for ‘Dreams PS4’, a Geometrically Dense, Painterly UGC Game’, Alex Evans (MediaMolecule), SIGGRAPH 2015 u  VR空間でユーザーがキャラクターを彫刻して 作るPS4タイトル”Dreams”に向けた3年年間の R&Dにおける試⾏行行錯誤の軌跡 u  ポリゴンメッシュのラスタライズは無く、 CSGのシーンからコンピュートシェーダーで ⽣生成したSDFを点の集合(point cloud/splat) に変換した点描でオブジェクトを表現 u  ハイブリッドではない、真の次世代ゲームグ ラフィックスレンダリングを実現
  13. 2020年年のゲーム開発者 u  ⼤大域照明や流流体物理理といった重 い挙動を、限られたシーン内な がら機械学習でそれらしく真似 られるようになる u  特徴ベクトルを既存の⽅方程式を 使って最適にデザインしている のもそのうちディープラーニン

    グで不不要になるかも Global Illumination with Radiance Regression Functions, 2013 Data-driven Fluid Simulations using Regression Forests, 2015 u アルゴリズムなんて造れない? なら 機械にやらせればいいじゃない
  14. 2020年年のゲーム開発者 u そのころモバイルでは… u iPhone 1発売の翌年年2008年年に、Appleは iPhoneを挿して使うVR HMDを特許出願 し、2015年年に特許取得している Apple wins patent

    for a head-mounted iPhone virtual reality display u 2018年年のiPhone 8ではVRに適したOLEDが採⽤用されるらしい u 2010年年のiPhone 4から2015年年のiPhone 6sは浮動⼩小数点演算 性能(FLOPS)では30倍の開きがあり、2015-2020年年でもそれく らい伸びるかも u モバイルでもコンピュートシェーダー活⽤用の機運が⾼高まる!