<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0"
	xmlns:content="http://purl.org/rss/1.0/modules/content/"
	xmlns:wfw="http://wellformedweb.org/CommentAPI/"
	xmlns:dc="http://purl.org/dc/elements/1.1/"
	xmlns:atom="http://www.w3.org/2005/Atom"
	xmlns:sy="http://purl.org/rss/1.0/modules/syndication/"
	xmlns:slash="http://purl.org/rss/1.0/modules/slash/"
	>

<channel>
	<title>Ryan Phelan &#187; Pixel Bender</title>
	<atom:link href="http://www.rphelan.com/category/pixel-bender/feed/" rel="self" type="application/rss+xml" />
	<link>http://www.rphelan.com</link>
	<description>Exploring Flex, Design, and Visualization</description>
	<lastBuildDate>Thu, 12 Aug 2010 14:56:14 +0000</lastBuildDate>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	<generator>http://wordpress.org/?v=3.0.1</generator>
		<item>
		<title>360&#124;Flex Indy Slides</title>
		<link>http://www.rphelan.com/2009/05/21/360flex-indy-slides/</link>
		<comments>http://www.rphelan.com/2009/05/21/360flex-indy-slides/#comments</comments>
		<pubDate>Fri, 22 May 2009 05:45:43 +0000</pubDate>
		<dc:creator>Ryan</dc:creator>
				<category><![CDATA[Flex]]></category>
		<category><![CDATA[Pixel Bender]]></category>
		<category><![CDATA[360Flex]]></category>

		<guid isPermaLink="false">http://www.rphelan.com/?p=280</guid>
		<description><![CDATA[The slides from my presentation on Pixel Bender at 360&#124;Flex Indianapolis are available here.  Thanks to those who attended, and thanks to Tom and John for putting on another great conference. I'm not a big fan of just zipping up all my source files and tossing out a download link because without some context, sample [...]]]></description>
			<content:encoded><![CDATA[<p>The slides from my presentation on Pixel Bender at 360|Flex Indianapolis are available <a href="http://www.rphelan.com/flex/RyanPhelan_PixelBender_360Flex.pdf">here</a>.  Thanks to those who attended, and thanks to Tom and John for putting on another great conference.</p>
<p><a href="http://www.rphelan.com/flex/RyanPhelan_PixelBender_360Flex.pdf"><img class="alignnone size-full wp-image-281" title="360|Flex Slides" src="http://www.rphelan.com/flex/uploads/2009/05/ryanphelan_pixelbender_360flex.png" alt="360|Flex Slides" width="400" height="225" /></a></p>
<p>I'm not a big fan of just zipping up all my source files and tossing out a download link because without some context, sample code isn't generally very useful.  Instead, I'll be doing several blog posts over the next few weeks with some detailed explanation to go with the code, so keep checking back.</p>
<p>If you have any questions about the material I presented, or just Pixel Bender or Flex in general, send them over.  I'd love to help.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.rphelan.com/2009/05/21/360flex-indy-slides/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Pixel Bender Blend Modes</title>
		<link>http://www.rphelan.com/2009/05/19/pixel-bender-blend-modes/</link>
		<comments>http://www.rphelan.com/2009/05/19/pixel-bender-blend-modes/#comments</comments>
		<pubDate>Tue, 19 May 2009 16:39:51 +0000</pubDate>
		<dc:creator>Ryan</dc:creator>
				<category><![CDATA[Flex]]></category>
		<category><![CDATA[Pixel Bender]]></category>
		<category><![CDATA[360Flex]]></category>
		<category><![CDATA[Color]]></category>
		<category><![CDATA[Design]]></category>
		<category><![CDATA[Effects]]></category>
		<category><![CDATA[Shaders]]></category>

		<guid isPermaLink="false">http://www.rphelan.com/?p=272</guid>
		<description><![CDATA[In preparation for my Pixel Bender talk at 360Flex I wanted to create an example which shows how to use Pixel Bender shaders as blend modes, so I went ahead and whipped together 20 blend shaders:  Darken, Multiply, Color Burn, Linear Burn, Lighten, Screen, Color Dodge, Linear Dodge (Additive), Overlay, Soft Light, Hard Light, Vivid [...]]]></description>
			<content:encoded><![CDATA[<p>In preparation for my Pixel Bender talk at 360Flex I wanted to create an example which shows how to use Pixel Bender shaders as blend modes, so I went ahead and whipped together 20 blend shaders:  Darken, Multiply, Color Burn, Linear Burn, Lighten, Screen, Color Dodge, Linear Dodge (Additive), Overlay, Soft Light, Hard Light, Vivid Light, Linear Light, Pin Light, Difference, Exclusion, Interpolation, Invert, Quadratic, and Subtract.</p>
<p>You'll notice there is some overlap with the set that are natively available in flash.display.BlendMode, but I thought it would be pretty educational to see how these shaders are written Pixel Bender.  I have yet to test to see if there is a significant performance difference.</p>
<p><a href="http://www.rphelan.com/flex/PBBlendModes/"><img class="alignnone size-full wp-image-273" title="Pixel Bender Blend Modes Preview" src="http://www.rphelan.com/flex/uploads/2009/05/pbblendmodes.png" alt="Pixel Bender Blend Modes Preview" width="485" height="263" /></a></p>
<p><a href="http://www.rphelan.com/flex/PBBlendModes/">Application</a> - <a href="http://www.rphelan.com/flex/PBBlendModes/srcview/index.html">Source</a></p>
<p>The formulas behind these blend modes were pretty easy to find.  I got them from a combination of <a href="http://www.pegtop.net/delphi/articles/blendmodes">http://www.pegtop.net/delphi/articles/blendmodes</a>, <a href="http://dunnbypaul.net/blends/">http://dunnbypaul.net/blends/</a>, wikipedia and the Flash docs.</p>
<p>One topic I wasn't able to find much documentation on was how to handle alpha channels for the various blend modes.  It gets complicated if both layers have transparency, and I'm not sure if there is a standardized way of computing the resulting alpha.  So for these examples the alpha is simply set to that of the input image.  This means that these blend modes work perfectly for opaque images, but vary from what you might see in photoshop when transparency is involved.  If anyone has any good resources on the topic or would like to contribute to this effort, let me know in the comments.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.rphelan.com/2009/05/19/pixel-bender-blend-modes/feed/</wfw:commentRss>
		<slash:comments>3</slash:comments>
		</item>
		<item>
		<title>BendPixels</title>
		<link>http://www.rphelan.com/2008/11/24/bendpixels/</link>
		<comments>http://www.rphelan.com/2008/11/24/bendpixels/#comments</comments>
		<pubDate>Mon, 24 Nov 2008 15:04:02 +0000</pubDate>
		<dc:creator>Ryan</dc:creator>
				<category><![CDATA[Flex]]></category>
		<category><![CDATA[Pixel Bender]]></category>
		<category><![CDATA[Animation]]></category>
		<category><![CDATA[Effects]]></category>

		<guid isPermaLink="false">http://www.rphelan.com/?p=235</guid>
		<description><![CDATA[BendPixels is a library by Mrinal Wadhwa which makes it possible to tween Pixel Bender filters using Flex's mx.effects library.  I finally got a chance to play with this and it really is pretty cool.  You can check out a demo here.  It is capable of tweening arbitrary shaders, and has wrappers for several popular [...]]]></description>
			<content:encoded><![CDATA[<p><a href="http://code.google.com/p/bendpixels/">BendPixels</a> is a library by Mrinal Wadhwa which makes it possible to tween Pixel Bender filters using Flex's mx.effects library.  I finally got a chance to play with this and it really is pretty cool.  You can check out a demo <a href="http://weblog.mrinalwadhwa.com/demos/BendPixelsExample/index.html">here</a>.  It is capable of tweening arbitrary shaders, and has wrappers for several popular effects from Adobe's <a href="http://www.adobe.com/cfusion/exchange/index.cfm?event=productHome&amp;exc=26&amp;loc=en_us">Pixel Bender Exchange</a>.  I am flattered that my very own Zoom Blur effect has been included.</p>
<p>My only criticism is that Flex effects in general tend to have lackluster performance.  I frequently use libraries like <a href="http://blog.greensock.com/tweenliteas3/">TweenLite</a> instead.  Can TweenLite play nicely with Pixel Bender effects?  Of course.  I'll do an example of that sometime this week.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.rphelan.com/2008/11/24/bendpixels/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Spotlight Pixel Bender Filter</title>
		<link>http://www.rphelan.com/2008/10/28/spotlight-pixel-bender-filter/</link>
		<comments>http://www.rphelan.com/2008/10/28/spotlight-pixel-bender-filter/#comments</comments>
		<pubDate>Tue, 28 Oct 2008 15:18:53 +0000</pubDate>
		<dc:creator>Ryan</dc:creator>
				<category><![CDATA[Flex]]></category>
		<category><![CDATA[Pixel Bender]]></category>
		<category><![CDATA[Colored Lighting]]></category>
		<category><![CDATA[Effects]]></category>
		<category><![CDATA[Filters]]></category>
		<category><![CDATA[Flash]]></category>
		<category><![CDATA[Lighting Effects]]></category>
		<category><![CDATA[Spotlight]]></category>

		<guid isPermaLink="false">http://www.rphelan.com/?p=219</guid>
		<description><![CDATA[This is an advanced filter which renders dynamic colored lighting on a display object in Flash.  Consider it a work in progress — It's not as full featured as Photoshop's "Lighting Effects" filter, but it is capable of creating a wide array of effects.  The kernel's main algorithm was ported from NVIDIA's Shader Library, but [...]]]></description>
			<content:encoded><![CDATA[<p>This is an advanced filter which renders dynamic colored lighting on a display object in Flash.  Consider it a work in progress — It's not as full featured as Photoshop's "Lighting Effects" filter, but it is capable of creating a wide array of effects.  The kernel's main algorithm was ported from <a href="http://developer.download.nvidia.com/shaderlibrary/webpages/shader_library.html">NVIDIA's Shader Library</a>, but I had to make some pretty heavy modifications to make it more functional for the Flash world.  It has 8 parameters:  ambientColor, angle, azimuth, coneAngle, distance, intensity, position, and spotColor.</p>
<ul>
<li>ambientColor - color to apply to all pixels of the image</li>
<li>angle - angle at which the spotlight is projected (in degrees)</li>
<li>azimuth - angle between the image plane and the spotlight (in degrees)</li>
<li>coneAngle - angle of the spotlight's "opening" (in degrees)</li>
<li>distance - distance from the spotlight to the center point</li>
<li>intensity - intensity of the spotlight</li>
<li>position - x, y, z position of the spotlight</li>
<li>spotColor - color of the spotlight</li>
</ul>
<p>There are so many different ways that you could use this effect, I will probably devote a few more posts to showing additional examples.  In this demo, I created a couple of draggable handles that you can use for positioning the spotlight, and some preset configurations (try the dawn, day, and dusk buttons).  Next time, I'll incorporate some animation.</p>
<p><a href="http://www.rphelan.com/flex/SpotlightDemo/SpotlightDemo.html">Application</a> - <a href="http://www.rphelan.com/flex/SpotlightDemo/srcview/index.html">Source</a></p>

<object classid="clsid:D27CDB6E-AE6D-11cf-96B8-444553540000"
			id="fm_SpotlightDemo_1788472347"
			class="flashmovie"
			width="420"
			height="600">
	<param name="movie" value="http://www.rphelan.com/flex/SpotlightDemo/SpotlightDemo.swf" />
	<!--[if !IE]>-->
	<object	type="application/x-shockwave-flash"
			data="http://www.rphelan.com/flex/SpotlightDemo/SpotlightDemo.swf"
			name="fm_SpotlightDemo_1788472347"
			width="420"
			height="600">
	<!--<![endif]-->
		
	<!--[if !IE]>-->
	</object>
	<!--<![endif]-->
</object>
]]></content:encoded>
			<wfw:commentRss>http://www.rphelan.com/2008/10/28/spotlight-pixel-bender-filter/feed/</wfw:commentRss>
		<slash:comments>7</slash:comments>
		</item>
		<item>
		<title>Magnify Pixel Bender Filter</title>
		<link>http://www.rphelan.com/2008/10/20/magnify-pixel-bender-filter/</link>
		<comments>http://www.rphelan.com/2008/10/20/magnify-pixel-bender-filter/#comments</comments>
		<pubDate>Mon, 20 Oct 2008 14:27:01 +0000</pubDate>
		<dc:creator>Ryan</dc:creator>
				<category><![CDATA[Flex]]></category>
		<category><![CDATA[Pixel Bender]]></category>
		<category><![CDATA[Effects]]></category>
		<category><![CDATA[Filters]]></category>
		<category><![CDATA[Flash]]></category>
		<category><![CDATA[Magnify]]></category>

		<guid isPermaLink="false">http://www.rphelan.com/?p=200</guid>
		<description><![CDATA[The "Magnify" effect is an age old Flash trick that we used to accomplish using two images and some clever masking.  This pixel shader can achieve the same effect with less code, only 1 image, and has a few new tricks up its sleeve.  It magnifies a circular section of an image and optionally creates [...]]]></description>
			<content:encoded><![CDATA[<p>The "Magnify" effect is an age old Flash trick that we used to accomplish using two images and some clever masking.  This pixel shader can achieve the same effect with less code, only 1 image, and has a few new tricks up its sleeve.  It magnifies a circular section of an image and optionally creates a smooth transition between the magnified and unmagnified areas.  The four parameters are center, outerRadius, innerRadius, and magnification.</p>
<ul>
<li>center ([0-2048, 0-2048]) - the center coordinates of the magnified area</li>
<li>outerRadius (0-500) - the radius of the magnified part of the image</li>
<li>innerRadius (0-500) - the radius of the <em>fully </em>magnified part of the image</li>
<li>magnification (1-50) - the amount to magnify the image by (e.g. set to 2 for a 2x magnification)</li>
</ul>
<p><em>Note that the ranges specified above are just the recommendations from the .pbk file, you can set these values to whatever you want in your application.</em></p>
<p>Take some time and play around with the settings, it is possible to acheive a several different effects.  If innerRadius is 0, it creates a "bubble".  If it is higher than outerRadius, then you get a hard edged circle.  In this demo, I disabled values between 0 and 1 for magnification because they can create some strange side effects, but if you are careful you can use fractional magnifications to create a "pinch" type effect.</p>
<p><a href="http://www.rphelan.com/flex/MagnifyDemo/MagnifyDemo.html">Application</a> - <a href="http://www.rphelan.com/flex/MagnifyDemo/srcview/index.html">Source</a></p>

<object classid="clsid:D27CDB6E-AE6D-11cf-96B8-444553540000"
			id="fm_MagnifyDemo_162914680"
			class="flashmovie"
			width="450"
			height="475">
	<param name="movie" value="http://www.rphelan.com/flex/MagnifyDemo/MagnifyDemo.swf" />
	<!--[if !IE]>-->
	<object	type="application/x-shockwave-flash"
			data="http://www.rphelan.com/flex/MagnifyDemo/MagnifyDemo.swf"
			name="fm_MagnifyDemo_162914680"
			width="450"
			height="475">
	<!--<![endif]-->
		
	<!--[if !IE]>-->
	</object>
	<!--<![endif]-->
</object>
]]></content:encoded>
			<wfw:commentRss>http://www.rphelan.com/2008/10/20/magnify-pixel-bender-filter/feed/</wfw:commentRss>
		<slash:comments>8</slash:comments>
		</item>
		<item>
		<title>Zoom Blur Pixel Bender Filter</title>
		<link>http://www.rphelan.com/2008/10/17/zoom-blur-pixel-bender-filter/</link>
		<comments>http://www.rphelan.com/2008/10/17/zoom-blur-pixel-bender-filter/#comments</comments>
		<pubDate>Fri, 17 Oct 2008 15:58:16 +0000</pubDate>
		<dc:creator>Ryan</dc:creator>
				<category><![CDATA[Flex]]></category>
		<category><![CDATA[Pixel Bender]]></category>
		<category><![CDATA[Effects]]></category>
		<category><![CDATA[Filters]]></category>
		<category><![CDATA[Flash]]></category>
		<category><![CDATA[Zoom Blur]]></category>

		<guid isPermaLink="false">http://www.rphelan.com/?p=187</guid>
		<description><![CDATA[Zoom Blur does a 15 level zoom and blur about a specified focus point, and could be very useful for transition effects.  Its two properties are amount and center. amount (0 - 0.5) - the amount of blur to apply center ([0 - 2048, 0 - 2048]) - the focal point of the blur Application [...]]]></description>
			<content:encoded><![CDATA[<p>Zoom Blur does a 15 level zoom and blur about a specified focus point, and could be very useful for transition effects.  Its two properties are amount and center.</p>
<ul>
<li>amount (0 - 0.5) - the amount of blur to apply</li>
<li>center ([0 - 2048, 0 - 2048]) - the focal point of the blur</li>
</ul>
<p><a href="http://www.rphelan.com/flex/ZoomBlurDemo/ZoomBlurDemo.html">Application</a> - <a href="http://www.rphelan.com/flex/ZoomBlurDemo/srcview/index.html">Source</a></p>
<p><em>*Note:  This application requires <a href="http://www.adobe.com/go/getflash">Flash Player 10</a></em></p>
<p><em>Photo courtesy of my talented and beautiful girlfriend, <a href="http://www.bregehrken.com">Bre Gehrken</a>.<br />
</em></p>

<object classid="clsid:D27CDB6E-AE6D-11cf-96B8-444553540000"
			id="fm_ZoomBlurDemo_1609081822"
			class="flashmovie"
			width="420"
			height="460">
	<param name="movie" value="http://www.rphelan.com/flex/ZoomBlurDemo/ZoomBlurDemo.swf" />
	<!--[if !IE]>-->
	<object	type="application/x-shockwave-flash"
			data="http://www.rphelan.com/flex/ZoomBlurDemo/ZoomBlurDemo.swf"
			name="fm_ZoomBlurDemo_1609081822"
			width="420"
			height="460">
	<!--<![endif]-->
		
	<!--[if !IE]>-->
	</object>
	<!--<![endif]-->
</object>
]]></content:encoded>
			<wfw:commentRss>http://www.rphelan.com/2008/10/17/zoom-blur-pixel-bender-filter/feed/</wfw:commentRss>
		<slash:comments>2</slash:comments>
		</item>
		<item>
		<title>Sharpen Pixel Bender Filter</title>
		<link>http://www.rphelan.com/2008/10/17/sharpen-pixel-bender-filter/</link>
		<comments>http://www.rphelan.com/2008/10/17/sharpen-pixel-bender-filter/#comments</comments>
		<pubDate>Fri, 17 Oct 2008 15:03:50 +0000</pubDate>
		<dc:creator>Ryan</dc:creator>
				<category><![CDATA[Flex]]></category>
		<category><![CDATA[Pixel Bender]]></category>
		<category><![CDATA[Filters]]></category>
		<category><![CDATA[Flash]]></category>
		<category><![CDATA[Sharpen]]></category>

		<guid isPermaLink="false">http://www.rphelan.com/?p=179</guid>
		<description><![CDATA[The Sharpen filter is similar to Photoshop's, it increases the apparant sharpness/definition of an image.  It has two parameters:  amount and radius. amount (0 - 20) - the amount to sharpen the image by radius (0 - 1) - pixel distance to sample from Application - Source *Note: This application requires Flash Player 10 Photo [...]]]></description>
			<content:encoded><![CDATA[<p>The Sharpen filter is similar to Photoshop's, it increases the apparant sharpness/definition of an image.  It has two parameters:  amount and radius.</p>
<ul>
<li>amount (0 - 20) - the amount to sharpen the image by</li>
<li>radius (0 - 1) - pixel distance to sample from</li>
</ul>
<p><a href="http://www.rphelan.com/flex/SharpenDemo/SharpenDemo.html">Application</a> - <a href="http://www.rphelan.com/flex/SharpenDemo/srcview/index.html">Source</a></p>
<p><em>*Note:  This application requires <a href="http://www.adobe.com/go/getflash">Flash Player 10</a></em></p>
<p><em>Photo courtesy of <a href="http://www.sxc.hu">stock.xchng</a></em></p>

<object classid="clsid:D27CDB6E-AE6D-11cf-96B8-444553540000"
			id="fm_SharpenDemo_2099261163"
			class="flashmovie"
			width="420"
			height="450">
	<param name="movie" value="http://www.rphelan.com/flex/SharpenDemo/SharpenDemo.swf" />
	<!--[if !IE]>-->
	<object	type="application/x-shockwave-flash"
			data="http://www.rphelan.com/flex/SharpenDemo/SharpenDemo.swf"
			name="fm_SharpenDemo_2099261163"
			width="420"
			height="450">
	<!--<![endif]-->
		
	<!--[if !IE]>-->
	</object>
	<!--<![endif]-->
</object>
]]></content:encoded>
			<wfw:commentRss>http://www.rphelan.com/2008/10/17/sharpen-pixel-bender-filter/feed/</wfw:commentRss>
		<slash:comments>4</slash:comments>
		</item>
		<item>
		<title>Wave Reflection Pixel Bender Filter</title>
		<link>http://www.rphelan.com/2008/10/16/wave-reflection-pixel-bender-filter/</link>
		<comments>http://www.rphelan.com/2008/10/16/wave-reflection-pixel-bender-filter/#comments</comments>
		<pubDate>Thu, 16 Oct 2008 20:30:22 +0000</pubDate>
		<dc:creator>Ryan</dc:creator>
				<category><![CDATA[Flex]]></category>
		<category><![CDATA[Pixel Bender]]></category>
		<category><![CDATA[Animation]]></category>
		<category><![CDATA[Filters]]></category>
		<category><![CDATA[Flash]]></category>
		<category><![CDATA[Reflection]]></category>
		<category><![CDATA[Water]]></category>

		<guid isPermaLink="false">http://www.rphelan.com/?p=157</guid>
		<description><![CDATA[Wave Reflection creates the effect of moving water over the surface of an image.  It differs from other wave and ripple effects in that it can be animated in a loop to create continuous ambient motion, and the ripples are not uniformly distributed across the image - they become more exaggerated towards the bottom.  The [...]]]></description>
			<content:encoded><![CDATA[<p>Wave Reflection creates the effect of moving water over the surface of an image.  It differs from other wave and ripple effects in that it can be animated in a loop to create continuous ambient motion, and the ripples are not uniformly distributed across the image - they become more exaggerated towards the bottom.  The three parameters are amplitude, frequency, and progress.</p>
<ul>
<li>amplitude (0-1) - the height of the waves</li>
<li>frequency (0-.54) - how close together the waves are.  Higher value = more waves.</li>
<li>progress (0-1) - percentage of the wave sequence.  Animate from 0 to 1 to get a smooth wave effect.</li>
</ul>
<p>This was my first go at a Pixel Bender filter, let me know what you think.  I've got a couple more in the works, so check back soon.</p>
<p><a href="http://www.rphelan.com/flex/WaveReflectionDemo/WaveReflectionDemo.html">Application</a> - <a href="http://www.rphelan.com/flex/WaveReflectionDemo/srcview/index.html">Source</a></p>
<p><em>*Note:  This application requires <a href="http://www.adobe.com/go/getflash">Flash Player 10</a></em></p>
<p><em>Photo courtesy of <a href="http://www.sxc.hu">stock.xchng</a></em></p>

<object classid="clsid:D27CDB6E-AE6D-11cf-96B8-444553540000"
			id="fm_WaveReflectionDemo_364572913"
			class="flashmovie"
			width="420"
			height="550">
	<param name="movie" value="http://www.rphelan.com/flex/WaveReflectionDemo/WaveReflectionDemo.swf" />
	<!--[if !IE]>-->
	<object	type="application/x-shockwave-flash"
			data="http://www.rphelan.com/flex/WaveReflectionDemo/WaveReflectionDemo.swf"
			name="fm_WaveReflectionDemo_364572913"
			width="420"
			height="550">
	<!--<![endif]-->
		
	<!--[if !IE]>-->
	</object>
	<!--<![endif]-->
</object>
]]></content:encoded>
			<wfw:commentRss>http://www.rphelan.com/2008/10/16/wave-reflection-pixel-bender-filter/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
	</channel>
</rss>
