SlideShare a Scribd company logo
1 of 78
Project Neema
Deferred
                Lighting



S.T.A.L.K.E.R


                 Killzone 2
Technique
• Render all lights to a light buffer
• Apply the light buffer on the back buffer
• MRT
   – Depth
   – Normal
   – Specular
Flash
• We do not have MRT
  – Must use a single 8-bit texture

  – Normal and depth encoding
Flash
• Stencil optimization is important




             http://www.guerrilla-games.com/publications/dr_kz2_rsx_dev07.pdf




• Stencil testing is also available in Flash 11
Technique Overhead
– Render all object with encoding
– Render two sphere for each light
Shadow
    Mapping

                     • KillZone 2




• Assassin’s creed
In Flash?
• context3d.setRenderToTexture( DistanceFromLight, aUseDepth,aAliasing);
• context3d.clear()
• Render scene from directional light and write depth

• context3d.setRenderToBackBuffer();
• context3d.setTextureAt(0, DistanceFromLight);
• Render scene, compare depth and apply shadow
Finding Next-Gen CryEngine2
                                    [Siggraph07]




GPU Gems Convolution Blur
Cascade Shadow Map
•   Screen 4 écrans
Cascade Shadow Map
•   Screen 4 écrans
Cascade Shadow Map
•   Screen 4 écrans
Cascade Shadow Map
_context3D.setScissorRectangle(new Rectangle(300, 100, 360, 240));
Screen Space Ambient Occlusion
•   Requirement
     –   Depth


•   Technique
     –   Sample multiple times from depth
     –   Determine which pixels are occluded
SSAO Comparison

     200 Instructions 163 Instructions



      Technique 1     Technique 2
                      0.120 ms slower
Triplanar Texturing
•   Nvidia
•   Tiled UV based on vertex position for each axis
•   Albedo and normal
Triplanar Texturing


                          Z



X

             Y
Triplanar Projection




                       Simple UV Unwrap
Flash
• Shader with a lot of instructions
• Lots of sampling

• GT8600:           3 ms
• Radeon HD 2400: 1.2 ms
2D UI
Interface
•   Pro
     – It’s native!
     – Toolset
     – Multithreaded rasterizer?


• Cons
     – Not GPU-accelerated.

     – Image in game interface
++2D UI
•   Complementing Flash 11 3D
•   Technique
     – Projecting 2D elements in the scene
     – Keeping mouse events
     – Keeping vector animations and blends
     – Native text rendering
     – Game design & art helper tools
     – Easy to integrate, debug Minimal Components

•   Result in Flash
     – Final
Helpers
Helpers
• (In-game image/video)
Flash CPU
• Why
  – Single-threaded


• How
  – Azoth
        • Easy to debug (Breakpoints)


• What
  – Scene partitioning
  – Particle transformation
Alchemy
• Alchemy allows C and C++ code to run in the ActionScript
  Virtual Machine (AVM2).
• The C/C++ code is converted to AS3 using a special compiler,
  and then built into a SWC.
• This enables the porting of several existing solid and proven
  libraries.
• The compiler also performs a lot of optimization to make the
  code run faster by using fast memory access.
Alchemy Flow
What is Bullet
• Physics engine
• Simple
   –   Dynamic and static volume and mesh
   –   Apply force and impulse
   –   Generate collision callback
   –   Character controller
• But also
   – Dynamic constraint
   – Clothing
   – More…
Bullet Physics
• Open Source
• Who uses Bullet?
          Games              Movies    Software
    Grand Theft Auto IV     Megamind    Blender
   Red Dead Redemption        Bolt     Softimage
        Free Realms           2012      Irrlicht
Recast Navigation
Recast Navigation
Detour / Detour Crowd
• Detour is a pathfinding system
• It use Recast’s navigation mesh
• It Manages collision, avoidance, separation, etc.
Pyro
What is Pyro
• It’s user friendly
• It manage properties such as:
   – Life, number, size, velocity, weight, spin, motion rand
   – Wind, Angular velocity, attraction, zoom, visibility, tint
   – Sub-Emiters and a lot more!
• Support variation over time of properties
• « Per title » License
Pyro
• (In-game image/video)
From Flash to Flash 3D
• There is no such thing as Display List Management
• There is no time line
    –   No clip animation
    –   No script on frames
    –   No label and dispatch
    –   No gotoAndPlay()
• No library
    – No exported symbol
    – No centralized asset list


• Testing collision is a bit more difficult than the DisplayObject.HitTest()
From Flash to Flash3D
• Several 3D frameworks already exist for Flash 11:
    –   Alternativa
    –   Minko
    –   Flare3D
    –   Away3D
    –   Yogurt3D
    –   Frima Icefield.


• There are also several existing Flash helpers (Flash.MathUtils, Flash.Math.Utils3d)
• Concepts you will need to learn:
    – 3D space coordinates
    – Object transformation using Matrix3D and Vector3D
    – Shaders open new door to wonderful effects
From 3D to Flash 3D
• FP11 targets desktops, tablets and mobiles!
   – API limited to OpenGL ES 2.0 definition
   – Limit of 200 shader instructions
   – Limited shader instructions (no branching, no MAD, etc.)
• Overhead on Change Target (20%)
   – Auto MipMapping
   – Loss of depth
• Anti-aliasing only on BackBuffer
• Only support 8-bit textures (HDR)
• No MRT
From Anyone to Flash3D
•   Single-threaded
•   No mouse lock (FPS)
•   Limited keyboard in fullscreen
•   Streamable content (Web-based)
    –   Files download weight
    –   Load only when needed
    –   Limited browser cache
    –   Async resource loading
• Can use the regular Flash 2D interfaces
Tech Demo Reel
• Show all interesting elements
• Very short video of each
• “Epic music”
You might ask
• Why not using Unity ?

• What about HTML5 ?
• Alchemy is still beta, would you consider
  using it in production?
• Are you single ?
Contacts
• Jean-Philippe Doiron
  – jpd@frimastudio.com
  – @jphildoiron

• Jean-Philippe Auclair
  – jpauclair@frimastudio.com
  – @jpauclair
  – jpauclair.net
References
•   http://www.guerrilla-games.com/publications/dr_kz2_rsx_dev07.pdf
•   http://http.developer.nvidia.com/GPUGems2/gpugems2_chapter09.html
•   http://http.developer.nvidia.com/GPUGems/gpugems_ch21.html
•   http://http.developer.nvidia.com/GPUGems3/gpugems3_ch01.html
Turn in your surveys for a chance to WIN!
• Hand in your surveys to the room
  monitors

• One survey per session will be selected
  as a winner of an Adobe Press e-book or
  Video
   Introduction to Adobe Edge
   Web Design with Muse (code name) from
   Adobe
   Android App Development and Design:
   Learn by Video

• Winners will be notified via e-mail at the
  end of each day

More Related Content

What's hot

Optimization in Unity: simple tips for developing with "no surprises" / Anton...
Optimization in Unity: simple tips for developing with "no surprises" / Anton...Optimization in Unity: simple tips for developing with "no surprises" / Anton...
Optimization in Unity: simple tips for developing with "no surprises" / Anton...DevGAMM Conference
 
Unite 2013 optimizing unity games for mobile platforms
Unite 2013 optimizing unity games for mobile platformsUnite 2013 optimizing unity games for mobile platforms
Unite 2013 optimizing unity games for mobile platformsナム-Nam Nguyễn
 
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
 
Smedberg niklas bringing_aaa_graphics
Smedberg niklas bringing_aaa_graphicsSmedberg niklas bringing_aaa_graphics
Smedberg niklas bringing_aaa_graphicschangehee lee
 
De Re PlayStation Vita
De Re PlayStation VitaDe Re PlayStation Vita
De Re PlayStation VitaSlide_N
 
Optimizing Large Scenes in Unity
Optimizing Large Scenes in UnityOptimizing Large Scenes in Unity
Optimizing Large Scenes in UnityNoam Gat
 
Mobile crossplatformchallenges siggraph
Mobile crossplatformchallenges siggraphMobile crossplatformchallenges siggraph
Mobile crossplatformchallenges siggraphJP Lee
 
Gdc 14 bringing unreal engine 4 to open_gl
Gdc 14 bringing unreal engine 4 to open_glGdc 14 bringing unreal engine 4 to open_gl
Gdc 14 bringing unreal engine 4 to open_glchangehee lee
 
GDC 2015 でのハイエンドグラフィックス
GDC 2015 でのハイエンドグラフィックスGDC 2015 でのハイエンドグラフィックス
GDC 2015 でのハイエンドグラフィックスTakashi Imagire
 
Writing 3D Applications Using ruby-processing
Writing 3D Applications Using ruby-processingWriting 3D Applications Using ruby-processing
Writing 3D Applications Using ruby-processingPreston Lee
 
Windows game development with Unity 5
Windows game development with Unity 5Windows game development with Unity 5
Windows game development with Unity 5Jiri Danihelka
 
Syysgraph 2018 - Modern Graphics Abstractions & Real-Time Ray Tracing
Syysgraph 2018 - Modern Graphics Abstractions & Real-Time Ray TracingSyysgraph 2018 - Modern Graphics Abstractions & Real-Time Ray Tracing
Syysgraph 2018 - Modern Graphics Abstractions & Real-Time Ray TracingElectronic Arts / DICE
 
Making VR with Unreal Engine Luis Cataldi
Making VR with Unreal Engine  Luis CataldiMaking VR with Unreal Engine  Luis Cataldi
Making VR with Unreal Engine Luis CataldiUnreal Engine
 
A Certain Slant of Light - Past, Present and Future Challenges of Global Illu...
A Certain Slant of Light - Past, Present and Future Challenges of Global Illu...A Certain Slant of Light - Past, Present and Future Challenges of Global Illu...
A Certain Slant of Light - Past, Present and Future Challenges of Global Illu...Electronic Arts / DICE
 
Development and Optimization of GearVR games using Unreal Engine
Development and Optimization of GearVR games using Unreal EngineDevelopment and Optimization of GearVR games using Unreal Engine
Development and Optimization of GearVR games using Unreal EngineVinicius Vecchi
 
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
 
Decima Engine: Visibility in Horizon Zero Dawn
Decima Engine: Visibility in Horizon Zero DawnDecima Engine: Visibility in Horizon Zero Dawn
Decima Engine: Visibility in Horizon Zero DawnGuerrilla
 
Practical Volume Rendering for realtime applications
Practical Volume Rendering for realtime applicationsPractical Volume Rendering for realtime applications
Practical Volume Rendering for realtime applicationsStoyan Nikolov
 
【Unite 2017 Tokyo】Anima2Dについて語るで!2Dアニメーションの未来
【Unite 2017 Tokyo】Anima2Dについて語るで!2Dアニメーションの未来【Unite 2017 Tokyo】Anima2Dについて語るで!2Dアニメーションの未来
【Unite 2017 Tokyo】Anima2Dについて語るで!2Dアニメーションの未来Unite2017Tokyo
 

What's hot (20)

Optimization in Unity: simple tips for developing with "no surprises" / Anton...
Optimization in Unity: simple tips for developing with "no surprises" / Anton...Optimization in Unity: simple tips for developing with "no surprises" / Anton...
Optimization in Unity: simple tips for developing with "no surprises" / Anton...
 
Unite 2013 optimizing unity games for mobile platforms
Unite 2013 optimizing unity games for mobile platformsUnite 2013 optimizing unity games for mobile platforms
Unite 2013 optimizing unity games for mobile platforms
 
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...
 
Smedberg niklas bringing_aaa_graphics
Smedberg niklas bringing_aaa_graphicsSmedberg niklas bringing_aaa_graphics
Smedberg niklas bringing_aaa_graphics
 
De Re PlayStation Vita
De Re PlayStation VitaDe Re PlayStation Vita
De Re PlayStation Vita
 
Cocos2d programming
Cocos2d programmingCocos2d programming
Cocos2d programming
 
Optimizing Large Scenes in Unity
Optimizing Large Scenes in UnityOptimizing Large Scenes in Unity
Optimizing Large Scenes in Unity
 
Mobile crossplatformchallenges siggraph
Mobile crossplatformchallenges siggraphMobile crossplatformchallenges siggraph
Mobile crossplatformchallenges siggraph
 
Gdc 14 bringing unreal engine 4 to open_gl
Gdc 14 bringing unreal engine 4 to open_glGdc 14 bringing unreal engine 4 to open_gl
Gdc 14 bringing unreal engine 4 to open_gl
 
GDC 2015 でのハイエンドグラフィックス
GDC 2015 でのハイエンドグラフィックスGDC 2015 でのハイエンドグラフィックス
GDC 2015 でのハイエンドグラフィックス
 
Writing 3D Applications Using ruby-processing
Writing 3D Applications Using ruby-processingWriting 3D Applications Using ruby-processing
Writing 3D Applications Using ruby-processing
 
Windows game development with Unity 5
Windows game development with Unity 5Windows game development with Unity 5
Windows game development with Unity 5
 
Syysgraph 2018 - Modern Graphics Abstractions & Real-Time Ray Tracing
Syysgraph 2018 - Modern Graphics Abstractions & Real-Time Ray TracingSyysgraph 2018 - Modern Graphics Abstractions & Real-Time Ray Tracing
Syysgraph 2018 - Modern Graphics Abstractions & Real-Time Ray Tracing
 
Making VR with Unreal Engine Luis Cataldi
Making VR with Unreal Engine  Luis CataldiMaking VR with Unreal Engine  Luis Cataldi
Making VR with Unreal Engine Luis Cataldi
 
A Certain Slant of Light - Past, Present and Future Challenges of Global Illu...
A Certain Slant of Light - Past, Present and Future Challenges of Global Illu...A Certain Slant of Light - Past, Present and Future Challenges of Global Illu...
A Certain Slant of Light - Past, Present and Future Challenges of Global Illu...
 
Development and Optimization of GearVR games using Unreal Engine
Development and Optimization of GearVR games using Unreal EngineDevelopment and Optimization of GearVR games using Unreal Engine
Development and Optimization of GearVR games using Unreal Engine
 
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
 
Decima Engine: Visibility in Horizon Zero Dawn
Decima Engine: Visibility in Horizon Zero DawnDecima Engine: Visibility in Horizon Zero Dawn
Decima Engine: Visibility in Horizon Zero Dawn
 
Practical Volume Rendering for realtime applications
Practical Volume Rendering for realtime applicationsPractical Volume Rendering for realtime applications
Practical Volume Rendering for realtime applications
 
【Unite 2017 Tokyo】Anima2Dについて語るで!2Dアニメーションの未来
【Unite 2017 Tokyo】Anima2Dについて語るで!2Dアニメーションの未来【Unite 2017 Tokyo】Anima2Dについて語るで!2Dアニメーションの未来
【Unite 2017 Tokyo】Anima2Dについて語るで!2Dアニメーションの未来
 

Similar to Developing Next-Generation Games with Stage3D (Molehill)

Making a game with Molehill: Zombie Tycoon
Making a game with Molehill: Zombie TycoonMaking a game with Molehill: Zombie Tycoon
Making a game with Molehill: Zombie TycoonJean-Philippe Doiron
 
Using The New Flash Stage3D Web Technology To Build Your Own Next 3D Browser ...
Using The New Flash Stage3D Web Technology To Build Your Own Next 3D Browser ...Using The New Flash Stage3D Web Technology To Build Your Own Next 3D Browser ...
Using The New Flash Stage3D Web Technology To Build Your Own Next 3D Browser ...Daosheng Mu
 
The next generation of GPU APIs for Game Engines
The next generation of GPU APIs for Game EnginesThe next generation of GPU APIs for Game Engines
The next generation of GPU APIs for Game EnginesPooya Eimandar
 
Oculus insight building the best vr aaron davies
Oculus insight building the best vr   aaron daviesOculus insight building the best vr   aaron davies
Oculus insight building the best vr aaron daviesMary Chan
 
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
 
3 boyd direct3_d12 (1)
3 boyd direct3_d12 (1)3 boyd direct3_d12 (1)
3 boyd direct3_d12 (1)mistercteam
 
Gpu with cuda architecture
Gpu with cuda architectureGpu with cuda architecture
Gpu with cuda architectureDhaval Kaneria
 
Android open gl2_droidcon_2014
Android open gl2_droidcon_2014Android open gl2_droidcon_2014
Android open gl2_droidcon_2014Droidcon Berlin
 
Infrared simulation and processing on Nvidia platforms
Infrared simulation and processing on Nvidia platformsInfrared simulation and processing on Nvidia platforms
Infrared simulation and processing on Nvidia platformsYoss Cohen
 
[Osxdev]metal
[Osxdev]metal[Osxdev]metal
[Osxdev]metalNAVER D2
 
"Making Computer Vision Software Run Fast on Your Embedded Platform," a Prese...
"Making Computer Vision Software Run Fast on Your Embedded Platform," a Prese..."Making Computer Vision Software Run Fast on Your Embedded Platform," a Prese...
"Making Computer Vision Software Run Fast on Your Embedded Platform," a Prese...Edge AI and Vision Alliance
 
Java on the GPU: Where are we now?
Java on the GPU: Where are we now?Java on the GPU: Where are we now?
Java on the GPU: Where are we now?Dmitry Alexandrov
 
【Unite 2017 Tokyo】インスタンシングを用いた美麗なグラフィックの実現方法
【Unite 2017 Tokyo】インスタンシングを用いた美麗なグラフィックの実現方法【Unite 2017 Tokyo】インスタンシングを用いた美麗なグラフィックの実現方法
【Unite 2017 Tokyo】インスタンシングを用いた美麗なグラフィックの実現方法Unite2017Tokyo
 
【Unite 2017 Tokyo】インスタンシングを用いた美麗なグラフィックの実現方法
【Unite 2017 Tokyo】インスタンシングを用いた美麗なグラフィックの実現方法【Unite 2017 Tokyo】インスタンシングを用いた美麗なグラフィックの実現方法
【Unite 2017 Tokyo】インスタンシングを用いた美麗なグラフィックの実現方法Unity Technologies Japan K.K.
 
CG simple openGL point & line-course 2
CG simple openGL point & line-course 2CG simple openGL point & line-course 2
CG simple openGL point & line-course 2fungfung Chen
 
Developing applications and games in Unity engine - Matej Jariabka, Rudolf Ka...
Developing applications and games in Unity engine - Matej Jariabka, Rudolf Ka...Developing applications and games in Unity engine - Matej Jariabka, Rudolf Ka...
Developing applications and games in Unity engine - Matej Jariabka, Rudolf Ka...gamifi.cc
 
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
 
Future Directions for Compute-for-Graphics
Future Directions for Compute-for-GraphicsFuture Directions for Compute-for-Graphics
Future Directions for Compute-for-GraphicsElectronic Arts / DICE
 

Similar to Developing Next-Generation Games with Stage3D (Molehill) (20)

Making a game with Molehill: Zombie Tycoon
Making a game with Molehill: Zombie TycoonMaking a game with Molehill: Zombie Tycoon
Making a game with Molehill: Zombie Tycoon
 
Using The New Flash Stage3D Web Technology To Build Your Own Next 3D Browser ...
Using The New Flash Stage3D Web Technology To Build Your Own Next 3D Browser ...Using The New Flash Stage3D Web Technology To Build Your Own Next 3D Browser ...
Using The New Flash Stage3D Web Technology To Build Your Own Next 3D Browser ...
 
The next generation of GPU APIs for Game Engines
The next generation of GPU APIs for Game EnginesThe next generation of GPU APIs for Game Engines
The next generation of GPU APIs for Game Engines
 
Oculus insight building the best vr aaron davies
Oculus insight building the best vr   aaron daviesOculus insight building the best vr   aaron davies
Oculus insight building the best vr aaron davies
 
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 ...
 
Cocos2d game programming 2
Cocos2d game programming 2Cocos2d game programming 2
Cocos2d game programming 2
 
3 boyd direct3_d12 (1)
3 boyd direct3_d12 (1)3 boyd direct3_d12 (1)
3 boyd direct3_d12 (1)
 
A funtro to real-time ray-tracing
A funtro to real-time ray-tracingA funtro to real-time ray-tracing
A funtro to real-time ray-tracing
 
Gpu with cuda architecture
Gpu with cuda architectureGpu with cuda architecture
Gpu with cuda architecture
 
Android open gl2_droidcon_2014
Android open gl2_droidcon_2014Android open gl2_droidcon_2014
Android open gl2_droidcon_2014
 
Infrared simulation and processing on Nvidia platforms
Infrared simulation and processing on Nvidia platformsInfrared simulation and processing on Nvidia platforms
Infrared simulation and processing on Nvidia platforms
 
[Osxdev]metal
[Osxdev]metal[Osxdev]metal
[Osxdev]metal
 
"Making Computer Vision Software Run Fast on Your Embedded Platform," a Prese...
"Making Computer Vision Software Run Fast on Your Embedded Platform," a Prese..."Making Computer Vision Software Run Fast on Your Embedded Platform," a Prese...
"Making Computer Vision Software Run Fast on Your Embedded Platform," a Prese...
 
Java on the GPU: Where are we now?
Java on the GPU: Where are we now?Java on the GPU: Where are we now?
Java on the GPU: Where are we now?
 
【Unite 2017 Tokyo】インスタンシングを用いた美麗なグラフィックの実現方法
【Unite 2017 Tokyo】インスタンシングを用いた美麗なグラフィックの実現方法【Unite 2017 Tokyo】インスタンシングを用いた美麗なグラフィックの実現方法
【Unite 2017 Tokyo】インスタンシングを用いた美麗なグラフィックの実現方法
 
【Unite 2017 Tokyo】インスタンシングを用いた美麗なグラフィックの実現方法
【Unite 2017 Tokyo】インスタンシングを用いた美麗なグラフィックの実現方法【Unite 2017 Tokyo】インスタンシングを用いた美麗なグラフィックの実現方法
【Unite 2017 Tokyo】インスタンシングを用いた美麗なグラフィックの実現方法
 
CG simple openGL point & line-course 2
CG simple openGL point & line-course 2CG simple openGL point & line-course 2
CG simple openGL point & line-course 2
 
Developing applications and games in Unity engine - Matej Jariabka, Rudolf Ka...
Developing applications and games in Unity engine - Matej Jariabka, Rudolf Ka...Developing applications and games in Unity engine - Matej Jariabka, Rudolf Ka...
Developing applications and games in Unity engine - Matej Jariabka, Rudolf Ka...
 
Optimizing unity games (Google IO 2014)
Optimizing unity games (Google IO 2014)Optimizing unity games (Google IO 2014)
Optimizing unity games (Google IO 2014)
 
Future Directions for Compute-for-Graphics
Future Directions for Compute-for-GraphicsFuture Directions for Compute-for-Graphics
Future Directions for Compute-for-Graphics
 

Recently uploaded

DevoxxFR 2024 Reproducible Builds with Apache Maven
DevoxxFR 2024 Reproducible Builds with Apache MavenDevoxxFR 2024 Reproducible Builds with Apache Maven
DevoxxFR 2024 Reproducible Builds with Apache MavenHervé Boutemy
 
Bun (KitWorks Team Study 노별마루 발표 2024.4.22)
Bun (KitWorks Team Study 노별마루 발표 2024.4.22)Bun (KitWorks Team Study 노별마루 발표 2024.4.22)
Bun (KitWorks Team Study 노별마루 발표 2024.4.22)Wonjun Hwang
 
"Federated learning: out of reach no matter how close",Oleksandr Lapshyn
"Federated learning: out of reach no matter how close",Oleksandr Lapshyn"Federated learning: out of reach no matter how close",Oleksandr Lapshyn
"Federated learning: out of reach no matter how close",Oleksandr LapshynFwdays
 
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
 
Dev Dives: Streamline document processing with UiPath Studio Web
Dev Dives: Streamline document processing with UiPath Studio WebDev Dives: Streamline document processing with UiPath Studio Web
Dev Dives: Streamline document processing with UiPath Studio WebUiPathCommunity
 
Ensuring Technical Readiness For Copilot in Microsoft 365
Ensuring Technical Readiness For Copilot in Microsoft 365Ensuring Technical Readiness For Copilot in Microsoft 365
Ensuring Technical Readiness For Copilot in Microsoft 3652toLead Limited
 
Vertex AI Gemini Prompt Engineering Tips
Vertex AI Gemini Prompt Engineering TipsVertex AI Gemini Prompt Engineering Tips
Vertex AI Gemini Prompt Engineering TipsMiki Katsuragi
 
Streamlining Python Development: A Guide to a Modern Project Setup
Streamlining Python Development: A Guide to a Modern Project SetupStreamlining Python Development: A Guide to a Modern Project Setup
Streamlining Python Development: A Guide to a Modern Project SetupFlorian Wilhelm
 
Nell’iperspazio con Rocket: il Framework Web di Rust!
Nell’iperspazio con Rocket: il Framework Web di Rust!Nell’iperspazio con Rocket: il Framework Web di Rust!
Nell’iperspazio con Rocket: il Framework Web di Rust!Commit University
 
"LLMs for Python Engineers: Advanced Data Analysis and Semantic Kernel",Oleks...
"LLMs for Python Engineers: Advanced Data Analysis and Semantic Kernel",Oleks..."LLMs for Python Engineers: Advanced Data Analysis and Semantic Kernel",Oleks...
"LLMs for Python Engineers: Advanced Data Analysis and Semantic Kernel",Oleks...Fwdays
 
Unraveling Multimodality with Large Language Models.pdf
Unraveling Multimodality with Large Language Models.pdfUnraveling Multimodality with Large Language Models.pdf
Unraveling Multimodality with Large Language Models.pdfAlex Barbosa Coqueiro
 
Vector Databases 101 - An introduction to the world of Vector Databases
Vector Databases 101 - An introduction to the world of Vector DatabasesVector Databases 101 - An introduction to the world of Vector Databases
Vector Databases 101 - An introduction to the world of Vector DatabasesZilliz
 
CloudStudio User manual (basic edition):
CloudStudio User manual (basic edition):CloudStudio User manual (basic edition):
CloudStudio User manual (basic edition):comworks
 
Powerpoint exploring the locations used in television show Time Clash
Powerpoint exploring the locations used in television show Time ClashPowerpoint exploring the locations used in television show Time Clash
Powerpoint exploring the locations used in television show Time Clashcharlottematthew16
 
"ML in Production",Oleksandr Bagan
"ML in Production",Oleksandr Bagan"ML in Production",Oleksandr Bagan
"ML in Production",Oleksandr BaganFwdays
 
Story boards and shot lists for my a level piece
Story boards and shot lists for my a level pieceStory boards and shot lists for my a level piece
Story boards and shot lists for my a level piececharlottematthew16
 
"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
 
Search Engine Optimization SEO PDF for 2024.pdf
Search Engine Optimization SEO PDF for 2024.pdfSearch Engine Optimization SEO PDF for 2024.pdf
Search Engine Optimization SEO PDF for 2024.pdfRankYa
 

Recently uploaded (20)

E-Vehicle_Hacking_by_Parul Sharma_null_owasp.pptx
E-Vehicle_Hacking_by_Parul Sharma_null_owasp.pptxE-Vehicle_Hacking_by_Parul Sharma_null_owasp.pptx
E-Vehicle_Hacking_by_Parul Sharma_null_owasp.pptx
 
DevoxxFR 2024 Reproducible Builds with Apache Maven
DevoxxFR 2024 Reproducible Builds with Apache MavenDevoxxFR 2024 Reproducible Builds with Apache Maven
DevoxxFR 2024 Reproducible Builds with Apache Maven
 
Bun (KitWorks Team Study 노별마루 발표 2024.4.22)
Bun (KitWorks Team Study 노별마루 발표 2024.4.22)Bun (KitWorks Team Study 노별마루 발표 2024.4.22)
Bun (KitWorks Team Study 노별마루 발표 2024.4.22)
 
"Federated learning: out of reach no matter how close",Oleksandr Lapshyn
"Federated learning: out of reach no matter how close",Oleksandr Lapshyn"Federated learning: out of reach no matter how close",Oleksandr Lapshyn
"Federated learning: out of reach no matter how close",Oleksandr Lapshyn
 
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)
 
Dev Dives: Streamline document processing with UiPath Studio Web
Dev Dives: Streamline document processing with UiPath Studio WebDev Dives: Streamline document processing with UiPath Studio Web
Dev Dives: Streamline document processing with UiPath Studio Web
 
Ensuring Technical Readiness For Copilot in Microsoft 365
Ensuring Technical Readiness For Copilot in Microsoft 365Ensuring Technical Readiness For Copilot in Microsoft 365
Ensuring Technical Readiness For Copilot in Microsoft 365
 
DMCC Future of Trade Web3 - Special Edition
DMCC Future of Trade Web3 - Special EditionDMCC Future of Trade Web3 - Special Edition
DMCC Future of Trade Web3 - Special Edition
 
Vertex AI Gemini Prompt Engineering Tips
Vertex AI Gemini Prompt Engineering TipsVertex AI Gemini Prompt Engineering Tips
Vertex AI Gemini Prompt Engineering Tips
 
Streamlining Python Development: A Guide to a Modern Project Setup
Streamlining Python Development: A Guide to a Modern Project SetupStreamlining Python Development: A Guide to a Modern Project Setup
Streamlining Python Development: A Guide to a Modern Project Setup
 
Nell’iperspazio con Rocket: il Framework Web di Rust!
Nell’iperspazio con Rocket: il Framework Web di Rust!Nell’iperspazio con Rocket: il Framework Web di Rust!
Nell’iperspazio con Rocket: il Framework Web di Rust!
 
"LLMs for Python Engineers: Advanced Data Analysis and Semantic Kernel",Oleks...
"LLMs for Python Engineers: Advanced Data Analysis and Semantic Kernel",Oleks..."LLMs for Python Engineers: Advanced Data Analysis and Semantic Kernel",Oleks...
"LLMs for Python Engineers: Advanced Data Analysis and Semantic Kernel",Oleks...
 
Unraveling Multimodality with Large Language Models.pdf
Unraveling Multimodality with Large Language Models.pdfUnraveling Multimodality with Large Language Models.pdf
Unraveling Multimodality with Large Language Models.pdf
 
Vector Databases 101 - An introduction to the world of Vector Databases
Vector Databases 101 - An introduction to the world of Vector DatabasesVector Databases 101 - An introduction to the world of Vector Databases
Vector Databases 101 - An introduction to the world of Vector Databases
 
CloudStudio User manual (basic edition):
CloudStudio User manual (basic edition):CloudStudio User manual (basic edition):
CloudStudio User manual (basic edition):
 
Powerpoint exploring the locations used in television show Time Clash
Powerpoint exploring the locations used in television show Time ClashPowerpoint exploring the locations used in television show Time Clash
Powerpoint exploring the locations used in television show Time Clash
 
"ML in Production",Oleksandr Bagan
"ML in Production",Oleksandr Bagan"ML in Production",Oleksandr Bagan
"ML in Production",Oleksandr Bagan
 
Story boards and shot lists for my a level piece
Story boards and shot lists for my a level pieceStory boards and shot lists for my a level piece
Story boards and shot lists for my a level piece
 
"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
 
Search Engine Optimization SEO PDF for 2024.pdf
Search Engine Optimization SEO PDF for 2024.pdfSearch Engine Optimization SEO PDF for 2024.pdf
Search Engine Optimization SEO PDF for 2024.pdf
 

Developing Next-Generation Games with Stage3D (Molehill)

  • 1.
  • 2.
  • 3.
  • 5. Deferred Lighting S.T.A.L.K.E.R Killzone 2
  • 6. Technique • Render all lights to a light buffer • Apply the light buffer on the back buffer • MRT – Depth – Normal – Specular
  • 7. Flash • We do not have MRT – Must use a single 8-bit texture – Normal and depth encoding
  • 8. Flash • Stencil optimization is important http://www.guerrilla-games.com/publications/dr_kz2_rsx_dev07.pdf • Stencil testing is also available in Flash 11
  • 9. Technique Overhead – Render all object with encoding – Render two sphere for each light
  • 10.
  • 11.
  • 12. Shadow Mapping • KillZone 2 • Assassin’s creed
  • 13.
  • 14. In Flash? • context3d.setRenderToTexture( DistanceFromLight, aUseDepth,aAliasing); • context3d.clear() • Render scene from directional light and write depth • context3d.setRenderToBackBuffer(); • context3d.setTextureAt(0, DistanceFromLight); • Render scene, compare depth and apply shadow
  • 15.
  • 16.
  • 17. Finding Next-Gen CryEngine2 [Siggraph07] GPU Gems Convolution Blur
  • 18.
  • 19.
  • 20. Cascade Shadow Map • Screen 4 écrans
  • 21. Cascade Shadow Map • Screen 4 écrans
  • 22. Cascade Shadow Map • Screen 4 écrans
  • 23. Cascade Shadow Map _context3D.setScissorRectangle(new Rectangle(300, 100, 360, 240));
  • 24.
  • 25.
  • 26.
  • 27.
  • 28.
  • 29.
  • 30.
  • 31. Screen Space Ambient Occlusion • Requirement – Depth • Technique – Sample multiple times from depth – Determine which pixels are occluded
  • 32.
  • 33.
  • 34.
  • 35.
  • 36. SSAO Comparison 200 Instructions 163 Instructions Technique 1 Technique 2 0.120 ms slower
  • 37.
  • 38.
  • 39.
  • 40. Triplanar Texturing • Nvidia • Tiled UV based on vertex position for each axis • Albedo and normal
  • 42. Triplanar Projection Simple UV Unwrap
  • 43.
  • 44.
  • 45. Flash • Shader with a lot of instructions • Lots of sampling • GT8600: 3 ms • Radeon HD 2400: 1.2 ms
  • 46. 2D UI
  • 47. Interface • Pro – It’s native! – Toolset – Multithreaded rasterizer? • Cons – Not GPU-accelerated. – Image in game interface
  • 48. ++2D UI • Complementing Flash 11 3D • Technique – Projecting 2D elements in the scene – Keeping mouse events – Keeping vector animations and blends – Native text rendering – Game design & art helper tools – Easy to integrate, debug Minimal Components • Result in Flash – Final
  • 49.
  • 50.
  • 53. Flash CPU • Why – Single-threaded • How – Azoth • Easy to debug (Breakpoints) • What – Scene partitioning – Particle transformation
  • 54. Alchemy • Alchemy allows C and C++ code to run in the ActionScript Virtual Machine (AVM2). • The C/C++ code is converted to AS3 using a special compiler, and then built into a SWC. • This enables the porting of several existing solid and proven libraries. • The compiler also performs a lot of optimization to make the code run faster by using fast memory access.
  • 56.
  • 57. What is Bullet • Physics engine • Simple – Dynamic and static volume and mesh – Apply force and impulse – Generate collision callback – Character controller • But also – Dynamic constraint – Clothing – More…
  • 58. Bullet Physics • Open Source • Who uses Bullet? Games Movies Software Grand Theft Auto IV Megamind Blender Red Dead Redemption Bolt Softimage Free Realms 2012 Irrlicht
  • 59.
  • 60.
  • 63.
  • 64. Detour / Detour Crowd • Detour is a pathfinding system • It use Recast’s navigation mesh • It Manages collision, avoidance, separation, etc.
  • 65.
  • 66. Pyro
  • 67. What is Pyro • It’s user friendly • It manage properties such as: – Life, number, size, velocity, weight, spin, motion rand – Wind, Angular velocity, attraction, zoom, visibility, tint – Sub-Emiters and a lot more! • Support variation over time of properties • « Per title » License
  • 68.
  • 70. From Flash to Flash 3D • There is no such thing as Display List Management • There is no time line – No clip animation – No script on frames – No label and dispatch – No gotoAndPlay() • No library – No exported symbol – No centralized asset list • Testing collision is a bit more difficult than the DisplayObject.HitTest()
  • 71. From Flash to Flash3D • Several 3D frameworks already exist for Flash 11: – Alternativa – Minko – Flare3D – Away3D – Yogurt3D – Frima Icefield. • There are also several existing Flash helpers (Flash.MathUtils, Flash.Math.Utils3d) • Concepts you will need to learn: – 3D space coordinates – Object transformation using Matrix3D and Vector3D – Shaders open new door to wonderful effects
  • 72. From 3D to Flash 3D • FP11 targets desktops, tablets and mobiles! – API limited to OpenGL ES 2.0 definition – Limit of 200 shader instructions – Limited shader instructions (no branching, no MAD, etc.) • Overhead on Change Target (20%) – Auto MipMapping – Loss of depth • Anti-aliasing only on BackBuffer • Only support 8-bit textures (HDR) • No MRT
  • 73. From Anyone to Flash3D • Single-threaded • No mouse lock (FPS) • Limited keyboard in fullscreen • Streamable content (Web-based) – Files download weight – Load only when needed – Limited browser cache – Async resource loading • Can use the regular Flash 2D interfaces
  • 74. Tech Demo Reel • Show all interesting elements • Very short video of each • “Epic music”
  • 75. You might ask • Why not using Unity ? • What about HTML5 ? • Alchemy is still beta, would you consider using it in production? • Are you single ?
  • 76. Contacts • Jean-Philippe Doiron – jpd@frimastudio.com – @jphildoiron • Jean-Philippe Auclair – jpauclair@frimastudio.com – @jpauclair – jpauclair.net
  • 77. References • http://www.guerrilla-games.com/publications/dr_kz2_rsx_dev07.pdf • http://http.developer.nvidia.com/GPUGems2/gpugems2_chapter09.html • http://http.developer.nvidia.com/GPUGems/gpugems_ch21.html • http://http.developer.nvidia.com/GPUGems3/gpugems3_ch01.html
  • 78. Turn in your surveys for a chance to WIN! • Hand in your surveys to the room monitors • One survey per session will be selected as a winner of an Adobe Press e-book or Video Introduction to Adobe Edge Web Design with Muse (code name) from Adobe Android App Development and Design: Learn by Video • Winners will be notified via e-mail at the end of each day

Editor's Notes

  1. This slide will be sent to all speakers as a separate attachment. If you could please include as your final slide in your presentations, this will help get more attendees to respond.