SlideShare ist ein Scribd-Unternehmen logo
1 von 44
Next-gen Mobile GPUs and Rendering Techniques 
Game Connection, October 29-31, 2014 
Niklas Smedberg 
Senior Engine Programmer, Epic Games
Game Connection, October 29-31, 2014 
Introduction 
• Niklas Smedberg, a.k.a. “Smedis” 
– 17 years in the game industry 
– Graphics programmer since the C64 demo scene
Game Connection, October 29-31, 2014 
Content 
• Next-gen Hardware 
– Tile-based GPU vs direct-rendering GPU 
• Next-gen Rendering Techniques 
– Unreal Engine 4 
– Previous goal: Bringing AAA Console graphics to mobile (DONE!) 
– New goal: Bringing AAA PC graphics to mobile (DONE!??)
Next Generation Mobile Hardware 
Game Connection, October 29-31, 2014 
• Big leap in features and performance 
• Full-featured (e.g. OpenGL ES 3.1+AEP, DirectX 10/11) 
• Peak performance now comparable to consoles (Xbox 360/PS3) 
– About 300+ GFLOPS and 26 GB/s 
• New goal: Bring AAA PC graphics to mobile
Performance Trends (FP16 GFLOPS) 
Game Connection, October 29-31, 2014 
6.4 12.8 
25.5 
154 
300+ 
350 
300 
250 
200 
150 
100 
50 
0 
2010 2011 2012 2013 2014 
2010 SGX 535 
2011 SGX 543MP2 
2012 SGX 543MP3 
2013 G6430 
2014 Adreno, K1, GX6650
Game Connection, October 29-31, 2014 
iOS 8 Metal 
• New rendering API for iOS 
• Better match for the hardware 
– Like a “game console API” 
– Much more efficient on the CPU 
– Exposes hardware features 
• 20x faster on our rendering thread 
– OpenGL ES API: 30% of renderthread 
– Metal API: 1.6% of renderthread 
• All power and perf responsibility is now in the hands of the developer!
Tech Demo: Zen Garden 
Game Connection, October 29-31, 2014
Game Connection, October 29-31, 2014 
Tile-based Mobile GPU 
• Mobile GPUs are usually tile-based (next-gen too) 
– Tile-based: ImgTec, Qualcomm*, ARM 
– Direct: NVIDIA, Intel, Vivante 
* Qualcomm Adreno can render either tile-based or direct to frame buffer 
– Extension: GL_QCOM_binning_control
Game Connection, October 29-31, 2014 
Tile-Based Mobile GPU 
Summary: 
• Split the screen into tiles 
– E.g. 32x32 pixels (ImgTec) or 300x300 (Qualcomm) 
• The whole tile fits within GPU, on chip 
• Process all drawcalls for one tile 
– Write out final tile results to RAM 
• Repeat for each tile to fill the image in RAM
ImgTec Tile-based Rendering Process 
Game Vertex Processing Tile Data (RAM) 
Game Connection, October 29-31, 2014 
Pixel Processing (Top-most 
only) 
Frame Buffer (RAM) 
Cmd Buffer (RAM) 
Hidden Surface 
Removal 
Tile 
Memory 
Per Tile:
Game Connection, October 29-31, 2014 
ImgTec Series 6 G6430 
• One GPU core 
• Four shader units (USC) 
– 16-way scalar 
• FP16: Two SOP per clock 
– (a*b + c*d) 
• FP32: Two MADD per clock 
– (a*b + c) 
• 154 GFLOPS @ 400 MHz 
– 16-bit floating point
Game Connection, October 29-31, 2014 
FP16 Is Faster Than FP32 
• ImgTec Series 6: 50% faster 
– FP16 pipeline: Two SOP per clock 
– FP32 pipeline: Two MADD per clock 
• ImgTec Series 6XT: 100% faster 
– FP16 pipeline: Four MADD per clock 
– FP32 pipeline: Two MADD per clock 
• Qualcomm Snapdragon: 100% faster
Game Connection, October 29-31, 2014 
ImgTec Rendering Tips 
• Hidden Surface Removal 
– For opaque only 
– Don’t keep alpha-test enabled all the time 
– Don’t keep “discard” keyword in shader source, even if it’s not used 
• Group opaque drawcalls together 
• Sort on state, not distance
Game Connection, October 29-31, 2014 
Framebuffer Resolve/Restore 
• Expensive to switch Frame Buffer Object on Tile-based GPUs 
– Saves the current FBO to RAM 
– Reloads the new FBO from RAM 
• Best performance: 
– A single rendertarget for the entire frame 
– No post-processing passes 
• Does not apply to NVIDIA Tegra GPUs! 
– This made it simpler for us to make our “Rivalry” tech demo for K1
Game Connection, October 29-31, 2014 
Framebuffer Resolve/Restore 
• Clear ALL FBO attachments after new frame/rendertarget 
– Clear after eglSwapBuffers / glBindFramebuffer 
– Avoids reloading FBO from RAM 
– NOTE: Do NOT clear unnecessary on non-tile-based GPUs (e.g. NVIDIA) 
• Discard unused attachments before new frame/rendertarget 
– Discard before eglSwapBuffers / glBindFramebuffer 
– Avoids saving unused FBO attachments to RAM 
– glDiscardFramebufferEXT / glInvalidateFramebuffer
Game Connection, October 29-31, 2014 
iOS Performance Profiling 
• Screenshot from Xcode, which shows: 
– How we clear FBO at the beginning of every render pass 
– Other important performance info
Game Connection, October 29-31, 2014 
Programmable Blending 
• GL_EXT_shader_framebuffer_fetch (gl_LastFragData) 
• Reads current pixel background “for free” 
• Potential uses: 
– Custom color blending 
– Blend by background depth value (depth in alpha) 
• E.g. Soft intersection against world geometry for particles 
– Tone-mapping within tile-memory 
– Deferred shading without resolving G-buffer 
• Stay on GPU and avoid expensive round-trip to RAM 
• See also: GL_EXT_shader_pixel_local_storage
Soul: Programmable Blending 
Game DeGvealmopee Cr Cononnefecrteionnc,e O, Mctoabrcehr 295-3219, 20143
Core Optimization: Opaque Draw Ordering 
Game Connection, October 29-31, 2014 
• All platforms, 
1. Group draws by material (shader) to reduce state changes 
• Then for all platforms except ImgTec, 
2. Skybox last: 5 ms/frame savings (vs drawing skybox first) 
3. Sort groups nearest first : extra 3 ms/frame savings 
4. Sort inside groups nearest first : extra 7 ms/frame savings 
• (Timings from a UE4 map on a Qualcomm-based device)
Game Connection, October 29-31, 2014 
Optimization: Resolution 
• Resolution does not match GPU performance! 
• Use custom resolution to match perf/pixel 
• Examples of same GPU: 
– iPhone 5S = 0.7 Mpix (1136x640) 
– iPad Air = 3.1 Mpix (2048x1536), more than 4 times slower! 
• Other examples: 
– Prev-Gen Console = 0.9 Mpix (1280x720) 
– Current-Gen Console = 2.1 Mpix (1920x1080)
Single Content, Multiple Platforms 
Game Connection, October 29-31, 2014 
• Core motivating factor in designing UE4 
– Authoring consistency between PC and Mobile 
• Authoring environment for both platforms 
– Physically-based shading model 
– High dynamic range linear color space 
– High quality post processing
Game DeGvealmopee Cr Cononnefecrteionnc,e O, Mctoabrcehr 295-3219, 20143 
Comparison: PC
Comparison: Mobile 
Game DeGvealmopee Cr Cononnefecrteionnc,e O, Mctoabrcehr 295-3219, 20143
Game Connection, October 29-31, 2014 
Consistency: Material Editor 
• One material for many platforms 
– Artist authored feature levels to scale shader 
perf from PC to mobile 
• Using cross compiler tool to retarget 
HLSL into GLSL
Directional Light + SDF Shadows 
Game DeGvealmopee Cr Cononnefecrteionnc,e O, Mctoabrcehr 295-3219, 20143
Consistency: HDR Directional Lightmaps 
Game Connection, October 29-31, 2014 
• Two compressed + One uncompressed textures: 
1. HDR color with log luma encoding 
2. World space 1st order spherical harmonic luma directionality 
3. SDF shadow texture 
• Optimized for Mobile and PVRTC compression: 
– PVRTC (ImgTec) lacks separately compressed encoding for alpha 
– PC color: RGB/Luma, LogLuma in Alpha 
– Mobile color: RGB/Luma * LogLuma, no Alpha (LogLuma derived with ALU) 
– Mobile: A single dynamic directional light as the “sun”
Image-Based Lighting 
Game DeGvealmopee Cr Cononnefecrteionnc,e O, Mctoabrcehr 295-3219, 20143
Game Connection, October 29-31, 2014 
Image-Based Lighting 
• Selects a mip-level in an IBL cubemap based on per-pixel roughness 
– Same as PC, filtering same as PC 
• PC: FP16 
• Mobile: Decode(RGBM)^2 
• PC: Blend multiple cubemaps per surface and parallax correction 
• Mobile: One infinite-distance cubemap per object
1/2 DOF 
Downsample 
1/2 DOF Filter 
Tonemapping 
Game Connection, October 29-31, 2014 
Mobile Post Processing Pipeline 
FP16 RGB=Color A=Depth 
Anti-Aliasing 
1/4 DOF Near Dilation 
1/4 Lightshaft Filter, Pass 1 
1/4 Final Filter Passes and Merge 
{Light Shafts, Bloom, Vignette} 
Bloom Filter Tree 
1/4 Lightshaft Filter, Pass 2 
1/4 Smart Reduction 
Light Shaft (Sun) Mask 
A=Depth to A=CoC+Sun 
[conversion done on chip if possible] 
1/8 
1/16 
1/32 
1/8 
1/16 
1/32 
1/64
Mobile Depth of Field 
Game DeGvealmopee Cr Cononnefecrteionnc,e O, Mctoabrcehr 295-3219, 20143
Packed Circle of Confusion and Sun Intensity 
Game Connection, October 29-31, 2014 
• Optimization done for Depth of Field and Light Shafts 
– Represent sun intensity and circle of confusion (CoC) in one FP16 value 
– Saves needing an extra render target 
Depth (0 to 65504) 
CoC (0 to 1) Sun Intensity (1 to 65504) 
0=Max Near Bokeh 
0.5=In Focus 
1=Max Far Bokeh and No Sun 
65504=Max Sun (still at Max Far Bokeh)
Vignette + Bloom + Light Shafts 
Game DeGvealmopee Cr Cononnefecrteionnc,e O, Mctoabrcehr 295-3219, 20143
Vignette + Bloom + Light Shafts: Optimized 
Game Connection, October 29-31, 2014 
• Composited at quarter resolution 
– Using pre-multiplied alpha FP16 
– Also performs the final filtering passes for bloom and light shafts 
• Optimized to minimize rendertarget switches 
• 3 effects applied to scene with one full-res TEX fetch 
– Applied in the tonemap pass
Game Connection, October 29-31, 2014 
Mobile Light Shafts 
• Filtered at quarter resolution 
• Monochromatic with artist controlled tint on final composite 
– Bloom and light shaft down-sample pass shared 
– RGB = color for bloom, A = light shaft intensity 
• Light shaft filter runs in tonemapped space (8-bit/channel) 
– Applied in linear (reverse tonemap before tint and composite) 
• Filtering done by 3 passes of 8 taps
Game DeGvealmopee Cr Cononnefecrteionnc,e O, Mctoabrcehr 295-3219, 20143 
Mobile Bloom
Game Connection, October 29-31, 2014 
Mobile Bloom 
• Lower quality version to minimize resolves 
– Limited effect radius and less passes 
• Turns out to be faster and higher-quality 
– Standard hierarchical algorithm with some optimizations 
– Down-sample from 1:1/4 res first (shared with light shaft) 
– Then down-sample in 1:1/2 resolution passes 
– Single pass circle-based filter (instead of two-pass Gaussian) 
• 15 taps on circle during down-sampling 
• 7 taps for both circles during up-sample+merge pass
Film Post Tonemapping 
Game DeGvealmopee Cr Cononnefecrteionnc,e O, Mctoabrcehr 295-3219, 20143
Film Post Tonemapping: Mobile Shader 
Game Connection, October 29-31, 2014 
Film Post 
RGBA8 LDR sRGB Output 
Quantization Grain 
(optional) 
Shadow Tint 
(optional) 
Color Matrix 
{Saturation, Channel Mixer} 
(optional) 
Tint, Tonemap Curve Linear to sRGB 
RGBA16F HDR Linear Color 
Blend in DOF 
(optional) 1/2 DOF 
Film Grain Jitter 
(optional) 
Blend in {Bloom, Vignette, Light Shafts} 
(optional) 
Film Grain 
(optional) 
1/4 Pre-multiplied Alpha
Game DeGvealmopee Cr Cononnefecrteionnc,e O, Mctoabrcehr 295-3219, 20143 
Anti-Aliasing
Game Connection, October 29-31, 2014 
Anti-Aliasing on Mobile 
• Using a spatial & temporal anti-aliasing filter 
– 2x temporal super-sampling (higher quality surface shading) 
– Blending two jittered frames after tonemapping (32 bpp, 
perceptual color space) 
– Some special logic to remove ghosting/judder (not using 
motion re-projection) 
• Not currently using MSAA 
– Needed super-sampled shading for HDR physically based shading model 
Pixel
All Techniques Combined 
Game DeGvealmopee Cr Cononnefecrteionnc,e O, Mctoabrcehr 295-3219, 20143
Game Connection, October 29-31, 2014 
Android Extension Pack 
• Released with Android “L” 
• OpenGL ES 3.1 plus a specific set of extensions 
– Compute shaders 
– Tessellation 
– ASTC 
– Detailed spec on www.khronos.org: GL_ANDROID_extension_pack_es31a 
• Full UE4 desktop rendering pipeline on Android! 
– Deferred rendering with G-buffer 
– Physically-based shading 
– Image-based lighting 
– Solid 30 FPS on NVIDIA K1 mobile GPU
Tech Demo: Rivalry 
Game Connection, October 29-31, 2014
Game Connection, October 29-31, 2014 
Unreal Engine 4 
Full source code available! 
unrealengine.com 
Includes all C++, shaders, tools, content 
$19/mo

Weitere ähnliche Inhalte

Was ist angesagt?

Intro to unreal with framework and vr
Intro to unreal with framework and vrIntro to unreal with framework and vr
Intro to unreal with framework and vrLuis Cataldi
 
Making High Quality Interactive VR with Unreal Engine Luis Cataldi
Making High Quality Interactive VR with Unreal Engine Luis CataldiMaking High Quality Interactive VR with Unreal Engine Luis Cataldi
Making High Quality Interactive VR with Unreal Engine Luis CataldiLuis Cataldi
 
Intro to VR with Unreal Engine
Intro to VR with Unreal Engine   Intro to VR with Unreal Engine
Intro to VR with Unreal Engine Unreal Engine
 
Developing Success in Mobile with Unreal Engine 4 | David Stelzer
Developing Success in Mobile with Unreal Engine 4 | David StelzerDeveloping Success in Mobile with Unreal Engine 4 | David Stelzer
Developing Success in Mobile with Unreal Engine 4 | David StelzerJessica Tams
 
Progressive Lightmapper: An Introduction to Lightmapping in Unity
Progressive Lightmapper: An Introduction to Lightmapping in UnityProgressive Lightmapper: An Introduction to Lightmapping in Unity
Progressive Lightmapper: An Introduction to Lightmapping in UnityUnity Technologies
 
PRESENTATION ON Game Engine
PRESENTATION ON Game EnginePRESENTATION ON Game Engine
PRESENTATION ON Game EngineDiksha Bhargava
 
Game engines and Their Influence in Game Design
Game engines and Their Influence in Game DesignGame engines and Their Influence in Game Design
Game engines and Their Influence in Game DesignPrashant Warrier
 
Making VR Games and Experiences in UE4
Making VR Games and Experiences in UE4Making VR Games and Experiences in UE4
Making VR Games and Experiences in UE4Unreal Engine
 
Building Multiplayer Games (w/ Unity)
Building Multiplayer Games (w/ Unity)Building Multiplayer Games (w/ Unity)
Building Multiplayer Games (w/ Unity)Noam Gat
 
「原神」におけるコンソールプラットフォーム開発
「原神」におけるコンソールプラットフォーム開発「原神」におけるコンソールプラットフォーム開発
「原神」におけるコンソールプラットフォーム開発Unity Technologies Japan K.K.
 
Unreal Open Day 2017 Unreal Engine Education & Training
Unreal Open Day 2017 Unreal Engine Education & TrainingUnreal Open Day 2017 Unreal Engine Education & Training
Unreal Open Day 2017 Unreal Engine Education & TrainingEpic Games China
 
EFL (Tizen Native Display Layer – Architecture & Usage) - Carsten Haitzler
EFL (Tizen Native Display Layer – Architecture & Usage)  - Carsten HaitzlerEFL (Tizen Native Display Layer – Architecture & Usage)  - Carsten Haitzler
EFL (Tizen Native Display Layer – Architecture & Usage) - Carsten HaitzlerRyo Jin
 
Game Programming - Cloud Development
Game Programming - Cloud DevelopmentGame Programming - Cloud Development
Game Programming - Cloud DevelopmentNick Pruehs
 
East Coast DevCon 2014: The Slate UI Framework - Architecture & Tools
East Coast DevCon 2014: The Slate UI Framework - Architecture & ToolsEast Coast DevCon 2014: The Slate UI Framework - Architecture & Tools
East Coast DevCon 2014: The Slate UI Framework - Architecture & ToolsGerke Max Preussner
 
A Brief Guide to Game Engines
A Brief Guide to Game EnginesA Brief Guide to Game Engines
A Brief Guide to Game EnginesDavid Parsons
 
Behavior Tree in Unreal engine 4
Behavior Tree in Unreal engine 4Behavior Tree in Unreal engine 4
Behavior Tree in Unreal engine 4Huey Park
 
Developing a Multiplayer RTS with the Unreal Engine 3
Developing a Multiplayer RTS with the Unreal Engine 3Developing a Multiplayer RTS with the Unreal Engine 3
Developing a Multiplayer RTS with the Unreal Engine 3Nick Pruehs
 
1-Introduction (Game Design and Development)
1-Introduction (Game Design and Development)1-Introduction (Game Design and Development)
1-Introduction (Game Design and Development)Hafiz Ammar Siddiqui
 

Was ist angesagt? (18)

Intro to unreal with framework and vr
Intro to unreal with framework and vrIntro to unreal with framework and vr
Intro to unreal with framework and vr
 
Making High Quality Interactive VR with Unreal Engine Luis Cataldi
Making High Quality Interactive VR with Unreal Engine Luis CataldiMaking High Quality Interactive VR with Unreal Engine Luis Cataldi
Making High Quality Interactive VR with Unreal Engine Luis Cataldi
 
Intro to VR with Unreal Engine
Intro to VR with Unreal Engine   Intro to VR with Unreal Engine
Intro to VR with Unreal Engine
 
Developing Success in Mobile with Unreal Engine 4 | David Stelzer
Developing Success in Mobile with Unreal Engine 4 | David StelzerDeveloping Success in Mobile with Unreal Engine 4 | David Stelzer
Developing Success in Mobile with Unreal Engine 4 | David Stelzer
 
Progressive Lightmapper: An Introduction to Lightmapping in Unity
Progressive Lightmapper: An Introduction to Lightmapping in UnityProgressive Lightmapper: An Introduction to Lightmapping in Unity
Progressive Lightmapper: An Introduction to Lightmapping in Unity
 
PRESENTATION ON Game Engine
PRESENTATION ON Game EnginePRESENTATION ON Game Engine
PRESENTATION ON Game Engine
 
Game engines and Their Influence in Game Design
Game engines and Their Influence in Game DesignGame engines and Their Influence in Game Design
Game engines and Their Influence in Game Design
 
Making VR Games and Experiences in UE4
Making VR Games and Experiences in UE4Making VR Games and Experiences in UE4
Making VR Games and Experiences in UE4
 
Building Multiplayer Games (w/ Unity)
Building Multiplayer Games (w/ Unity)Building Multiplayer Games (w/ Unity)
Building Multiplayer Games (w/ Unity)
 
「原神」におけるコンソールプラットフォーム開発
「原神」におけるコンソールプラットフォーム開発「原神」におけるコンソールプラットフォーム開発
「原神」におけるコンソールプラットフォーム開発
 
Unreal Open Day 2017 Unreal Engine Education & Training
Unreal Open Day 2017 Unreal Engine Education & TrainingUnreal Open Day 2017 Unreal Engine Education & Training
Unreal Open Day 2017 Unreal Engine Education & Training
 
EFL (Tizen Native Display Layer – Architecture & Usage) - Carsten Haitzler
EFL (Tizen Native Display Layer – Architecture & Usage)  - Carsten HaitzlerEFL (Tizen Native Display Layer – Architecture & Usage)  - Carsten Haitzler
EFL (Tizen Native Display Layer – Architecture & Usage) - Carsten Haitzler
 
Game Programming - Cloud Development
Game Programming - Cloud DevelopmentGame Programming - Cloud Development
Game Programming - Cloud Development
 
East Coast DevCon 2014: The Slate UI Framework - Architecture & Tools
East Coast DevCon 2014: The Slate UI Framework - Architecture & ToolsEast Coast DevCon 2014: The Slate UI Framework - Architecture & Tools
East Coast DevCon 2014: The Slate UI Framework - Architecture & Tools
 
A Brief Guide to Game Engines
A Brief Guide to Game EnginesA Brief Guide to Game Engines
A Brief Guide to Game Engines
 
Behavior Tree in Unreal engine 4
Behavior Tree in Unreal engine 4Behavior Tree in Unreal engine 4
Behavior Tree in Unreal engine 4
 
Developing a Multiplayer RTS with the Unreal Engine 3
Developing a Multiplayer RTS with the Unreal Engine 3Developing a Multiplayer RTS with the Unreal Engine 3
Developing a Multiplayer RTS with the Unreal Engine 3
 
1-Introduction (Game Design and Development)
1-Introduction (Game Design and Development)1-Introduction (Game Design and Development)
1-Introduction (Game Design and Development)
 

Andere mochten auch

Custom fabric shader for unreal engine 4
Custom fabric shader for unreal engine 4Custom fabric shader for unreal engine 4
Custom fabric shader for unreal engine 4동석 김
 
East Coast DevCon 2014: Engine Overview - A Programmer’s Glimpse at UE4
East Coast DevCon 2014: Engine Overview - A Programmer’s Glimpse at UE4East Coast DevCon 2014: Engine Overview - A Programmer’s Glimpse at UE4
East Coast DevCon 2014: Engine Overview - A Programmer’s Glimpse at UE4Gerke Max Preussner
 
Unreal conference slides
Unreal conference slidesUnreal conference slides
Unreal conference slidesCharles Schultz
 
infoShare 2013: Adam Frańczak - Techniki optymalizacyjne w UDK/ UE3
infoShare 2013: Adam Frańczak - Techniki optymalizacyjne w UDK/ UE3infoShare 2013: Adam Frańczak - Techniki optymalizacyjne w UDK/ UE3
infoShare 2013: Adam Frańczak - Techniki optymalizacyjne w UDK/ UE3Infoshare
 
In The Trenches Optimizing UE4 for Intel
In The Trenches Optimizing UE4 for IntelIn The Trenches Optimizing UE4 for Intel
In The Trenches Optimizing UE4 for IntelIntel® Software
 
CryENGINE 3 Rendering Techniques
CryENGINE 3 Rendering TechniquesCryENGINE 3 Rendering Techniques
CryENGINE 3 Rendering TechniquesTiago Sousa
 
Session - Debugging memory stomps and other atrocities - Stefan Reinalter - T...
Session - Debugging memory stomps and other atrocities - Stefan Reinalter - T...Session - Debugging memory stomps and other atrocities - Stefan Reinalter - T...
Session - Debugging memory stomps and other atrocities - Stefan Reinalter - T...Mary Chan
 
East Coast DevCon 2014: Programming in UE4 - A Quick Orientation for Coders
East Coast DevCon 2014: Programming in UE4 - A Quick Orientation for CodersEast Coast DevCon 2014: Programming in UE4 - A Quick Orientation for Coders
East Coast DevCon 2014: Programming in UE4 - A Quick Orientation for CodersGerke Max Preussner
 
West Coast DevCon 2014: Concurrency & Parallelism in UE4 - Tips for programmi...
West Coast DevCon 2014: Concurrency & Parallelism in UE4 - Tips for programmi...West Coast DevCon 2014: Concurrency & Parallelism in UE4 - Tips for programmi...
West Coast DevCon 2014: Concurrency & Parallelism in UE4 - Tips for programmi...Gerke Max Preussner
 
GDCE 2015: Blueprint Components to C++
GDCE 2015: Blueprint Components to C++GDCE 2015: Blueprint Components to C++
GDCE 2015: Blueprint Components to C++Gerke Max Preussner
 
Luis cataldi-ue4-vr-best-practices2
Luis cataldi-ue4-vr-best-practices2Luis cataldi-ue4-vr-best-practices2
Luis cataldi-ue4-vr-best-practices2Luis Cataldi
 
West Coast DevCon 2014: Extensibility in UE4 - Customizing Your Games and the...
West Coast DevCon 2014: Extensibility in UE4 - Customizing Your Games and the...West Coast DevCon 2014: Extensibility in UE4 - Customizing Your Games and the...
West Coast DevCon 2014: Extensibility in UE4 - Customizing Your Games and the...Gerke Max Preussner
 
West Coast DevCon 2014: Game Programming in UE4 - Game Framework & Sample Pro...
West Coast DevCon 2014: Game Programming in UE4 - Game Framework & Sample Pro...West Coast DevCon 2014: Game Programming in UE4 - Game Framework & Sample Pro...
West Coast DevCon 2014: Game Programming in UE4 - Game Framework & Sample Pro...Gerke Max Preussner
 
Getting started with Emscripten – Transpiling C / C++ to JavaScript / HTML5
Getting started with Emscripten – Transpiling C / C++ to JavaScript / HTML5Getting started with Emscripten – Transpiling C / C++ to JavaScript / HTML5
Getting started with Emscripten – Transpiling C / C++ to JavaScript / HTML5David Voyles
 
C++ on the Web: Run your big 3D game in the browser
C++ on the Web: Run your big 3D game in the browserC++ on the Web: Run your big 3D game in the browser
C++ on the Web: Run your big 3D game in the browserAndre Weissflog
 
NDC2015 멘탈레이 라이팅 튜토리얼
NDC2015 멘탈레이 라이팅 튜토리얼NDC2015 멘탈레이 라이팅 튜토리얼
NDC2015 멘탈레이 라이팅 튜토리얼Wuwon Yu
 
언리얼써밋2014 유우원
언리얼써밋2014 유우원언리얼써밋2014 유우원
언리얼써밋2014 유우원Wuwon Yu
 

Andere mochten auch (20)

Mobile Graphics (part2)
Mobile Graphics (part2)Mobile Graphics (part2)
Mobile Graphics (part2)
 
Custom fabric shader for unreal engine 4
Custom fabric shader for unreal engine 4Custom fabric shader for unreal engine 4
Custom fabric shader for unreal engine 4
 
Mobile Graphics (part1)
Mobile Graphics (part1)Mobile Graphics (part1)
Mobile Graphics (part1)
 
East Coast DevCon 2014: Engine Overview - A Programmer’s Glimpse at UE4
East Coast DevCon 2014: Engine Overview - A Programmer’s Glimpse at UE4East Coast DevCon 2014: Engine Overview - A Programmer’s Glimpse at UE4
East Coast DevCon 2014: Engine Overview - A Programmer’s Glimpse at UE4
 
Unreal conference slides
Unreal conference slidesUnreal conference slides
Unreal conference slides
 
infoShare 2013: Adam Frańczak - Techniki optymalizacyjne w UDK/ UE3
infoShare 2013: Adam Frańczak - Techniki optymalizacyjne w UDK/ UE3infoShare 2013: Adam Frańczak - Techniki optymalizacyjne w UDK/ UE3
infoShare 2013: Adam Frańczak - Techniki optymalizacyjne w UDK/ UE3
 
In The Trenches Optimizing UE4 for Intel
In The Trenches Optimizing UE4 for IntelIn The Trenches Optimizing UE4 for Intel
In The Trenches Optimizing UE4 for Intel
 
CryENGINE 3 Rendering Techniques
CryENGINE 3 Rendering TechniquesCryENGINE 3 Rendering Techniques
CryENGINE 3 Rendering Techniques
 
Session - Debugging memory stomps and other atrocities - Stefan Reinalter - T...
Session - Debugging memory stomps and other atrocities - Stefan Reinalter - T...Session - Debugging memory stomps and other atrocities - Stefan Reinalter - T...
Session - Debugging memory stomps and other atrocities - Stefan Reinalter - T...
 
East Coast DevCon 2014: Programming in UE4 - A Quick Orientation for Coders
East Coast DevCon 2014: Programming in UE4 - A Quick Orientation for CodersEast Coast DevCon 2014: Programming in UE4 - A Quick Orientation for Coders
East Coast DevCon 2014: Programming in UE4 - A Quick Orientation for Coders
 
West Coast DevCon 2014: Concurrency & Parallelism in UE4 - Tips for programmi...
West Coast DevCon 2014: Concurrency & Parallelism in UE4 - Tips for programmi...West Coast DevCon 2014: Concurrency & Parallelism in UE4 - Tips for programmi...
West Coast DevCon 2014: Concurrency & Parallelism in UE4 - Tips for programmi...
 
GDCE 2015: Blueprint Components to C++
GDCE 2015: Blueprint Components to C++GDCE 2015: Blueprint Components to C++
GDCE 2015: Blueprint Components to C++
 
Docker
DockerDocker
Docker
 
Luis cataldi-ue4-vr-best-practices2
Luis cataldi-ue4-vr-best-practices2Luis cataldi-ue4-vr-best-practices2
Luis cataldi-ue4-vr-best-practices2
 
West Coast DevCon 2014: Extensibility in UE4 - Customizing Your Games and the...
West Coast DevCon 2014: Extensibility in UE4 - Customizing Your Games and the...West Coast DevCon 2014: Extensibility in UE4 - Customizing Your Games and the...
West Coast DevCon 2014: Extensibility in UE4 - Customizing Your Games and the...
 
West Coast DevCon 2014: Game Programming in UE4 - Game Framework & Sample Pro...
West Coast DevCon 2014: Game Programming in UE4 - Game Framework & Sample Pro...West Coast DevCon 2014: Game Programming in UE4 - Game Framework & Sample Pro...
West Coast DevCon 2014: Game Programming in UE4 - Game Framework & Sample Pro...
 
Getting started with Emscripten – Transpiling C / C++ to JavaScript / HTML5
Getting started with Emscripten – Transpiling C / C++ to JavaScript / HTML5Getting started with Emscripten – Transpiling C / C++ to JavaScript / HTML5
Getting started with Emscripten – Transpiling C / C++ to JavaScript / HTML5
 
C++ on the Web: Run your big 3D game in the browser
C++ on the Web: Run your big 3D game in the browserC++ on the Web: Run your big 3D game in the browser
C++ on the Web: Run your big 3D game in the browser
 
NDC2015 멘탈레이 라이팅 튜토리얼
NDC2015 멘탈레이 라이팅 튜토리얼NDC2015 멘탈레이 라이팅 튜토리얼
NDC2015 멘탈레이 라이팅 튜토리얼
 
언리얼써밋2014 유우원
언리얼써밋2014 유우원언리얼써밋2014 유우원
언리얼써밋2014 유우원
 

Ähnlich wie Next generation mobile gp us and rendering techniques - niklas smedberg

The Next Generation of PhyreEngine
The Next Generation of PhyreEngineThe Next Generation of PhyreEngine
The Next Generation of PhyreEngineSlide_N
 
PlayStation®3 Leads Stereoscopic 3D Entertainment World
PlayStation®3 Leads Stereoscopic 3D Entertainment World PlayStation®3 Leads Stereoscopic 3D Entertainment World
PlayStation®3 Leads Stereoscopic 3D Entertainment World Slide_N
 
Parallel Graphics in Frostbite - Current & Future (Siggraph 2009)
Parallel Graphics in Frostbite - Current & Future (Siggraph 2009)Parallel Graphics in Frostbite - Current & Future (Siggraph 2009)
Parallel Graphics in Frostbite - Current & Future (Siggraph 2009)Johan Andersson
 
PlayStation: Cutting Edge Techniques
PlayStation: Cutting Edge TechniquesPlayStation: Cutting Edge Techniques
PlayStation: Cutting Edge TechniquesSlide_N
 
Initial design (Game Architecture)
Initial design (Game Architecture)Initial design (Game Architecture)
Initial design (Game Architecture)Rajkumar Pawar
 
Developing and optimizing a procedural game: The Elder Scrolls Blades- Unite ...
Developing and optimizing a procedural game: The Elder Scrolls Blades- Unite ...Developing and optimizing a procedural game: The Elder Scrolls Blades- Unite ...
Developing and optimizing a procedural game: The Elder Scrolls Blades- Unite ...Unity Technologies
 
Confrontation Pipeline and SCons
Confrontation Pipeline and SConsConfrontation Pipeline and SCons
Confrontation Pipeline and SConsslantsixgames
 
Killzone Shadow Fall Demo Postmortem
Killzone Shadow Fall Demo PostmortemKillzone Shadow Fall Demo Postmortem
Killzone Shadow Fall Demo PostmortemGuerrilla
 
Smedberg niklas bringing_aaa_graphics
Smedberg niklas bringing_aaa_graphicsSmedberg niklas bringing_aaa_graphics
Smedberg niklas bringing_aaa_graphicschangehee lee
 
The rendering technology of 'lords of the fallen' philip hammer
The rendering technology of 'lords of the fallen'   philip hammerThe rendering technology of 'lords of the fallen'   philip hammer
The rendering technology of 'lords of the fallen' philip hammerMary Chan
 
The Rendering Technology of 'Lords of the Fallen' (Game Connection Europe 2014)
The Rendering Technology of 'Lords of the Fallen' (Game Connection Europe 2014)The Rendering Technology of 'Lords of the Fallen' (Game Connection Europe 2014)
The Rendering Technology of 'Lords of the Fallen' (Game Connection Europe 2014)Philip Hammer
 
Frostbite Rendering Architecture and Real-time Procedural Shading & Texturing...
Frostbite Rendering Architecture and Real-time Procedural Shading & Texturing...Frostbite Rendering Architecture and Real-time Procedural Shading & Texturing...
Frostbite Rendering Architecture and Real-time Procedural Shading & Texturing...Johan Andersson
 
Unite Berlin 2018 - Book of the Dead Optimizing Performance for High End Cons...
Unite Berlin 2018 - Book of the Dead Optimizing Performance for High End Cons...Unite Berlin 2018 - Book of the Dead Optimizing Performance for High End Cons...
Unite Berlin 2018 - Book of the Dead Optimizing Performance for High End Cons...Unity Technologies
 
Optimizing unity games (Google IO 2014)
Optimizing unity games (Google IO 2014)Optimizing unity games (Google IO 2014)
Optimizing unity games (Google IO 2014)Alexander Dolbilov
 
Parallel Futures of a Game Engine (v2.0)
Parallel Futures of a Game Engine (v2.0)Parallel Futures of a Game Engine (v2.0)
Parallel Futures of a Game Engine (v2.0)Johan Andersson
 
Unity AMD FSR - SIGGRAPH 2021.pptx
Unity AMD FSR - SIGGRAPH 2021.pptxUnity AMD FSR - SIGGRAPH 2021.pptx
Unity AMD FSR - SIGGRAPH 2021.pptxssuser2c3c67
 
Developing games and graphic visualizations in Pascal
Developing games and graphic visualizations in PascalDeveloping games and graphic visualizations in Pascal
Developing games and graphic visualizations in PascalMichalis Kamburelis
 
SPU-Based Deferred Shading in BATTLEFIELD 3 for Playstation 3
SPU-Based Deferred Shading in BATTLEFIELD 3 for Playstation 3SPU-Based Deferred Shading in BATTLEFIELD 3 for Playstation 3
SPU-Based Deferred Shading in BATTLEFIELD 3 for Playstation 3Electronic Arts / DICE
 
De Re PlayStation Vita
De Re PlayStation VitaDe Re PlayStation Vita
De Re PlayStation VitaSlide_N
 

Ähnlich wie Next generation mobile gp us and rendering techniques - niklas smedberg (20)

The Next Generation of PhyreEngine
The Next Generation of PhyreEngineThe Next Generation of PhyreEngine
The Next Generation of PhyreEngine
 
PlayStation®3 Leads Stereoscopic 3D Entertainment World
PlayStation®3 Leads Stereoscopic 3D Entertainment World PlayStation®3 Leads Stereoscopic 3D Entertainment World
PlayStation®3 Leads Stereoscopic 3D Entertainment World
 
Parallel Graphics in Frostbite - Current & Future (Siggraph 2009)
Parallel Graphics in Frostbite - Current & Future (Siggraph 2009)Parallel Graphics in Frostbite - Current & Future (Siggraph 2009)
Parallel Graphics in Frostbite - Current & Future (Siggraph 2009)
 
PlayStation: Cutting Edge Techniques
PlayStation: Cutting Edge TechniquesPlayStation: Cutting Edge Techniques
PlayStation: Cutting Edge Techniques
 
Initial design (Game Architecture)
Initial design (Game Architecture)Initial design (Game Architecture)
Initial design (Game Architecture)
 
Developing and optimizing a procedural game: The Elder Scrolls Blades- Unite ...
Developing and optimizing a procedural game: The Elder Scrolls Blades- Unite ...Developing and optimizing a procedural game: The Elder Scrolls Blades- Unite ...
Developing and optimizing a procedural game: The Elder Scrolls Blades- Unite ...
 
Confrontation Pipeline and SCons
Confrontation Pipeline and SConsConfrontation Pipeline and SCons
Confrontation Pipeline and SCons
 
Killzone Shadow Fall Demo Postmortem
Killzone Shadow Fall Demo PostmortemKillzone Shadow Fall Demo Postmortem
Killzone Shadow Fall Demo Postmortem
 
Frostbite on Mobile
Frostbite on MobileFrostbite on Mobile
Frostbite on Mobile
 
Smedberg niklas bringing_aaa_graphics
Smedberg niklas bringing_aaa_graphicsSmedberg niklas bringing_aaa_graphics
Smedberg niklas bringing_aaa_graphics
 
The rendering technology of 'lords of the fallen' philip hammer
The rendering technology of 'lords of the fallen'   philip hammerThe rendering technology of 'lords of the fallen'   philip hammer
The rendering technology of 'lords of the fallen' philip hammer
 
The Rendering Technology of 'Lords of the Fallen' (Game Connection Europe 2014)
The Rendering Technology of 'Lords of the Fallen' (Game Connection Europe 2014)The Rendering Technology of 'Lords of the Fallen' (Game Connection Europe 2014)
The Rendering Technology of 'Lords of the Fallen' (Game Connection Europe 2014)
 
Frostbite Rendering Architecture and Real-time Procedural Shading & Texturing...
Frostbite Rendering Architecture and Real-time Procedural Shading & Texturing...Frostbite Rendering Architecture and Real-time Procedural Shading & Texturing...
Frostbite Rendering Architecture and Real-time Procedural Shading & Texturing...
 
Unite Berlin 2018 - Book of the Dead Optimizing Performance for High End Cons...
Unite Berlin 2018 - Book of the Dead Optimizing Performance for High End Cons...Unite Berlin 2018 - Book of the Dead Optimizing Performance for High End Cons...
Unite Berlin 2018 - Book of the Dead Optimizing Performance for High End Cons...
 
Optimizing unity games (Google IO 2014)
Optimizing unity games (Google IO 2014)Optimizing unity games (Google IO 2014)
Optimizing unity games (Google IO 2014)
 
Parallel Futures of a Game Engine (v2.0)
Parallel Futures of a Game Engine (v2.0)Parallel Futures of a Game Engine (v2.0)
Parallel Futures of a Game Engine (v2.0)
 
Unity AMD FSR - SIGGRAPH 2021.pptx
Unity AMD FSR - SIGGRAPH 2021.pptxUnity AMD FSR - SIGGRAPH 2021.pptx
Unity AMD FSR - SIGGRAPH 2021.pptx
 
Developing games and graphic visualizations in Pascal
Developing games and graphic visualizations in PascalDeveloping games and graphic visualizations in Pascal
Developing games and graphic visualizations in Pascal
 
SPU-Based Deferred Shading in BATTLEFIELD 3 for Playstation 3
SPU-Based Deferred Shading in BATTLEFIELD 3 for Playstation 3SPU-Based Deferred Shading in BATTLEFIELD 3 for Playstation 3
SPU-Based Deferred Shading in BATTLEFIELD 3 for Playstation 3
 
De Re PlayStation Vita
De Re PlayStation VitaDe Re PlayStation Vita
De Re PlayStation Vita
 

Mehr von Mary Chan

Jb ferder mc-10 steps to enhance the quality of your character art in zbrush-...
Jb ferder mc-10 steps to enhance the quality of your character art in zbrush-...Jb ferder mc-10 steps to enhance the quality of your character art in zbrush-...
Jb ferder mc-10 steps to enhance the quality of your character art in zbrush-...Mary Chan
 
Benoit fouletier guillaume martin unity day- modern 2 d techniques-gce2014
Benoit fouletier guillaume martin   unity day- modern 2 d techniques-gce2014Benoit fouletier guillaume martin   unity day- modern 2 d techniques-gce2014
Benoit fouletier guillaume martin unity day- modern 2 d techniques-gce2014Mary Chan
 
Amigues marie aaa_loc-gce2014
Amigues marie aaa_loc-gce2014Amigues marie aaa_loc-gce2014
Amigues marie aaa_loc-gce2014Mary Chan
 
Amigues Marie-Laurence - Localizing on a shoestring GCE2014
Amigues Marie-Laurence - Localizing on a shoestring GCE2014Amigues Marie-Laurence - Localizing on a shoestring GCE2014
Amigues Marie-Laurence - Localizing on a shoestring GCE2014Mary Chan
 
Eugene Youn Let’s Go Whale Hunting: Discover the TRUE Value of your Players -...
Eugene Youn Let’s Go Whale Hunting: Discover the TRUE Value of your Players -...Eugene Youn Let’s Go Whale Hunting: Discover the TRUE Value of your Players -...
Eugene Youn Let’s Go Whale Hunting: Discover the TRUE Value of your Players -...Mary Chan
 
Etienne Belmar Affiliate fraud in Browser and Mobile gce2014
Etienne Belmar Affiliate fraud in Browser and Mobile gce2014Etienne Belmar Affiliate fraud in Browser and Mobile gce2014
Etienne Belmar Affiliate fraud in Browser and Mobile gce2014Mary Chan
 
Moving to virtual reality chet faliszek
Moving to virtual reality    chet faliszekMoving to virtual reality    chet faliszek
Moving to virtual reality chet faliszekMary Chan
 
Engage and keep your community alive best practises and keys to success - s...
Engage and keep your community alive   best practises and keys to success - s...Engage and keep your community alive   best practises and keys to success - s...
Engage and keep your community alive best practises and keys to success - s...Mary Chan
 
Go big or go home jillian mood
Go big or go home   jillian moodGo big or go home   jillian mood
Go big or go home jillian moodMary Chan
 
The toolbox approach to f2 p design nicholas lovell
The toolbox approach to f2 p design   nicholas lovellThe toolbox approach to f2 p design   nicholas lovell
The toolbox approach to f2 p design nicholas lovellMary Chan
 
Session rahim attaba - wargaming europe sas
Session   rahim attaba - wargaming europe sasSession   rahim attaba - wargaming europe sas
Session rahim attaba - wargaming europe sasMary Chan
 
Connect to the consumer john clark
Connect to the consumer   john clarkConnect to the consumer   john clark
Connect to the consumer john clarkMary Chan
 
Organizational structure how to build an effective free to-play studio- andre...
Organizational structure how to build an effective free to-play studio- andre...Organizational structure how to build an effective free to-play studio- andre...
Organizational structure how to build an effective free to-play studio- andre...Mary Chan
 
What interior design teaches us about environment art dan cox
What interior design teaches us about environment art   dan coxWhat interior design teaches us about environment art   dan cox
What interior design teaches us about environment art dan coxMary Chan
 
Staying competitive when your brand new thing becomes the same old thing s...
Staying competitive when your brand new thing becomes the same old thing   s...Staying competitive when your brand new thing becomes the same old thing   s...
Staying competitive when your brand new thing becomes the same old thing s...Mary Chan
 
Lessons from the community building an open development dna jeff spock
Lessons from the community building an open development dna   jeff spockLessons from the community building an open development dna   jeff spock
Lessons from the community building an open development dna jeff spockMary Chan
 
Only in battlefield” how user generated video took center stage in the battle...
Only in battlefield” how user generated video took center stage in the battle...Only in battlefield” how user generated video took center stage in the battle...
Only in battlefield” how user generated video took center stage in the battle...Mary Chan
 
Playing with chance good luck marc pestka
Playing with chance good luck   marc pestkaPlaying with chance good luck   marc pestka
Playing with chance good luck marc pestkaMary Chan
 
Mixing for games levels and more... jocelyn daoust
Mixing for games levels and more...   jocelyn daoustMixing for games levels and more...   jocelyn daoust
Mixing for games levels and more... jocelyn daoustMary Chan
 
The future of game ai stephane bura
The future of game ai   stephane buraThe future of game ai   stephane bura
The future of game ai stephane buraMary Chan
 

Mehr von Mary Chan (20)

Jb ferder mc-10 steps to enhance the quality of your character art in zbrush-...
Jb ferder mc-10 steps to enhance the quality of your character art in zbrush-...Jb ferder mc-10 steps to enhance the quality of your character art in zbrush-...
Jb ferder mc-10 steps to enhance the quality of your character art in zbrush-...
 
Benoit fouletier guillaume martin unity day- modern 2 d techniques-gce2014
Benoit fouletier guillaume martin   unity day- modern 2 d techniques-gce2014Benoit fouletier guillaume martin   unity day- modern 2 d techniques-gce2014
Benoit fouletier guillaume martin unity day- modern 2 d techniques-gce2014
 
Amigues marie aaa_loc-gce2014
Amigues marie aaa_loc-gce2014Amigues marie aaa_loc-gce2014
Amigues marie aaa_loc-gce2014
 
Amigues Marie-Laurence - Localizing on a shoestring GCE2014
Amigues Marie-Laurence - Localizing on a shoestring GCE2014Amigues Marie-Laurence - Localizing on a shoestring GCE2014
Amigues Marie-Laurence - Localizing on a shoestring GCE2014
 
Eugene Youn Let’s Go Whale Hunting: Discover the TRUE Value of your Players -...
Eugene Youn Let’s Go Whale Hunting: Discover the TRUE Value of your Players -...Eugene Youn Let’s Go Whale Hunting: Discover the TRUE Value of your Players -...
Eugene Youn Let’s Go Whale Hunting: Discover the TRUE Value of your Players -...
 
Etienne Belmar Affiliate fraud in Browser and Mobile gce2014
Etienne Belmar Affiliate fraud in Browser and Mobile gce2014Etienne Belmar Affiliate fraud in Browser and Mobile gce2014
Etienne Belmar Affiliate fraud in Browser and Mobile gce2014
 
Moving to virtual reality chet faliszek
Moving to virtual reality    chet faliszekMoving to virtual reality    chet faliszek
Moving to virtual reality chet faliszek
 
Engage and keep your community alive best practises and keys to success - s...
Engage and keep your community alive   best practises and keys to success - s...Engage and keep your community alive   best practises and keys to success - s...
Engage and keep your community alive best practises and keys to success - s...
 
Go big or go home jillian mood
Go big or go home   jillian moodGo big or go home   jillian mood
Go big or go home jillian mood
 
The toolbox approach to f2 p design nicholas lovell
The toolbox approach to f2 p design   nicholas lovellThe toolbox approach to f2 p design   nicholas lovell
The toolbox approach to f2 p design nicholas lovell
 
Session rahim attaba - wargaming europe sas
Session   rahim attaba - wargaming europe sasSession   rahim attaba - wargaming europe sas
Session rahim attaba - wargaming europe sas
 
Connect to the consumer john clark
Connect to the consumer   john clarkConnect to the consumer   john clark
Connect to the consumer john clark
 
Organizational structure how to build an effective free to-play studio- andre...
Organizational structure how to build an effective free to-play studio- andre...Organizational structure how to build an effective free to-play studio- andre...
Organizational structure how to build an effective free to-play studio- andre...
 
What interior design teaches us about environment art dan cox
What interior design teaches us about environment art   dan coxWhat interior design teaches us about environment art   dan cox
What interior design teaches us about environment art dan cox
 
Staying competitive when your brand new thing becomes the same old thing s...
Staying competitive when your brand new thing becomes the same old thing   s...Staying competitive when your brand new thing becomes the same old thing   s...
Staying competitive when your brand new thing becomes the same old thing s...
 
Lessons from the community building an open development dna jeff spock
Lessons from the community building an open development dna   jeff spockLessons from the community building an open development dna   jeff spock
Lessons from the community building an open development dna jeff spock
 
Only in battlefield” how user generated video took center stage in the battle...
Only in battlefield” how user generated video took center stage in the battle...Only in battlefield” how user generated video took center stage in the battle...
Only in battlefield” how user generated video took center stage in the battle...
 
Playing with chance good luck marc pestka
Playing with chance good luck   marc pestkaPlaying with chance good luck   marc pestka
Playing with chance good luck marc pestka
 
Mixing for games levels and more... jocelyn daoust
Mixing for games levels and more...   jocelyn daoustMixing for games levels and more...   jocelyn daoust
Mixing for games levels and more... jocelyn daoust
 
The future of game ai stephane bura
The future of game ai   stephane buraThe future of game ai   stephane bura
The future of game ai stephane bura
 

Kürzlich hochgeladen

Training state-of-the-art general text embedding
Training state-of-the-art general text embeddingTraining state-of-the-art general text embedding
Training state-of-the-art general text embeddingZilliz
 
How AI, OpenAI, and ChatGPT impact business and software.
How AI, OpenAI, and ChatGPT impact business and software.How AI, OpenAI, and ChatGPT impact business and software.
How AI, OpenAI, and ChatGPT impact business and software.Curtis Poe
 
Anypoint Exchange: It’s Not Just a Repo!
Anypoint Exchange: It’s Not Just a Repo!Anypoint Exchange: It’s Not Just a Repo!
Anypoint Exchange: It’s Not Just a Repo!Manik S Magar
 
How to write a Business Continuity Plan
How to write a Business Continuity PlanHow to write a Business Continuity Plan
How to write a Business Continuity PlanDatabarracks
 
New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024
New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024
New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024BookNet Canada
 
What's New in Teams Calling, Meetings and Devices March 2024
What's New in Teams Calling, Meetings and Devices March 2024What's New in Teams Calling, Meetings and Devices March 2024
What's New in Teams Calling, Meetings and Devices March 2024Stephanie Beckett
 
Generative AI for Technical Writer or Information Developers
Generative AI for Technical Writer or Information DevelopersGenerative AI for Technical Writer or Information Developers
Generative AI for Technical Writer or Information DevelopersRaghuram Pandurangan
 
Passkey Providers and Enabling Portability: FIDO Paris Seminar.pptx
Passkey Providers and Enabling Portability: FIDO Paris Seminar.pptxPasskey Providers and Enabling Portability: FIDO Paris Seminar.pptx
Passkey Providers and Enabling Portability: FIDO Paris Seminar.pptxLoriGlavin3
 
Artificial intelligence in cctv survelliance.pptx
Artificial intelligence in cctv survelliance.pptxArtificial intelligence in cctv survelliance.pptx
Artificial intelligence in cctv survelliance.pptxhariprasad279825
 
The Role of FIDO in a Cyber Secure Netherlands: FIDO Paris Seminar.pptx
The Role of FIDO in a Cyber Secure Netherlands: FIDO Paris Seminar.pptxThe Role of FIDO in a Cyber Secure Netherlands: FIDO Paris Seminar.pptx
The Role of FIDO in a Cyber Secure Netherlands: FIDO Paris Seminar.pptxLoriGlavin3
 
Take control of your SAP testing with UiPath Test Suite
Take control of your SAP testing with UiPath Test SuiteTake control of your SAP testing with UiPath Test Suite
Take control of your SAP testing with UiPath Test SuiteDianaGray10
 
A Journey Into the Emotions of Software Developers
A Journey Into the Emotions of Software DevelopersA Journey Into the Emotions of Software Developers
A Journey Into the Emotions of Software DevelopersNicole Novielli
 
From Family Reminiscence to Scholarly Archive .
From Family Reminiscence to Scholarly Archive .From Family Reminiscence to Scholarly Archive .
From Family Reminiscence to Scholarly Archive .Alan Dix
 
Merck Moving Beyond Passwords: FIDO Paris Seminar.pptx
Merck Moving Beyond Passwords: FIDO Paris Seminar.pptxMerck Moving Beyond Passwords: FIDO Paris Seminar.pptx
Merck Moving Beyond Passwords: FIDO Paris Seminar.pptxLoriGlavin3
 
WordPress Websites for Engineers: Elevate Your Brand
WordPress Websites for Engineers: Elevate Your BrandWordPress Websites for Engineers: Elevate Your Brand
WordPress Websites for Engineers: Elevate Your Brandgvaughan
 
"Subclassing and Composition – A Pythonic Tour of Trade-Offs", Hynek Schlawack
"Subclassing and Composition – A Pythonic Tour of Trade-Offs", Hynek Schlawack"Subclassing and Composition – A Pythonic Tour of Trade-Offs", Hynek Schlawack
"Subclassing and Composition – A Pythonic Tour of Trade-Offs", Hynek SchlawackFwdays
 
Tampa BSides - Chef's Tour of Microsoft Security Adoption Framework (SAF)
Tampa BSides - Chef's Tour of Microsoft Security Adoption Framework (SAF)Tampa BSides - Chef's Tour of Microsoft Security Adoption Framework (SAF)
Tampa BSides - Chef's Tour of Microsoft Security Adoption Framework (SAF)Mark Simos
 
New from BookNet Canada for 2024: Loan Stars - Tech Forum 2024
New from BookNet Canada for 2024: Loan Stars - Tech Forum 2024New from BookNet Canada for 2024: Loan Stars - Tech Forum 2024
New from BookNet Canada for 2024: Loan Stars - Tech Forum 2024BookNet Canada
 
"Debugging python applications inside k8s environment", Andrii Soldatenko
"Debugging python applications inside k8s environment", Andrii Soldatenko"Debugging python applications inside k8s environment", Andrii Soldatenko
"Debugging python applications inside k8s environment", Andrii SoldatenkoFwdays
 
Sample pptx for embedding into website for demo
Sample pptx for embedding into website for demoSample pptx for embedding into website for demo
Sample pptx for embedding into website for demoHarshalMandlekar2
 

Kürzlich hochgeladen (20)

Training state-of-the-art general text embedding
Training state-of-the-art general text embeddingTraining state-of-the-art general text embedding
Training state-of-the-art general text embedding
 
How AI, OpenAI, and ChatGPT impact business and software.
How AI, OpenAI, and ChatGPT impact business and software.How AI, OpenAI, and ChatGPT impact business and software.
How AI, OpenAI, and ChatGPT impact business and software.
 
Anypoint Exchange: It’s Not Just a Repo!
Anypoint Exchange: It’s Not Just a Repo!Anypoint Exchange: It’s Not Just a Repo!
Anypoint Exchange: It’s Not Just a Repo!
 
How to write a Business Continuity Plan
How to write a Business Continuity PlanHow to write a Business Continuity Plan
How to write a Business Continuity Plan
 
New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024
New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024
New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024
 
What's New in Teams Calling, Meetings and Devices March 2024
What's New in Teams Calling, Meetings and Devices March 2024What's New in Teams Calling, Meetings and Devices March 2024
What's New in Teams Calling, Meetings and Devices March 2024
 
Generative AI for Technical Writer or Information Developers
Generative AI for Technical Writer or Information DevelopersGenerative AI for Technical Writer or Information Developers
Generative AI for Technical Writer or Information Developers
 
Passkey Providers and Enabling Portability: FIDO Paris Seminar.pptx
Passkey Providers and Enabling Portability: FIDO Paris Seminar.pptxPasskey Providers and Enabling Portability: FIDO Paris Seminar.pptx
Passkey Providers and Enabling Portability: FIDO Paris Seminar.pptx
 
Artificial intelligence in cctv survelliance.pptx
Artificial intelligence in cctv survelliance.pptxArtificial intelligence in cctv survelliance.pptx
Artificial intelligence in cctv survelliance.pptx
 
The Role of FIDO in a Cyber Secure Netherlands: FIDO Paris Seminar.pptx
The Role of FIDO in a Cyber Secure Netherlands: FIDO Paris Seminar.pptxThe Role of FIDO in a Cyber Secure Netherlands: FIDO Paris Seminar.pptx
The Role of FIDO in a Cyber Secure Netherlands: FIDO Paris Seminar.pptx
 
Take control of your SAP testing with UiPath Test Suite
Take control of your SAP testing with UiPath Test SuiteTake control of your SAP testing with UiPath Test Suite
Take control of your SAP testing with UiPath Test Suite
 
A Journey Into the Emotions of Software Developers
A Journey Into the Emotions of Software DevelopersA Journey Into the Emotions of Software Developers
A Journey Into the Emotions of Software Developers
 
From Family Reminiscence to Scholarly Archive .
From Family Reminiscence to Scholarly Archive .From Family Reminiscence to Scholarly Archive .
From Family Reminiscence to Scholarly Archive .
 
Merck Moving Beyond Passwords: FIDO Paris Seminar.pptx
Merck Moving Beyond Passwords: FIDO Paris Seminar.pptxMerck Moving Beyond Passwords: FIDO Paris Seminar.pptx
Merck Moving Beyond Passwords: FIDO Paris Seminar.pptx
 
WordPress Websites for Engineers: Elevate Your Brand
WordPress Websites for Engineers: Elevate Your BrandWordPress Websites for Engineers: Elevate Your Brand
WordPress Websites for Engineers: Elevate Your Brand
 
"Subclassing and Composition – A Pythonic Tour of Trade-Offs", Hynek Schlawack
"Subclassing and Composition – A Pythonic Tour of Trade-Offs", Hynek Schlawack"Subclassing and Composition – A Pythonic Tour of Trade-Offs", Hynek Schlawack
"Subclassing and Composition – A Pythonic Tour of Trade-Offs", Hynek Schlawack
 
Tampa BSides - Chef's Tour of Microsoft Security Adoption Framework (SAF)
Tampa BSides - Chef's Tour of Microsoft Security Adoption Framework (SAF)Tampa BSides - Chef's Tour of Microsoft Security Adoption Framework (SAF)
Tampa BSides - Chef's Tour of Microsoft Security Adoption Framework (SAF)
 
New from BookNet Canada for 2024: Loan Stars - Tech Forum 2024
New from BookNet Canada for 2024: Loan Stars - Tech Forum 2024New from BookNet Canada for 2024: Loan Stars - Tech Forum 2024
New from BookNet Canada for 2024: Loan Stars - Tech Forum 2024
 
"Debugging python applications inside k8s environment", Andrii Soldatenko
"Debugging python applications inside k8s environment", Andrii Soldatenko"Debugging python applications inside k8s environment", Andrii Soldatenko
"Debugging python applications inside k8s environment", Andrii Soldatenko
 
Sample pptx for embedding into website for demo
Sample pptx for embedding into website for demoSample pptx for embedding into website for demo
Sample pptx for embedding into website for demo
 

Next generation mobile gp us and rendering techniques - niklas smedberg

  • 1. Next-gen Mobile GPUs and Rendering Techniques Game Connection, October 29-31, 2014 Niklas Smedberg Senior Engine Programmer, Epic Games
  • 2. Game Connection, October 29-31, 2014 Introduction • Niklas Smedberg, a.k.a. “Smedis” – 17 years in the game industry – Graphics programmer since the C64 demo scene
  • 3. Game Connection, October 29-31, 2014 Content • Next-gen Hardware – Tile-based GPU vs direct-rendering GPU • Next-gen Rendering Techniques – Unreal Engine 4 – Previous goal: Bringing AAA Console graphics to mobile (DONE!) – New goal: Bringing AAA PC graphics to mobile (DONE!??)
  • 4. Next Generation Mobile Hardware Game Connection, October 29-31, 2014 • Big leap in features and performance • Full-featured (e.g. OpenGL ES 3.1+AEP, DirectX 10/11) • Peak performance now comparable to consoles (Xbox 360/PS3) – About 300+ GFLOPS and 26 GB/s • New goal: Bring AAA PC graphics to mobile
  • 5. Performance Trends (FP16 GFLOPS) Game Connection, October 29-31, 2014 6.4 12.8 25.5 154 300+ 350 300 250 200 150 100 50 0 2010 2011 2012 2013 2014 2010 SGX 535 2011 SGX 543MP2 2012 SGX 543MP3 2013 G6430 2014 Adreno, K1, GX6650
  • 6. Game Connection, October 29-31, 2014 iOS 8 Metal • New rendering API for iOS • Better match for the hardware – Like a “game console API” – Much more efficient on the CPU – Exposes hardware features • 20x faster on our rendering thread – OpenGL ES API: 30% of renderthread – Metal API: 1.6% of renderthread • All power and perf responsibility is now in the hands of the developer!
  • 7. Tech Demo: Zen Garden Game Connection, October 29-31, 2014
  • 8. Game Connection, October 29-31, 2014 Tile-based Mobile GPU • Mobile GPUs are usually tile-based (next-gen too) – Tile-based: ImgTec, Qualcomm*, ARM – Direct: NVIDIA, Intel, Vivante * Qualcomm Adreno can render either tile-based or direct to frame buffer – Extension: GL_QCOM_binning_control
  • 9. Game Connection, October 29-31, 2014 Tile-Based Mobile GPU Summary: • Split the screen into tiles – E.g. 32x32 pixels (ImgTec) or 300x300 (Qualcomm) • The whole tile fits within GPU, on chip • Process all drawcalls for one tile – Write out final tile results to RAM • Repeat for each tile to fill the image in RAM
  • 10. ImgTec Tile-based Rendering Process Game Vertex Processing Tile Data (RAM) Game Connection, October 29-31, 2014 Pixel Processing (Top-most only) Frame Buffer (RAM) Cmd Buffer (RAM) Hidden Surface Removal Tile Memory Per Tile:
  • 11. Game Connection, October 29-31, 2014 ImgTec Series 6 G6430 • One GPU core • Four shader units (USC) – 16-way scalar • FP16: Two SOP per clock – (a*b + c*d) • FP32: Two MADD per clock – (a*b + c) • 154 GFLOPS @ 400 MHz – 16-bit floating point
  • 12. Game Connection, October 29-31, 2014 FP16 Is Faster Than FP32 • ImgTec Series 6: 50% faster – FP16 pipeline: Two SOP per clock – FP32 pipeline: Two MADD per clock • ImgTec Series 6XT: 100% faster – FP16 pipeline: Four MADD per clock – FP32 pipeline: Two MADD per clock • Qualcomm Snapdragon: 100% faster
  • 13. Game Connection, October 29-31, 2014 ImgTec Rendering Tips • Hidden Surface Removal – For opaque only – Don’t keep alpha-test enabled all the time – Don’t keep “discard” keyword in shader source, even if it’s not used • Group opaque drawcalls together • Sort on state, not distance
  • 14. Game Connection, October 29-31, 2014 Framebuffer Resolve/Restore • Expensive to switch Frame Buffer Object on Tile-based GPUs – Saves the current FBO to RAM – Reloads the new FBO from RAM • Best performance: – A single rendertarget for the entire frame – No post-processing passes • Does not apply to NVIDIA Tegra GPUs! – This made it simpler for us to make our “Rivalry” tech demo for K1
  • 15. Game Connection, October 29-31, 2014 Framebuffer Resolve/Restore • Clear ALL FBO attachments after new frame/rendertarget – Clear after eglSwapBuffers / glBindFramebuffer – Avoids reloading FBO from RAM – NOTE: Do NOT clear unnecessary on non-tile-based GPUs (e.g. NVIDIA) • Discard unused attachments before new frame/rendertarget – Discard before eglSwapBuffers / glBindFramebuffer – Avoids saving unused FBO attachments to RAM – glDiscardFramebufferEXT / glInvalidateFramebuffer
  • 16. Game Connection, October 29-31, 2014 iOS Performance Profiling • Screenshot from Xcode, which shows: – How we clear FBO at the beginning of every render pass – Other important performance info
  • 17. Game Connection, October 29-31, 2014 Programmable Blending • GL_EXT_shader_framebuffer_fetch (gl_LastFragData) • Reads current pixel background “for free” • Potential uses: – Custom color blending – Blend by background depth value (depth in alpha) • E.g. Soft intersection against world geometry for particles – Tone-mapping within tile-memory – Deferred shading without resolving G-buffer • Stay on GPU and avoid expensive round-trip to RAM • See also: GL_EXT_shader_pixel_local_storage
  • 18. Soul: Programmable Blending Game DeGvealmopee Cr Cononnefecrteionnc,e O, Mctoabrcehr 295-3219, 20143
  • 19. Core Optimization: Opaque Draw Ordering Game Connection, October 29-31, 2014 • All platforms, 1. Group draws by material (shader) to reduce state changes • Then for all platforms except ImgTec, 2. Skybox last: 5 ms/frame savings (vs drawing skybox first) 3. Sort groups nearest first : extra 3 ms/frame savings 4. Sort inside groups nearest first : extra 7 ms/frame savings • (Timings from a UE4 map on a Qualcomm-based device)
  • 20. Game Connection, October 29-31, 2014 Optimization: Resolution • Resolution does not match GPU performance! • Use custom resolution to match perf/pixel • Examples of same GPU: – iPhone 5S = 0.7 Mpix (1136x640) – iPad Air = 3.1 Mpix (2048x1536), more than 4 times slower! • Other examples: – Prev-Gen Console = 0.9 Mpix (1280x720) – Current-Gen Console = 2.1 Mpix (1920x1080)
  • 21. Single Content, Multiple Platforms Game Connection, October 29-31, 2014 • Core motivating factor in designing UE4 – Authoring consistency between PC and Mobile • Authoring environment for both platforms – Physically-based shading model – High dynamic range linear color space – High quality post processing
  • 22. Game DeGvealmopee Cr Cononnefecrteionnc,e O, Mctoabrcehr 295-3219, 20143 Comparison: PC
  • 23. Comparison: Mobile Game DeGvealmopee Cr Cononnefecrteionnc,e O, Mctoabrcehr 295-3219, 20143
  • 24. Game Connection, October 29-31, 2014 Consistency: Material Editor • One material for many platforms – Artist authored feature levels to scale shader perf from PC to mobile • Using cross compiler tool to retarget HLSL into GLSL
  • 25. Directional Light + SDF Shadows Game DeGvealmopee Cr Cononnefecrteionnc,e O, Mctoabrcehr 295-3219, 20143
  • 26. Consistency: HDR Directional Lightmaps Game Connection, October 29-31, 2014 • Two compressed + One uncompressed textures: 1. HDR color with log luma encoding 2. World space 1st order spherical harmonic luma directionality 3. SDF shadow texture • Optimized for Mobile and PVRTC compression: – PVRTC (ImgTec) lacks separately compressed encoding for alpha – PC color: RGB/Luma, LogLuma in Alpha – Mobile color: RGB/Luma * LogLuma, no Alpha (LogLuma derived with ALU) – Mobile: A single dynamic directional light as the “sun”
  • 27. Image-Based Lighting Game DeGvealmopee Cr Cononnefecrteionnc,e O, Mctoabrcehr 295-3219, 20143
  • 28. Game Connection, October 29-31, 2014 Image-Based Lighting • Selects a mip-level in an IBL cubemap based on per-pixel roughness – Same as PC, filtering same as PC • PC: FP16 • Mobile: Decode(RGBM)^2 • PC: Blend multiple cubemaps per surface and parallax correction • Mobile: One infinite-distance cubemap per object
  • 29. 1/2 DOF Downsample 1/2 DOF Filter Tonemapping Game Connection, October 29-31, 2014 Mobile Post Processing Pipeline FP16 RGB=Color A=Depth Anti-Aliasing 1/4 DOF Near Dilation 1/4 Lightshaft Filter, Pass 1 1/4 Final Filter Passes and Merge {Light Shafts, Bloom, Vignette} Bloom Filter Tree 1/4 Lightshaft Filter, Pass 2 1/4 Smart Reduction Light Shaft (Sun) Mask A=Depth to A=CoC+Sun [conversion done on chip if possible] 1/8 1/16 1/32 1/8 1/16 1/32 1/64
  • 30. Mobile Depth of Field Game DeGvealmopee Cr Cononnefecrteionnc,e O, Mctoabrcehr 295-3219, 20143
  • 31. Packed Circle of Confusion and Sun Intensity Game Connection, October 29-31, 2014 • Optimization done for Depth of Field and Light Shafts – Represent sun intensity and circle of confusion (CoC) in one FP16 value – Saves needing an extra render target Depth (0 to 65504) CoC (0 to 1) Sun Intensity (1 to 65504) 0=Max Near Bokeh 0.5=In Focus 1=Max Far Bokeh and No Sun 65504=Max Sun (still at Max Far Bokeh)
  • 32. Vignette + Bloom + Light Shafts Game DeGvealmopee Cr Cononnefecrteionnc,e O, Mctoabrcehr 295-3219, 20143
  • 33. Vignette + Bloom + Light Shafts: Optimized Game Connection, October 29-31, 2014 • Composited at quarter resolution – Using pre-multiplied alpha FP16 – Also performs the final filtering passes for bloom and light shafts • Optimized to minimize rendertarget switches • 3 effects applied to scene with one full-res TEX fetch – Applied in the tonemap pass
  • 34. Game Connection, October 29-31, 2014 Mobile Light Shafts • Filtered at quarter resolution • Monochromatic with artist controlled tint on final composite – Bloom and light shaft down-sample pass shared – RGB = color for bloom, A = light shaft intensity • Light shaft filter runs in tonemapped space (8-bit/channel) – Applied in linear (reverse tonemap before tint and composite) • Filtering done by 3 passes of 8 taps
  • 35. Game DeGvealmopee Cr Cononnefecrteionnc,e O, Mctoabrcehr 295-3219, 20143 Mobile Bloom
  • 36. Game Connection, October 29-31, 2014 Mobile Bloom • Lower quality version to minimize resolves – Limited effect radius and less passes • Turns out to be faster and higher-quality – Standard hierarchical algorithm with some optimizations – Down-sample from 1:1/4 res first (shared with light shaft) – Then down-sample in 1:1/2 resolution passes – Single pass circle-based filter (instead of two-pass Gaussian) • 15 taps on circle during down-sampling • 7 taps for both circles during up-sample+merge pass
  • 37. Film Post Tonemapping Game DeGvealmopee Cr Cononnefecrteionnc,e O, Mctoabrcehr 295-3219, 20143
  • 38. Film Post Tonemapping: Mobile Shader Game Connection, October 29-31, 2014 Film Post RGBA8 LDR sRGB Output Quantization Grain (optional) Shadow Tint (optional) Color Matrix {Saturation, Channel Mixer} (optional) Tint, Tonemap Curve Linear to sRGB RGBA16F HDR Linear Color Blend in DOF (optional) 1/2 DOF Film Grain Jitter (optional) Blend in {Bloom, Vignette, Light Shafts} (optional) Film Grain (optional) 1/4 Pre-multiplied Alpha
  • 39. Game DeGvealmopee Cr Cononnefecrteionnc,e O, Mctoabrcehr 295-3219, 20143 Anti-Aliasing
  • 40. Game Connection, October 29-31, 2014 Anti-Aliasing on Mobile • Using a spatial & temporal anti-aliasing filter – 2x temporal super-sampling (higher quality surface shading) – Blending two jittered frames after tonemapping (32 bpp, perceptual color space) – Some special logic to remove ghosting/judder (not using motion re-projection) • Not currently using MSAA – Needed super-sampled shading for HDR physically based shading model Pixel
  • 41. All Techniques Combined Game DeGvealmopee Cr Cononnefecrteionnc,e O, Mctoabrcehr 295-3219, 20143
  • 42. Game Connection, October 29-31, 2014 Android Extension Pack • Released with Android “L” • OpenGL ES 3.1 plus a specific set of extensions – Compute shaders – Tessellation – ASTC – Detailed spec on www.khronos.org: GL_ANDROID_extension_pack_es31a • Full UE4 desktop rendering pipeline on Android! – Deferred rendering with G-buffer – Physically-based shading – Image-based lighting – Solid 30 FPS on NVIDIA K1 mobile GPU
  • 43. Tech Demo: Rivalry Game Connection, October 29-31, 2014
  • 44. Game Connection, October 29-31, 2014 Unreal Engine 4 Full source code available! unrealengine.com Includes all C++, shaders, tools, content $19/mo

Hinweis der Redaktion

  1. Important: Device manufacturers tweak hardware settings! 2010 SGX 535 @ 200 MHz 6.4 GFLOPS 2011 SGX 543MP2 @ 200 MHz 12.8 GFLOPS 2012 SGX 543MP3 @ 266 MHz 25.5 GFLOPS 2012 Adreno 225 @ 400 MHz 28.8 GFLOPS 2013 G6430 @ 400 MHz 154 GFLOPS Adreno 300+ GFLOPS
  2. The method of “processing all drawcalls for one tile” differ between GPU architectures. Details in later slides.
  3. Hidden Surface Removal: Order-independent per pixel (opaque only)
  4. G6430 diagram: Shows one GPU core, 4 SIMD, 16 fp16 pipelines and 16 fp32 pipelines (no dual-issue). Compare with SGX USSE.
  5. Example of programmable blending in the “Soul” tech demo: Waterfall on the right
  6. Before, we were rendering into gamma-space, but now because of fp16 we can run in linear color space, with lighting in HDR. We need high-quality post-processing, because physically-based shading puts extra challenges on materials, especially when the camera is in motion.
  7. Here is the mobile SunTemple map with some post process changes, as rendered using the PC path in UE4. Resolution 1920x1200.
  8. Same map rendered with the mobile renderer with DOF on. Compared to PC: Lighting is slightly different - reflections are less accurate, anti-aliasing is not as good. However, the same game content can run on all platforms and still look quite consistent between the two platforms.
  9. You can create a single material that renders the same way on both platforms. If you want to make something special on one platform, we support “Feature Level switches” which lets you can special graph paths that only execute on higher-end devices. This makes it possible to create a single material that can scale from very low-end to very high-end devices.
  10. The signed distance field shadows enables a clean silhouette. This shot is rendered using the mobile renderer at 1920x1200 with AA, grain, depth of field, bloom, and leveraging film post for the black and white conversion. The B&W conversion has warm tint to the highlights and a cool tint to the shadows. Resolution would be lower on a mobile device.
  11. On mobile LogLuma is computed by taking Luminance of the RGB (extra math).
  12. This shot is entirely in shadow. There is no direct light from the sun. All light is coming from reflection cubemaps that has been pre-captured. Specular and reflections from the fire is generated from image based lighting. This shot is 1920x1200 rendered in the mobile path with AA, grain, depth of field, bloom, and leveraging film post for the black and white conversion. The B&W conversion has warm tint to the highlights and a cool tint to the shadows. Resolution would be lower on a mobile device.
  13. Lots of managed complexity: many passes ended up getting merged to save on resolves. Bloom, DOF, Light shafts, Vignette, Tonemapping, Anti-aliasing
  14. We can’t do the large Bokeh that we do on PC, so we changed the mobile DoF to focus on the quality of the blur and the transitions, rather than just large Bokeh. Supporting both near and far depth of field via separate focal planes. This is not physically correct, but important for gameplay purposes. Supporting only a small max circle of confusion size for performance reasons, equivalent to 16 taps.
  15. Optimization done for Depth of Field and Light Shafts Represent both sun intensity and CoC in one FP16 value Saves needing an extra render target (saves both an FBO switch and an extra texture lookup) Note CoC is effectively an alternative encoding for depth Encode Alpha = CoC size + sun intensity Where CoC size is {0.0 = maximum near CoC size, 0.5 = in focus (CoC=0.0), 1.0 = maximum far CoC size (the infinite far plane)} Decode CoC size = clamp(Alpha, 0.0, 1.0) sun intensity = max(0.0, Alpha - 1.0) Works because sun is only at CoC = max far size, and light shafts are monochromatic On GPUs with framebuffer fetch this transform is done inline without a resolve
  16. All three effects are combined in a quarter-res buffer. Warm light from outside, but cold lighting inside: Monochromatic light shafts with a blue tint + vignette with blue tint + bloom with no tint.
  17. Filtering of the light shafts is done in tonemapped space as an optimization for bandwidth.
  18. We can now run our high-quality bloom path on mobile, allowing a very wide bloom.
  19. Down-sampled to 1/64, then back up to 1/4 resolution. Ring-filter, where no sample is on the same vertical or horizontal axis. Applied in a hierarchical fashion, which gives us very good results. Running in FP16 linear HDR 32-bit RGBM does not filter 32-bit RGBT (RGB ratio, tonemapped luma) too expensive (ALU)
  20. The same scene from two different camera positions and two completely different film post settings. Left has film-grain, right does not.
  21. Overview of features exposed by permutations of the tonemapping shader. Uber-shader that combines many passes, for optimization. Quantization grain can be used to break up darker shades in sRGB.
  22. This shot uses anti-aliasing, depth of field, grain, and the film post controls. Anti-aliasing is running in linear color space.
  23. Bilinear fetch to remove jittered sub-pixel offset (small spatial filter) Neighborhood clamp to remove ghosting Thin features may only show in one of the two frame, so need to allow a fraction of prior frame outside neighborhood to remove flickering of these thin features Reduce allowance as camera rotation increases to remove judder Not using full motion re-projection, e.g. using a motion vector field (too expensive)