11
OpenGL ES 3.0 Creating the Soft Kitty Demo Kristof Beets Director of Business Development PowerVR Graphics

OpenGL ES 3.0 Creating the Soft Kitty Democdn.imgtec.com/idc14-china/7-PowerVR-IDC14-OpenGL... · OpenGL ES 3.0 – Creating the Soft Kitty Demo Kristof Beets ... Helps reduce the

  • Upload
    others

  • View
    3

  • Download
    0

Embed Size (px)

Citation preview

Page 1: OpenGL ES 3.0 Creating the Soft Kitty Democdn.imgtec.com/idc14-china/7-PowerVR-IDC14-OpenGL... · OpenGL ES 3.0 – Creating the Soft Kitty Demo Kristof Beets ... Helps reduce the

OpenGL ES 3.0 – Creating the Soft Kitty Demo

Kristof Beets

Director of Business Development – PowerVR Graphics

Page 2: OpenGL ES 3.0 Creating the Soft Kitty Democdn.imgtec.com/idc14-china/7-PowerVR-IDC14-OpenGL... · OpenGL ES 3.0 – Creating the Soft Kitty Demo Kristof Beets ... Helps reduce the

2

Soft Kitty Demonstration Designed for PowerVR Series6 GPU Cores – Demo Video

Page 3: OpenGL ES 3.0 Creating the Soft Kitty Democdn.imgtec.com/idc14-china/7-PowerVR-IDC14-OpenGL... · OpenGL ES 3.0 – Creating the Soft Kitty Demo Kristof Beets ... Helps reduce the

3

Animating Soft Kitty

Vertex Skinning animates a character using a Bone Structure

Each vertex is influenced by a number of bones - typically 3 to 4 bones

By animating the bones (skeleton) the vertices are moved and the object animated

Cats are highly flexible creatures – 4 bones were insufficient to obtain realistic animation

12 Bones per Vertex required to avoid artefacts in the animation of the Cat Model

3 to 4 times higher workload than typical game animation shader code

Vertex Skinning with 12 Bones Influencing Each Vertex

Page 4: OpenGL ES 3.0 Creating the Soft Kitty Democdn.imgtec.com/idc14-china/7-PowerVR-IDC14-OpenGL... · OpenGL ES 3.0 – Creating the Soft Kitty Demo Kristof Beets ... Helps reduce the

4

Adding Fur to Soft Kitty

Approximate Fur by rendering multiple shell layers with dotted texture

Dots will connect and form the individual strands of hair forming the fur

More layers increase the quality of the effect – high alpha blended fillrate required

Shell Based Fur Effect

Page 5: OpenGL ES 3.0 Creating the Soft Kitty Democdn.imgtec.com/idc14-china/7-PowerVR-IDC14-OpenGL... · OpenGL ES 3.0 – Creating the Soft Kitty Demo Kristof Beets ... Helps reduce the

5

Optimising Soft Kitty – Transform Feedback

What is Transform Feedback ? Benefit for Soft Kitty ?

Transform feedback allows vertex shader output to be written out to memory

Complex vertex shader work is only done once and then cached in memory

Following passes use cached data from memory avoiding costly recalculation

Reduced vertex shader workload and increased performance

Execute Expensive Vertex Skinning Animation Only Once

Execute Once

Use Many

Cat Geometry

Vertex Shader

Cat Animated Pose Memory

Render Passes

Shadow

Fur Shells

Transform Feedback

Page 6: OpenGL ES 3.0 Creating the Soft Kitty Democdn.imgtec.com/idc14-china/7-PowerVR-IDC14-OpenGL... · OpenGL ES 3.0 – Creating the Soft Kitty Demo Kristof Beets ... Helps reduce the

6

Optimising Soft Kitty - Instancing

What is Instancing ? Benefit for Soft Kitty ?

Instancing allows the same vertex buffer to be drawn multiple times in a single API call

Each instance can be drawn with different settings e.g. scale, position, etc.

Avoids multiple API state changes thus reducing CPU loading

Helps reduce the CPU loading of the demonstration improving power efficiency

Single Draw Call for the Fur Effect

Versus SetState()

DrawInstanced()

Page 7: OpenGL ES 3.0 Creating the Soft Kitty Democdn.imgtec.com/idc14-china/7-PowerVR-IDC14-OpenGL... · OpenGL ES 3.0 – Creating the Soft Kitty Demo Kristof Beets ... Helps reduce the

7

The Soft Kitty Render Loop Overview of Render Passes

Page 8: OpenGL ES 3.0 Creating the Soft Kitty Democdn.imgtec.com/idc14-china/7-PowerVR-IDC14-OpenGL... · OpenGL ES 3.0 – Creating the Soft Kitty Demo Kristof Beets ... Helps reduce the

8

PVRTune View of Soft Kitty GPU Fully Loaded – No Idle Time Gaps – Vertex Processing Limited Workload

Shadow Render

Horizontal Blur Vertical Blur Final Render

Transform Feedback Animation

Shadow Render

Horizontal & Vertical Blur

Final Render

Page 9: OpenGL ES 3.0 Creating the Soft Kitty Democdn.imgtec.com/idc14-china/7-PowerVR-IDC14-OpenGL... · OpenGL ES 3.0 – Creating the Soft Kitty Demo Kristof Beets ... Helps reduce the

9

Future Demo Sessions – Series6XT and 7XT PowerVR Rogue Planet and PowerVR Library

PowerVR Rogue Planet

Hardware Tessellation for Terrain Rendering

PowerVR Library

Physically Based Rendering

Page 10: OpenGL ES 3.0 Creating the Soft Kitty Democdn.imgtec.com/idc14-china/7-PowerVR-IDC14-OpenGL... · OpenGL ES 3.0 – Creating the Soft Kitty Demo Kristof Beets ... Helps reduce the

10

Soft Kitty – Bloopers… Development Issues… Small shader mistakes… big impact

PVRTrace is the ideal tool to help figure out these issues…

Page 11: OpenGL ES 3.0 Creating the Soft Kitty Democdn.imgtec.com/idc14-china/7-PowerVR-IDC14-OpenGL... · OpenGL ES 3.0 – Creating the Soft Kitty Demo Kristof Beets ... Helps reduce the

OpenGL ES 3.0 – Creating the Soft Kitty Demo

Kristof Beets

Director of Business Development – PowerVR Graphics