vertextexturefetchの活用について
TRANSCRIPT
Vertex Texture Fetch の活用について
株式会社 Aimingソフトウェアエンジニア山納 一生
目次1. OpenGL ES 3.0
2. Vertex Texture Fetch
3. インタラクティブな草揺れ
OpenGL と Open GL ES
• OpenGL (Open Graphics Library)
• OpenGL ES (OpenGL for Embedded Systems)
OpenGL ES 3.0 とは• OpenGL ES 1.0 / 1.1
• OpenGL ES 2.0
• OpenGL ES 3.0
• OpenGL ES 3.1
• OpenGL ES 3.2
GLSL ES 3.0
• HLSL Shader Model 4.0 くらい– Geometry Shader は OpenGL ES 3.2 で追加– MRT
– VertexID / InstanceID
– 補間レジスタ数が 16 に増加– 他にも多くの変更点
Vertex Texture Fetch (VTF)
• Vertex Shader で Texture が読める– VertexColor は?• 動的に変更しにくい• 複数の値を扱いにくい
Displacement Mapping
• VS にできて FS にできないことは?– 頂点座標の変形
• テクスチャを重みとして、法線方向にオフセット– ポリゴン数が少ないと厳しい
• テッセレーションを使う• 事前に割っておく
Displacement Mapping
Normal MappingDisplacement Mapping
インタラクティブな草揺れ• 毎フレームテクスチャにデータを格納して
やる– 詳しくはサンプルを見つつ
インタラクティブな草揺れ
インタラクティブな草揺れ
揺れ方向マップ
インタラクティブな草揺れ• カメラスペースで揺れ方向マップを生成– ワールド座標での草揺れ方向を格納– 毎フレーム減衰させていく
• サンプルは各草の中心点– 頂点ごとに方向がバラつかないようにする– Batching させるときは UV にローカル座標を格納