vertextexturefetchの活用について

12
Vertex Texture Fetch のののののの のののの Aiming ののののののののののの のの

Upload: hajime-sanno

Post on 15-Feb-2017

136 views

Category:

Engineering


0 download

TRANSCRIPT

Page 1: VertexTextureFetchの活用について

Vertex Texture Fetch の活用について

株式会社 Aimingソフトウェアエンジニア山納 一生

Page 2: VertexTextureFetchの活用について

目次1. OpenGL ES 3.0

2. Vertex Texture Fetch

3. インタラクティブな草揺れ

Page 3: VertexTextureFetchの活用について

OpenGL と Open GL ES

• OpenGL (Open Graphics Library)

• OpenGL ES (OpenGL for Embedded Systems)

Page 4: VertexTextureFetchの活用について

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

Page 5: VertexTextureFetchの活用について

GLSL ES 3.0

• HLSL Shader Model 4.0 くらい– Geometry Shader は OpenGL ES 3.2 で追加– MRT

– VertexID / InstanceID

– 補間レジスタ数が 16 に増加– 他にも多くの変更点

Page 6: VertexTextureFetchの活用について

Vertex Texture Fetch (VTF)

• Vertex Shader で Texture が読める– VertexColor は?• 動的に変更しにくい• 複数の値を扱いにくい

Page 7: VertexTextureFetchの活用について

Displacement Mapping

• VS にできて FS にできないことは?– 頂点座標の変形

• テクスチャを重みとして、法線方向にオフセット– ポリゴン数が少ないと厳しい

• テッセレーションを使う• 事前に割っておく

Page 8: VertexTextureFetchの活用について

Displacement Mapping

Normal MappingDisplacement Mapping

Page 9: VertexTextureFetchの活用について

インタラクティブな草揺れ• 毎フレームテクスチャにデータを格納して

やる– 詳しくはサンプルを見つつ

Page 10: VertexTextureFetchの活用について

インタラクティブな草揺れ

Page 11: VertexTextureFetchの活用について

インタラクティブな草揺れ

揺れ方向マップ

Page 12: VertexTextureFetchの活用について

インタラクティブな草揺れ• カメラスペースで揺れ方向マップを生成– ワールド座標での草揺れ方向を格納– 毎フレーム減衰させていく

• サンプルは各草の中心点– 頂点ごとに方向がバラつかないようにする– Batching させるときは UV にローカル座標を格納