SlideShare a Scribd company logo
360|Flex Indianapolis

               Bending and Flexing Using Pixel Bender with Flex

               Ryan Phelan - www.rphelan.com - @rphelan




Copyright © 2004 - 2009 All Rights Reserved
Bending and Flexing?




                                         ?    ?
Copyright © 2004 - 2009 All Rights Reserved
Who Am I?

              5+ years developing RIA & desktop apps in Flash/Flex/AIR
              Currently Lead Interactive Developer at Phenomblue
              Focus on
                    Emerging technologies
                    Improving workflow and productivity


Copyright © 2004 - 2009 All Rights Reserved
Topics
              Practical applications of Pixel Bender
              Technology/terminology overview
              Pixel Bender Toolkit
              Project Integration
              Performance Considerations
              Advanced Techniques
              Demos

Copyright © 2004 - 2009 All Rights Reserved
What is a pixel shader?
                                               Coloring
                                               Lighting
                                Bump Mapping
                                              Reflection
                       Specular Highlights
                                              Distortion
                                      Other Effects

Copyright © 2004 - 2009 All Rights Reserved
What is a pixel shader?

              One pixel at a time
              Can be done in parallel
              Takes 0 or more images as input
              and outputs an image based on
              a set of parameters



Copyright © 2004 - 2009 All Rights Reserved
What is Pixel Bender?
              Programming language for creating pixel shaders   Similar to other C-based
                                                                shader languages
              Used with Flash, After Effects, and Photoshop

                                                                  GLSL

                                                                  HLSL




Copyright © 2004 - 2009 All Rights Reserved
GPU vs. CPU


              Only runs on CPU in Flash
              Multi-threading used instead
              How does this affect performance?




Copyright © 2004 - 2009 All Rights Reserved
The Pixel Bender Toolkit
           http://labs.adobe.com/downloads/pixelbender.html

Copyright © 2004 - 2009 All Rights Reserved
Data Types
              Basic:                          Vector:
                    bool, int, float, pixel1     float2, float3, float4
              Matrix:                           bool2, bool3, bool4
                    float2x2                     int2, int3, int4
                    float3x3                     pixel2, pixel3, pixel4
                    float4x4


Copyright © 2004 - 2009 All Rights Reserved
Vector Swizzling & Write Masking
                          (AKA topics that will make you a hit at any party)

              3 Forms:                        Interchangeable                  Not mixable
                    r, g, b, a                  pixel.r == pixel.x               pixel.ryp
                    x, y, z, w                  pixel.rgb == pixel.stp           pixel.xyza
                    s, t, p, q




Copyright © 2004 - 2009 All Rights Reserved
Vector Swizzling & Write Masking
                          (AKA topics that will make you a hit at any party)

              You can change the order to                        You can repeat channels
              swap values
                                                                    pixel.rrr
                    pixel.bgr
                                                                    pixel.xx
                    pixel.yx




Copyright © 2004 - 2009 All Rights Reserved
Limitations
          Specification

              Pixel Bender is Based on Shader Model spec (directX)
                    Flash uses Shader Model 2.0
                    Photoshop and After Effects use Shader Model 3.0
              Why? Flash is web based, needs to work on wider range of
              hardware.



Copyright © 2004 - 2009 All Rights Reserved
Limitations
          What can’t Pixel Bender Do?

              Loops or control structures other than if and else
              Custom support functions and libraries
              Region functions
              Arrays
              Dependent values
              Non-constant indices into vector values

Copyright © 2004 - 2009 All Rights Reserved
Incorporating Pixel Bender in Flex
         1. Embed or load at runtime
         2. Pass byte code to instance of Shader class
         3. Render
                    Use as a filter via DisplayObject.filters or BitmapData.applyFilter
                    Use as a fill via Graphics.beginShaderFill or GraphicsShaderFill
                    Use as a blend mode via DisplayObject.blendShader
                    Crunch numbers via ShaderJob

Copyright © 2004 - 2009 All Rights Reserved
Performance
              ActionScript is faster for small data sets
              Asynchronous ShaderJobs are slower
              than synchronous
              Vector input is faster than ByteArray for
              large data sets
              Your mileage may vary
              (Don’t forget about alchemy)

Copyright © 2004 - 2009 All Rights Reserved
Wrapper Classes
              Wrapper classes provide
                    Strong typing
                    Known API
                    Better reusability
                    Ability to limit shader input values
              For fills and blend modes, extend flash.display.Shader
              For filters, extend flash.display.ShaderFilter

Copyright © 2004 - 2009 All Rights Reserved
Wrap Up

                    Pixel Bender can be used in a large variety of ways, it’s not just for
                    image editing apps.
                    It can do certain types of calculations very efficiently.
                    It can also be a CPU hog.
                    Wrapper classes make your shaders simple to use.
                    We have only scratched the surface. Go out there and innovate!


Copyright © 2004 - 2009 All Rights Reserved
Resources
          Official
                    Pixel Bender Wiki – http://www.adobe.com/go/pixelbender_toolkit
                    Pixel Bender Exchange – http://www.adobe.com/cfusion/exchange/index.cfm?
                    event=productHome&exc=26
                    Pixel Bender on Twitter - http://twitter.com/pixelbender
                    Forums - http://forums.adobe.com/community/adobe_labs/pixelbender




Copyright © 2004 - 2009 All Rights Reserved
Resources
          Sample Code
                    Pixel Bender Explorer - http://extjs.com/blog/2009/02/19/pixel-bender-explorer
                    BendPixels – http://code.google.com/p/bendpixels
                    WPF Pixel Shader Effects Library - http://wpffx.codeplex.com
                    Tutorials - http://www.gotoandlearn.com

          Authoring
                    Eclipse Plugin - http://blog.joa-ebert.com/pbdt/


Copyright © 2004 - 2009 All Rights Reserved
Resources
          Blogs
                    Ryan Phelan - http://www.rphelan.com
                    Joa Ebert - http://blog.joa-ebert.com
                    Mr. Doob - http://mrdoob.com/blog
                    Tom Beddard - http://www.subblue.com
                    David Lenaert - http://www.derschmale.com
                    Frank Reitberger - http://www.dasprinzip.com/prinzipiell
                    Petri Leskinen - http://pixelero.wordpress.com


Copyright © 2004 - 2009 All Rights Reserved

More Related Content

What's hot

Motion graphics worksheet web banners
Motion graphics worksheet  web bannersMotion graphics worksheet  web banners
Motion graphics worksheet web bannersirrealimagens
 
Wip sibigrapi cacique
Wip sibigrapi caciqueWip sibigrapi cacique
Wip sibigrapi cacique
Pedro Henrique Cacique Braga
 
King kong e4 sting
King kong e4 stingKing kong e4 sting
King kong e4 stingClaySkorski
 
Motion graphics worksheet idents11
Motion graphics worksheet  idents11Motion graphics worksheet  idents11
Motion graphics worksheet idents11irrealimagens
 
Motion graphics analysis stings
Motion graphics analysis stingsMotion graphics analysis stings
Motion graphics analysis stingsBethMelia
 
Rendering AAA-Quality Characters of Project A1
Rendering AAA-Quality Characters of Project A1Rendering AAA-Quality Characters of Project A1
Rendering AAA-Quality Characters of Project A1
Ki Hyunwoo
 
Bhs13 oct 2012 inkjet
Bhs13 oct 2012   inkjetBhs13 oct 2012   inkjet
Bhs13 oct 2012 inkjetEmpoy Ase
 
Motion graphics worksheet idents
Motion graphics worksheet  identsMotion graphics worksheet  idents
Motion graphics worksheet identsirrealimagens
 

What's hot (10)

Motion graphics worksheet web banners
Motion graphics worksheet  web bannersMotion graphics worksheet  web banners
Motion graphics worksheet web banners
 
Wip sibigrapi cacique
Wip sibigrapi caciqueWip sibigrapi cacique
Wip sibigrapi cacique
 
King kong e4 sting
King kong e4 stingKing kong e4 sting
King kong e4 sting
 
Motion graphics worksheet idents11
Motion graphics worksheet  idents11Motion graphics worksheet  idents11
Motion graphics worksheet idents11
 
Motion graphics analysis stings
Motion graphics analysis stingsMotion graphics analysis stings
Motion graphics analysis stings
 
Rendering AAA-Quality Characters of Project A1
Rendering AAA-Quality Characters of Project A1Rendering AAA-Quality Characters of Project A1
Rendering AAA-Quality Characters of Project A1
 
Annotation3
Annotation3Annotation3
Annotation3
 
Bhs13 oct 2012 inkjet
Bhs13 oct 2012   inkjetBhs13 oct 2012   inkjet
Bhs13 oct 2012 inkjet
 
Motion graphics worksheet idents
Motion graphics worksheet  identsMotion graphics worksheet  idents
Motion graphics worksheet idents
 
Worksheet 3
Worksheet 3Worksheet 3
Worksheet 3
 

Viewers also liked

Erik Loehfelm - Experience Design with Flash Catalyst and Flex Gumbo
Erik Loehfelm - Experience Design with Flash Catalyst and Flex GumboErik Loehfelm - Experience Design with Flash Catalyst and Flex Gumbo
Erik Loehfelm - Experience Design with Flash Catalyst and Flex Gumbo
360|Conferences
 
Tyler Wright - Undo History with Flight
Tyler Wright - Undo History with FlightTyler Wright - Undo History with Flight
Tyler Wright - Undo History with Flight
360|Conferences
 
Oğuz Demirkapı - Hands On Training: Creating Our First i18N Flex Application ...
Oğuz	Demirkapı - Hands On Training: Creating Our First i18N Flex Application ...Oğuz	Demirkapı - Hands On Training: Creating Our First i18N Flex Application ...
Oğuz Demirkapı - Hands On Training: Creating Our First i18N Flex Application ...
360|Conferences
 
Giorgio Natilli - Blaze DS Connectivity Framework
Giorgio Natilli - Blaze DS Connectivity FrameworkGiorgio Natilli - Blaze DS Connectivity Framework
Giorgio Natilli - Blaze DS Connectivity Framework360|Conferences
 
Mansour Raad & Anthony Jayaprakash - Yet Another Mapping Framework, NOT!
Mansour Raad & Anthony Jayaprakash - Yet Another Mapping Framework, NOT!Mansour Raad & Anthony Jayaprakash - Yet Another Mapping Framework, NOT!
Mansour Raad & Anthony Jayaprakash - Yet Another Mapping Framework, NOT!
360|Conferences
 
Douglas Knudsen - Great Mash Up
Douglas Knudsen - Great Mash UpDouglas Knudsen - Great Mash Up
Douglas Knudsen - Great Mash Up
360|Conferences
 

Viewers also liked (6)

Erik Loehfelm - Experience Design with Flash Catalyst and Flex Gumbo
Erik Loehfelm - Experience Design with Flash Catalyst and Flex GumboErik Loehfelm - Experience Design with Flash Catalyst and Flex Gumbo
Erik Loehfelm - Experience Design with Flash Catalyst and Flex Gumbo
 
Tyler Wright - Undo History with Flight
Tyler Wright - Undo History with FlightTyler Wright - Undo History with Flight
Tyler Wright - Undo History with Flight
 
Oğuz Demirkapı - Hands On Training: Creating Our First i18N Flex Application ...
Oğuz	Demirkapı - Hands On Training: Creating Our First i18N Flex Application ...Oğuz	Demirkapı - Hands On Training: Creating Our First i18N Flex Application ...
Oğuz Demirkapı - Hands On Training: Creating Our First i18N Flex Application ...
 
Giorgio Natilli - Blaze DS Connectivity Framework
Giorgio Natilli - Blaze DS Connectivity FrameworkGiorgio Natilli - Blaze DS Connectivity Framework
Giorgio Natilli - Blaze DS Connectivity Framework
 
Mansour Raad & Anthony Jayaprakash - Yet Another Mapping Framework, NOT!
Mansour Raad & Anthony Jayaprakash - Yet Another Mapping Framework, NOT!Mansour Raad & Anthony Jayaprakash - Yet Another Mapping Framework, NOT!
Mansour Raad & Anthony Jayaprakash - Yet Another Mapping Framework, NOT!
 
Douglas Knudsen - Great Mash Up
Douglas Knudsen - Great Mash UpDouglas Knudsen - Great Mash Up
Douglas Knudsen - Great Mash Up
 

Similar to Ryan Phelan - Bending and Flexing

[DSC Europe 23] Alexander Kovalchuk - Finetuning Stable Diffusion with low-ra...
[DSC Europe 23] Alexander Kovalchuk - Finetuning Stable Diffusion with low-ra...[DSC Europe 23] Alexander Kovalchuk - Finetuning Stable Diffusion with low-ra...
[DSC Europe 23] Alexander Kovalchuk - Finetuning Stable Diffusion with low-ra...
DataScienceConferenc1
 
ITCamp 2011 - Raul Andrisan - What’s new in Silverlight 5
ITCamp 2011 - Raul Andrisan - What’s new in Silverlight 5ITCamp 2011 - Raul Andrisan - What’s new in Silverlight 5
ITCamp 2011 - Raul Andrisan - What’s new in Silverlight 5ITCamp
 
The future of the Adobe Flash platform
The future of the Adobe Flash platformThe future of the Adobe Flash platform
The future of the Adobe Flash platform
Michael Chaize
 
Adobe AIR - Mobile Performance – Tips & Tricks
Adobe AIR - Mobile Performance – Tips & TricksAdobe AIR - Mobile Performance – Tips & Tricks
Adobe AIR - Mobile Performance – Tips & TricksMihai Corlan
 
Unleashing Intel® Advanced Vector Extensions 512 (Intel® AVX-512) Inside the ...
Unleashing Intel® Advanced Vector Extensions 512 (Intel® AVX-512) Inside the ...Unleashing Intel® Advanced Vector Extensions 512 (Intel® AVX-512) Inside the ...
Unleashing Intel® Advanced Vector Extensions 512 (Intel® AVX-512) Inside the ...
Intel® Software
 
UplinQ - qualcomm® snapdragon™ processors a super gaming platform
UplinQ - qualcomm® snapdragon™ processors a super gaming platformUplinQ - qualcomm® snapdragon™ processors a super gaming platform
UplinQ - qualcomm® snapdragon™ processors a super gaming platform
Satya Harish
 
Qualcomm Snapdragon Processors: A Super Gaming Platform
Qualcomm Snapdragon Processors: A Super Gaming Platform Qualcomm Snapdragon Processors: A Super Gaming Platform
Qualcomm Snapdragon Processors: A Super Gaming Platform
Qualcomm Developer Network
 
GPU - DirectX 10.1 Architecture White paper
GPU - DirectX 10.1 Architecture White paperGPU - DirectX 10.1 Architecture White paper
GPU - DirectX 10.1 Architecture White paperBenson Tao
 
Towards Semantic Virtual Worlds
Towards Semantic Virtual WorldsTowards Semantic Virtual Worlds
Towards Semantic Virtual Worlds
David Burden
 
iVideo Editor with Background Remover and Image Inpainting
iVideo Editor with Background Remover and Image InpaintingiVideo Editor with Background Remover and Image Inpainting
iVideo Editor with Background Remover and Image Inpainting
IRJET Journal
 
Sirius: Graphical Editors for your DSLs
Sirius: Graphical Editors for your DSLsSirius: Graphical Editors for your DSLs
Sirius: Graphical Editors for your DSLs
mikaelbarbero
 
CMP213_GPU(G3) Applications in Media and Entertainment Workloads
CMP213_GPU(G3) Applications in Media and Entertainment WorkloadsCMP213_GPU(G3) Applications in Media and Entertainment Workloads
CMP213_GPU(G3) Applications in Media and Entertainment Workloads
Amazon Web Services
 
Xebia adobe flash mobile applications
Xebia adobe flash mobile applicationsXebia adobe flash mobile applications
Xebia adobe flash mobile applications
Michael Chaize
 
SiriusCon 2015 - Breathe Life into Your Designer!
SiriusCon 2015 - Breathe Life into Your Designer!SiriusCon 2015 - Breathe Life into Your Designer!
SiriusCon 2015 - Breathe Life into Your Designer!
melbats
 
Ghajini - The Game Development
Ghajini - The Game DevelopmentGhajini - The Game Development
Ghajini - The Game Development
Imran K
 
Free video editing software
Free video editing softwareFree video editing software
Free video editing software
SmartPixel
 
WIN203_With Amazon EC2 for Windows Server and Thinkbox Deadline
WIN203_With Amazon EC2 for Windows Server and Thinkbox DeadlineWIN203_With Amazon EC2 for Windows Server and Thinkbox Deadline
WIN203_With Amazon EC2 for Windows Server and Thinkbox Deadline
Amazon Web Services
 
Shaders - Claudia Doppioslash - Unity With the Best
Shaders - Claudia Doppioslash - Unity With the BestShaders - Claudia Doppioslash - Unity With the Best
Shaders - Claudia Doppioslash - Unity With the Best
BeMyApp
 

Similar to Ryan Phelan - Bending and Flexing (20)

[DSC Europe 23] Alexander Kovalchuk - Finetuning Stable Diffusion with low-ra...
[DSC Europe 23] Alexander Kovalchuk - Finetuning Stable Diffusion with low-ra...[DSC Europe 23] Alexander Kovalchuk - Finetuning Stable Diffusion with low-ra...
[DSC Europe 23] Alexander Kovalchuk - Finetuning Stable Diffusion with low-ra...
 
ITCamp 2011 - Raul Andrisan - What’s new in Silverlight 5
ITCamp 2011 - Raul Andrisan - What’s new in Silverlight 5ITCamp 2011 - Raul Andrisan - What’s new in Silverlight 5
ITCamp 2011 - Raul Andrisan - What’s new in Silverlight 5
 
The future of the Adobe Flash platform
The future of the Adobe Flash platformThe future of the Adobe Flash platform
The future of the Adobe Flash platform
 
Adobe AIR - Mobile Performance – Tips & Tricks
Adobe AIR - Mobile Performance – Tips & TricksAdobe AIR - Mobile Performance – Tips & Tricks
Adobe AIR - Mobile Performance – Tips & Tricks
 
Unleashing Intel® Advanced Vector Extensions 512 (Intel® AVX-512) Inside the ...
Unleashing Intel® Advanced Vector Extensions 512 (Intel® AVX-512) Inside the ...Unleashing Intel® Advanced Vector Extensions 512 (Intel® AVX-512) Inside the ...
Unleashing Intel® Advanced Vector Extensions 512 (Intel® AVX-512) Inside the ...
 
PPT Example
PPT ExamplePPT Example
PPT Example
 
UplinQ - qualcomm® snapdragon™ processors a super gaming platform
UplinQ - qualcomm® snapdragon™ processors a super gaming platformUplinQ - qualcomm® snapdragon™ processors a super gaming platform
UplinQ - qualcomm® snapdragon™ processors a super gaming platform
 
Qualcomm Snapdragon Processors: A Super Gaming Platform
Qualcomm Snapdragon Processors: A Super Gaming Platform Qualcomm Snapdragon Processors: A Super Gaming Platform
Qualcomm Snapdragon Processors: A Super Gaming Platform
 
GPU - DirectX 10.1 Architecture White paper
GPU - DirectX 10.1 Architecture White paperGPU - DirectX 10.1 Architecture White paper
GPU - DirectX 10.1 Architecture White paper
 
Towards Semantic Virtual Worlds
Towards Semantic Virtual WorldsTowards Semantic Virtual Worlds
Towards Semantic Virtual Worlds
 
iVideo Editor with Background Remover and Image Inpainting
iVideo Editor with Background Remover and Image InpaintingiVideo Editor with Background Remover and Image Inpainting
iVideo Editor with Background Remover and Image Inpainting
 
Sirius: Graphical Editors for your DSLs
Sirius: Graphical Editors for your DSLsSirius: Graphical Editors for your DSLs
Sirius: Graphical Editors for your DSLs
 
CMP213_GPU(G3) Applications in Media and Entertainment Workloads
CMP213_GPU(G3) Applications in Media and Entertainment WorkloadsCMP213_GPU(G3) Applications in Media and Entertainment Workloads
CMP213_GPU(G3) Applications in Media and Entertainment Workloads
 
Xebia adobe flash mobile applications
Xebia adobe flash mobile applicationsXebia adobe flash mobile applications
Xebia adobe flash mobile applications
 
SiriusCon 2015 - Breathe Life into Your Designer!
SiriusCon 2015 - Breathe Life into Your Designer!SiriusCon 2015 - Breathe Life into Your Designer!
SiriusCon 2015 - Breathe Life into Your Designer!
 
Worksheet 1
Worksheet 1Worksheet 1
Worksheet 1
 
Ghajini - The Game Development
Ghajini - The Game DevelopmentGhajini - The Game Development
Ghajini - The Game Development
 
Free video editing software
Free video editing softwareFree video editing software
Free video editing software
 
WIN203_With Amazon EC2 for Windows Server and Thinkbox Deadline
WIN203_With Amazon EC2 for Windows Server and Thinkbox DeadlineWIN203_With Amazon EC2 for Windows Server and Thinkbox Deadline
WIN203_With Amazon EC2 for Windows Server and Thinkbox Deadline
 
Shaders - Claudia Doppioslash - Unity With the Best
Shaders - Claudia Doppioslash - Unity With the BestShaders - Claudia Doppioslash - Unity With the Best
Shaders - Claudia Doppioslash - Unity With the Best
 

More from 360|Conferences

InsideMobile Keynote
InsideMobile KeynoteInsideMobile Keynote
InsideMobile Keynote
360|Conferences
 
Metaio Mobile Augmented Reality
Metaio Mobile Augmented RealityMetaio Mobile Augmented Reality
Metaio Mobile Augmented Reality
360|Conferences
 
Web Os Hands On
Web Os Hands OnWeb Os Hands On
Web Os Hands On
360|Conferences
 
Mobile Apps- Business Toolkit for the Manager
Mobile Apps- Business Toolkit for the ManagerMobile Apps- Business Toolkit for the Manager
Mobile Apps- Business Toolkit for the Manager
360|Conferences
 
Making Real Money with Mobile Apps
Making Real Money with Mobile AppsMaking Real Money with Mobile Apps
Making Real Money with Mobile Apps
360|Conferences
 
Unlocking Android
Unlocking AndroidUnlocking Android
Unlocking Android
360|Conferences
 
Inside Mobile Widgets Publish
Inside Mobile Widgets PublishInside Mobile Widgets Publish
Inside Mobile Widgets Publish
360|Conferences
 
You Know WebOS
You Know WebOSYou Know WebOS
You Know WebOS
360|Conferences
 
Ignite Denver 4 Master Deck
Ignite Denver 4 Master DeckIgnite Denver 4 Master Deck
Ignite Denver 4 Master Deck
360|Conferences
 
Chad Udell - Developers are from Mars, Designers are from Venus
Chad Udell - Developers are from Mars, Designers are from VenusChad Udell - Developers are from Mars, Designers are from Venus
Chad Udell - Developers are from Mars, Designers are from Venus
360|Conferences
 
Wes Leonardo - Putting AIR into your Application
Wes Leonardo - Putting AIR into your ApplicationWes Leonardo - Putting AIR into your Application
Wes Leonardo - Putting AIR into your Application
360|Conferences
 
Samuel Asher Rivello - PureMVC Hands On Part 1
Samuel Asher Rivello - PureMVC Hands On Part 1Samuel Asher Rivello - PureMVC Hands On Part 1
Samuel Asher Rivello - PureMVC Hands On Part 1
360|Conferences
 
Adrian Pomilio - Flex Ajax Bridge and Legacy Applications
Adrian Pomilio - Flex Ajax Bridge and Legacy ApplicationsAdrian Pomilio - Flex Ajax Bridge and Legacy Applications
Adrian Pomilio - Flex Ajax Bridge and Legacy Applications
360|Conferences
 
Samuel Asher Rivello - PureMVC Hands On Part 2
Samuel Asher Rivello - PureMVC Hands On Part 2Samuel Asher Rivello - PureMVC Hands On Part 2
Samuel Asher Rivello - PureMVC Hands On Part 2
360|Conferences
 
Ryan Fishberg and Joan Lafferty - ItemsRenderers
Ryan Fishberg and Joan Lafferty - ItemsRenderersRyan Fishberg and Joan Lafferty - ItemsRenderers
Ryan Fishberg and Joan Lafferty - ItemsRenderers
360|Conferences
 
Ryan Campbell - OpenFlux and Flex 4
Ryan Campbell - OpenFlux and Flex 4Ryan Campbell - OpenFlux and Flex 4
Ryan Campbell - OpenFlux and Flex 4
360|Conferences
 
Ben Elmore - Do You Speak Flex
Ben Elmore - Do You Speak FlexBen Elmore - Do You Speak Flex
Ben Elmore - Do You Speak Flex
360|Conferences
 
Francisco Inchauste - RIA Mojo - Making your Flex application standout with a...
Francisco Inchauste - RIA Mojo - Making your Flex application standout with a...Francisco Inchauste - RIA Mojo - Making your Flex application standout with a...
Francisco Inchauste - RIA Mojo - Making your Flex application standout with a...
360|Conferences
 
Joe Johnston - FLEXperience - putting the Flex in UX
Joe Johnston - FLEXperience - putting the Flex in UXJoe Johnston - FLEXperience - putting the Flex in UX
Joe Johnston - FLEXperience - putting the Flex in UX
360|Conferences
 
Bryc Barrand - The art of project management in large-scale Flex projects
Bryc Barrand - The art of project management in large-scale Flex projectsBryc Barrand - The art of project management in large-scale Flex projects
Bryc Barrand - The art of project management in large-scale Flex projects
360|Conferences
 

More from 360|Conferences (20)

InsideMobile Keynote
InsideMobile KeynoteInsideMobile Keynote
InsideMobile Keynote
 
Metaio Mobile Augmented Reality
Metaio Mobile Augmented RealityMetaio Mobile Augmented Reality
Metaio Mobile Augmented Reality
 
Web Os Hands On
Web Os Hands OnWeb Os Hands On
Web Os Hands On
 
Mobile Apps- Business Toolkit for the Manager
Mobile Apps- Business Toolkit for the ManagerMobile Apps- Business Toolkit for the Manager
Mobile Apps- Business Toolkit for the Manager
 
Making Real Money with Mobile Apps
Making Real Money with Mobile AppsMaking Real Money with Mobile Apps
Making Real Money with Mobile Apps
 
Unlocking Android
Unlocking AndroidUnlocking Android
Unlocking Android
 
Inside Mobile Widgets Publish
Inside Mobile Widgets PublishInside Mobile Widgets Publish
Inside Mobile Widgets Publish
 
You Know WebOS
You Know WebOSYou Know WebOS
You Know WebOS
 
Ignite Denver 4 Master Deck
Ignite Denver 4 Master DeckIgnite Denver 4 Master Deck
Ignite Denver 4 Master Deck
 
Chad Udell - Developers are from Mars, Designers are from Venus
Chad Udell - Developers are from Mars, Designers are from VenusChad Udell - Developers are from Mars, Designers are from Venus
Chad Udell - Developers are from Mars, Designers are from Venus
 
Wes Leonardo - Putting AIR into your Application
Wes Leonardo - Putting AIR into your ApplicationWes Leonardo - Putting AIR into your Application
Wes Leonardo - Putting AIR into your Application
 
Samuel Asher Rivello - PureMVC Hands On Part 1
Samuel Asher Rivello - PureMVC Hands On Part 1Samuel Asher Rivello - PureMVC Hands On Part 1
Samuel Asher Rivello - PureMVC Hands On Part 1
 
Adrian Pomilio - Flex Ajax Bridge and Legacy Applications
Adrian Pomilio - Flex Ajax Bridge and Legacy ApplicationsAdrian Pomilio - Flex Ajax Bridge and Legacy Applications
Adrian Pomilio - Flex Ajax Bridge and Legacy Applications
 
Samuel Asher Rivello - PureMVC Hands On Part 2
Samuel Asher Rivello - PureMVC Hands On Part 2Samuel Asher Rivello - PureMVC Hands On Part 2
Samuel Asher Rivello - PureMVC Hands On Part 2
 
Ryan Fishberg and Joan Lafferty - ItemsRenderers
Ryan Fishberg and Joan Lafferty - ItemsRenderersRyan Fishberg and Joan Lafferty - ItemsRenderers
Ryan Fishberg and Joan Lafferty - ItemsRenderers
 
Ryan Campbell - OpenFlux and Flex 4
Ryan Campbell - OpenFlux and Flex 4Ryan Campbell - OpenFlux and Flex 4
Ryan Campbell - OpenFlux and Flex 4
 
Ben Elmore - Do You Speak Flex
Ben Elmore - Do You Speak FlexBen Elmore - Do You Speak Flex
Ben Elmore - Do You Speak Flex
 
Francisco Inchauste - RIA Mojo - Making your Flex application standout with a...
Francisco Inchauste - RIA Mojo - Making your Flex application standout with a...Francisco Inchauste - RIA Mojo - Making your Flex application standout with a...
Francisco Inchauste - RIA Mojo - Making your Flex application standout with a...
 
Joe Johnston - FLEXperience - putting the Flex in UX
Joe Johnston - FLEXperience - putting the Flex in UXJoe Johnston - FLEXperience - putting the Flex in UX
Joe Johnston - FLEXperience - putting the Flex in UX
 
Bryc Barrand - The art of project management in large-scale Flex projects
Bryc Barrand - The art of project management in large-scale Flex projectsBryc Barrand - The art of project management in large-scale Flex projects
Bryc Barrand - The art of project management in large-scale Flex projects
 

Recently uploaded

GraphSummit Singapore | The Future of Agility: Supercharging Digital Transfor...
GraphSummit Singapore | The Future of Agility: Supercharging Digital Transfor...GraphSummit Singapore | The Future of Agility: Supercharging Digital Transfor...
GraphSummit Singapore | The Future of Agility: Supercharging Digital Transfor...
Neo4j
 
Monitoring Java Application Security with JDK Tools and JFR Events
Monitoring Java Application Security with JDK Tools and JFR EventsMonitoring Java Application Security with JDK Tools and JFR Events
Monitoring Java Application Security with JDK Tools and JFR Events
Ana-Maria Mihalceanu
 
GraphSummit Singapore | Graphing Success: Revolutionising Organisational Stru...
GraphSummit Singapore | Graphing Success: Revolutionising Organisational Stru...GraphSummit Singapore | Graphing Success: Revolutionising Organisational Stru...
GraphSummit Singapore | Graphing Success: Revolutionising Organisational Stru...
Neo4j
 
UiPath Test Automation using UiPath Test Suite series, part 5
UiPath Test Automation using UiPath Test Suite series, part 5UiPath Test Automation using UiPath Test Suite series, part 5
UiPath Test Automation using UiPath Test Suite series, part 5
DianaGray10
 
Securing your Kubernetes cluster_ a step-by-step guide to success !
Securing your Kubernetes cluster_ a step-by-step guide to success !Securing your Kubernetes cluster_ a step-by-step guide to success !
Securing your Kubernetes cluster_ a step-by-step guide to success !
KatiaHIMEUR1
 
GraphSummit Singapore | The Art of the Possible with Graph - Q2 2024
GraphSummit Singapore | The Art of the  Possible with Graph - Q2 2024GraphSummit Singapore | The Art of the  Possible with Graph - Q2 2024
GraphSummit Singapore | The Art of the Possible with Graph - Q2 2024
Neo4j
 
Elizabeth Buie - Older adults: Are we really designing for our future selves?
Elizabeth Buie - Older adults: Are we really designing for our future selves?Elizabeth Buie - Older adults: Are we really designing for our future selves?
Elizabeth Buie - Older adults: Are we really designing for our future selves?
Nexer Digital
 
FIDO Alliance Osaka Seminar: Passkeys and the Road Ahead.pdf
FIDO Alliance Osaka Seminar: Passkeys and the Road Ahead.pdfFIDO Alliance Osaka Seminar: Passkeys and the Road Ahead.pdf
FIDO Alliance Osaka Seminar: Passkeys and the Road Ahead.pdf
FIDO Alliance
 
SAP Sapphire 2024 - ASUG301 building better apps with SAP Fiori.pdf
SAP Sapphire 2024 - ASUG301 building better apps with SAP Fiori.pdfSAP Sapphire 2024 - ASUG301 building better apps with SAP Fiori.pdf
SAP Sapphire 2024 - ASUG301 building better apps with SAP Fiori.pdf
Peter Spielvogel
 
By Design, not by Accident - Agile Venture Bolzano 2024
By Design, not by Accident - Agile Venture Bolzano 2024By Design, not by Accident - Agile Venture Bolzano 2024
By Design, not by Accident - Agile Venture Bolzano 2024
Pierluigi Pugliese
 
LF Energy Webinar: Electrical Grid Modelling and Simulation Through PowSyBl -...
LF Energy Webinar: Electrical Grid Modelling and Simulation Through PowSyBl -...LF Energy Webinar: Electrical Grid Modelling and Simulation Through PowSyBl -...
LF Energy Webinar: Electrical Grid Modelling and Simulation Through PowSyBl -...
DanBrown980551
 
Secstrike : Reverse Engineering & Pwnable tools for CTF.pptx
Secstrike : Reverse Engineering & Pwnable tools for CTF.pptxSecstrike : Reverse Engineering & Pwnable tools for CTF.pptx
Secstrike : Reverse Engineering & Pwnable tools for CTF.pptx
nkrafacyberclub
 
Essentials of Automations: The Art of Triggers and Actions in FME
Essentials of Automations: The Art of Triggers and Actions in FMEEssentials of Automations: The Art of Triggers and Actions in FME
Essentials of Automations: The Art of Triggers and Actions in FME
Safe Software
 
GraphSummit Singapore | Enhancing Changi Airport Group's Passenger Experience...
GraphSummit Singapore | Enhancing Changi Airport Group's Passenger Experience...GraphSummit Singapore | Enhancing Changi Airport Group's Passenger Experience...
GraphSummit Singapore | Enhancing Changi Airport Group's Passenger Experience...
Neo4j
 
20240605 QFM017 Machine Intelligence Reading List May 2024
20240605 QFM017 Machine Intelligence Reading List May 202420240605 QFM017 Machine Intelligence Reading List May 2024
20240605 QFM017 Machine Intelligence Reading List May 2024
Matthew Sinclair
 
UiPath Test Automation using UiPath Test Suite series, part 4
UiPath Test Automation using UiPath Test Suite series, part 4UiPath Test Automation using UiPath Test Suite series, part 4
UiPath Test Automation using UiPath Test Suite series, part 4
DianaGray10
 
Free Complete Python - A step towards Data Science
Free Complete Python - A step towards Data ScienceFree Complete Python - A step towards Data Science
Free Complete Python - A step towards Data Science
RinaMondal9
 
The Future of Platform Engineering
The Future of Platform EngineeringThe Future of Platform Engineering
The Future of Platform Engineering
Jemma Hussein Allen
 
Removing Uninteresting Bytes in Software Fuzzing
Removing Uninteresting Bytes in Software FuzzingRemoving Uninteresting Bytes in Software Fuzzing
Removing Uninteresting Bytes in Software Fuzzing
Aftab Hussain
 
State of ICS and IoT Cyber Threat Landscape Report 2024 preview
State of ICS and IoT Cyber Threat Landscape Report 2024 previewState of ICS and IoT Cyber Threat Landscape Report 2024 preview
State of ICS and IoT Cyber Threat Landscape Report 2024 preview
Prayukth K V
 

Recently uploaded (20)

GraphSummit Singapore | The Future of Agility: Supercharging Digital Transfor...
GraphSummit Singapore | The Future of Agility: Supercharging Digital Transfor...GraphSummit Singapore | The Future of Agility: Supercharging Digital Transfor...
GraphSummit Singapore | The Future of Agility: Supercharging Digital Transfor...
 
Monitoring Java Application Security with JDK Tools and JFR Events
Monitoring Java Application Security with JDK Tools and JFR EventsMonitoring Java Application Security with JDK Tools and JFR Events
Monitoring Java Application Security with JDK Tools and JFR Events
 
GraphSummit Singapore | Graphing Success: Revolutionising Organisational Stru...
GraphSummit Singapore | Graphing Success: Revolutionising Organisational Stru...GraphSummit Singapore | Graphing Success: Revolutionising Organisational Stru...
GraphSummit Singapore | Graphing Success: Revolutionising Organisational Stru...
 
UiPath Test Automation using UiPath Test Suite series, part 5
UiPath Test Automation using UiPath Test Suite series, part 5UiPath Test Automation using UiPath Test Suite series, part 5
UiPath Test Automation using UiPath Test Suite series, part 5
 
Securing your Kubernetes cluster_ a step-by-step guide to success !
Securing your Kubernetes cluster_ a step-by-step guide to success !Securing your Kubernetes cluster_ a step-by-step guide to success !
Securing your Kubernetes cluster_ a step-by-step guide to success !
 
GraphSummit Singapore | The Art of the Possible with Graph - Q2 2024
GraphSummit Singapore | The Art of the  Possible with Graph - Q2 2024GraphSummit Singapore | The Art of the  Possible with Graph - Q2 2024
GraphSummit Singapore | The Art of the Possible with Graph - Q2 2024
 
Elizabeth Buie - Older adults: Are we really designing for our future selves?
Elizabeth Buie - Older adults: Are we really designing for our future selves?Elizabeth Buie - Older adults: Are we really designing for our future selves?
Elizabeth Buie - Older adults: Are we really designing for our future selves?
 
FIDO Alliance Osaka Seminar: Passkeys and the Road Ahead.pdf
FIDO Alliance Osaka Seminar: Passkeys and the Road Ahead.pdfFIDO Alliance Osaka Seminar: Passkeys and the Road Ahead.pdf
FIDO Alliance Osaka Seminar: Passkeys and the Road Ahead.pdf
 
SAP Sapphire 2024 - ASUG301 building better apps with SAP Fiori.pdf
SAP Sapphire 2024 - ASUG301 building better apps with SAP Fiori.pdfSAP Sapphire 2024 - ASUG301 building better apps with SAP Fiori.pdf
SAP Sapphire 2024 - ASUG301 building better apps with SAP Fiori.pdf
 
By Design, not by Accident - Agile Venture Bolzano 2024
By Design, not by Accident - Agile Venture Bolzano 2024By Design, not by Accident - Agile Venture Bolzano 2024
By Design, not by Accident - Agile Venture Bolzano 2024
 
LF Energy Webinar: Electrical Grid Modelling and Simulation Through PowSyBl -...
LF Energy Webinar: Electrical Grid Modelling and Simulation Through PowSyBl -...LF Energy Webinar: Electrical Grid Modelling and Simulation Through PowSyBl -...
LF Energy Webinar: Electrical Grid Modelling and Simulation Through PowSyBl -...
 
Secstrike : Reverse Engineering & Pwnable tools for CTF.pptx
Secstrike : Reverse Engineering & Pwnable tools for CTF.pptxSecstrike : Reverse Engineering & Pwnable tools for CTF.pptx
Secstrike : Reverse Engineering & Pwnable tools for CTF.pptx
 
Essentials of Automations: The Art of Triggers and Actions in FME
Essentials of Automations: The Art of Triggers and Actions in FMEEssentials of Automations: The Art of Triggers and Actions in FME
Essentials of Automations: The Art of Triggers and Actions in FME
 
GraphSummit Singapore | Enhancing Changi Airport Group's Passenger Experience...
GraphSummit Singapore | Enhancing Changi Airport Group's Passenger Experience...GraphSummit Singapore | Enhancing Changi Airport Group's Passenger Experience...
GraphSummit Singapore | Enhancing Changi Airport Group's Passenger Experience...
 
20240605 QFM017 Machine Intelligence Reading List May 2024
20240605 QFM017 Machine Intelligence Reading List May 202420240605 QFM017 Machine Intelligence Reading List May 2024
20240605 QFM017 Machine Intelligence Reading List May 2024
 
UiPath Test Automation using UiPath Test Suite series, part 4
UiPath Test Automation using UiPath Test Suite series, part 4UiPath Test Automation using UiPath Test Suite series, part 4
UiPath Test Automation using UiPath Test Suite series, part 4
 
Free Complete Python - A step towards Data Science
Free Complete Python - A step towards Data ScienceFree Complete Python - A step towards Data Science
Free Complete Python - A step towards Data Science
 
The Future of Platform Engineering
The Future of Platform EngineeringThe Future of Platform Engineering
The Future of Platform Engineering
 
Removing Uninteresting Bytes in Software Fuzzing
Removing Uninteresting Bytes in Software FuzzingRemoving Uninteresting Bytes in Software Fuzzing
Removing Uninteresting Bytes in Software Fuzzing
 
State of ICS and IoT Cyber Threat Landscape Report 2024 preview
State of ICS and IoT Cyber Threat Landscape Report 2024 previewState of ICS and IoT Cyber Threat Landscape Report 2024 preview
State of ICS and IoT Cyber Threat Landscape Report 2024 preview
 

Ryan Phelan - Bending and Flexing

  • 1. 360|Flex Indianapolis Bending and Flexing Using Pixel Bender with Flex Ryan Phelan - www.rphelan.com - @rphelan Copyright © 2004 - 2009 All Rights Reserved
  • 2. Bending and Flexing? ? ? Copyright © 2004 - 2009 All Rights Reserved
  • 3. Who Am I? 5+ years developing RIA & desktop apps in Flash/Flex/AIR Currently Lead Interactive Developer at Phenomblue Focus on Emerging technologies Improving workflow and productivity Copyright © 2004 - 2009 All Rights Reserved
  • 4. Topics Practical applications of Pixel Bender Technology/terminology overview Pixel Bender Toolkit Project Integration Performance Considerations Advanced Techniques Demos Copyright © 2004 - 2009 All Rights Reserved
  • 5. What is a pixel shader? Coloring Lighting Bump Mapping Reflection Specular Highlights Distortion Other Effects Copyright © 2004 - 2009 All Rights Reserved
  • 6. What is a pixel shader? One pixel at a time Can be done in parallel Takes 0 or more images as input and outputs an image based on a set of parameters Copyright © 2004 - 2009 All Rights Reserved
  • 7. What is Pixel Bender? Programming language for creating pixel shaders Similar to other C-based shader languages Used with Flash, After Effects, and Photoshop GLSL HLSL Copyright © 2004 - 2009 All Rights Reserved
  • 8. GPU vs. CPU Only runs on CPU in Flash Multi-threading used instead How does this affect performance? Copyright © 2004 - 2009 All Rights Reserved
  • 9. The Pixel Bender Toolkit http://labs.adobe.com/downloads/pixelbender.html Copyright © 2004 - 2009 All Rights Reserved
  • 10. Data Types Basic: Vector: bool, int, float, pixel1 float2, float3, float4 Matrix: bool2, bool3, bool4 float2x2 int2, int3, int4 float3x3 pixel2, pixel3, pixel4 float4x4 Copyright © 2004 - 2009 All Rights Reserved
  • 11. Vector Swizzling & Write Masking (AKA topics that will make you a hit at any party) 3 Forms: Interchangeable Not mixable r, g, b, a pixel.r == pixel.x pixel.ryp x, y, z, w pixel.rgb == pixel.stp pixel.xyza s, t, p, q Copyright © 2004 - 2009 All Rights Reserved
  • 12. Vector Swizzling & Write Masking (AKA topics that will make you a hit at any party) You can change the order to You can repeat channels swap values pixel.rrr pixel.bgr pixel.xx pixel.yx Copyright © 2004 - 2009 All Rights Reserved
  • 13. Limitations Specification Pixel Bender is Based on Shader Model spec (directX) Flash uses Shader Model 2.0 Photoshop and After Effects use Shader Model 3.0 Why? Flash is web based, needs to work on wider range of hardware. Copyright © 2004 - 2009 All Rights Reserved
  • 14. Limitations What can’t Pixel Bender Do? Loops or control structures other than if and else Custom support functions and libraries Region functions Arrays Dependent values Non-constant indices into vector values Copyright © 2004 - 2009 All Rights Reserved
  • 15. Incorporating Pixel Bender in Flex 1. Embed or load at runtime 2. Pass byte code to instance of Shader class 3. Render Use as a filter via DisplayObject.filters or BitmapData.applyFilter Use as a fill via Graphics.beginShaderFill or GraphicsShaderFill Use as a blend mode via DisplayObject.blendShader Crunch numbers via ShaderJob Copyright © 2004 - 2009 All Rights Reserved
  • 16. Performance ActionScript is faster for small data sets Asynchronous ShaderJobs are slower than synchronous Vector input is faster than ByteArray for large data sets Your mileage may vary (Don’t forget about alchemy) Copyright © 2004 - 2009 All Rights Reserved
  • 17. Wrapper Classes Wrapper classes provide Strong typing Known API Better reusability Ability to limit shader input values For fills and blend modes, extend flash.display.Shader For filters, extend flash.display.ShaderFilter Copyright © 2004 - 2009 All Rights Reserved
  • 18. Wrap Up Pixel Bender can be used in a large variety of ways, it’s not just for image editing apps. It can do certain types of calculations very efficiently. It can also be a CPU hog. Wrapper classes make your shaders simple to use. We have only scratched the surface. Go out there and innovate! Copyright © 2004 - 2009 All Rights Reserved
  • 19. Resources Official Pixel Bender Wiki – http://www.adobe.com/go/pixelbender_toolkit Pixel Bender Exchange – http://www.adobe.com/cfusion/exchange/index.cfm? event=productHome&exc=26 Pixel Bender on Twitter - http://twitter.com/pixelbender Forums - http://forums.adobe.com/community/adobe_labs/pixelbender Copyright © 2004 - 2009 All Rights Reserved
  • 20. Resources Sample Code Pixel Bender Explorer - http://extjs.com/blog/2009/02/19/pixel-bender-explorer BendPixels – http://code.google.com/p/bendpixels WPF Pixel Shader Effects Library - http://wpffx.codeplex.com Tutorials - http://www.gotoandlearn.com Authoring Eclipse Plugin - http://blog.joa-ebert.com/pbdt/ Copyright © 2004 - 2009 All Rights Reserved
  • 21. Resources Blogs Ryan Phelan - http://www.rphelan.com Joa Ebert - http://blog.joa-ebert.com Mr. Doob - http://mrdoob.com/blog Tom Beddard - http://www.subblue.com David Lenaert - http://www.derschmale.com Frank Reitberger - http://www.dasprinzip.com/prinzipiell Petri Leskinen - http://pixelero.wordpress.com Copyright © 2004 - 2009 All Rights Reserved