I've seen a number of pixel-shader effect examples, stuff like swirl on an image. But I'm wondering if anyone knows of any examples or tutorials for more practical uses of shader effects?
I'm not saying that a swirl effect doesn't have it's uses, it's just that many of the examples I've found have the basic effect explained and don't go into how it might be used subtly with another effect or transition to produce a wonderful effect. There's a video here, that outlines all the WPF Effects Library, but I'm not sure how I would use some of them in a practical context.
For example, when Flash 8 came out with effects like blur, I found a wonderful video that showed how to use the blur effect to create a cool effect with speeding text, that video inspired many ideas of what I could do with the effects in Flash 8. I'm looking for something similar with Pixel Shader Effects.
The pixel-shader stage (PS) enables rich shading techniques such as per-pixel lighting and post-processing. A pixel shader is a program that combines constant variables, texture data, interpolated per-vertex values, and other data to produce per-pixel outputs.
A vertex shader is a program executed on the graphics card's GPU which operates on each vertex individually. This facilitates we can write our own custom algorithm to work with the vertex's. Pixel Shaders: A pixel shader is a program executed on the graphics card's GPU during the rasterization process for each pixel.
Shaders are specialized programs used by graphics hardware to produce images. They're usually subdivided into smaller programs which handle different aspects of the hardware rendering process.
One practical thing that pixel shader effects enable ... are blend modes.
Check out Robby Ingebretsen's post on the matter (which discusses a useful way to take advantage of the linear burn blend mode). There is also a StackOverflow question on this subject as well.
In fact, I actually have written a blend mode library for WPF & Silverlight, and make it freely available at my blog. Following is a list of all my blend mode posts (all of which have source code and binaries attached):
Hope this sparks your imagination ... and let me know if you toy around with the library!
I've used pixel shaders in different contexts. Mostly to wow users.
Here are two examples from me. Genie effect in Silverlight/WPF: live demo
alt text http://img121.imageshack.us/img121/6074/genied.jpg
Webcam support in Silverlight 4 gives you endless fun, when you combine it with shaders. I surprised a conference attendees with Bill Gates face, appearing on white surfaces. I set a flashlight next to webcam and...
alt text http://w2.com.ua/files/tinymce/images/Analytics/IT%20Jam%20/.thumbs/4bd67c03d4553251a72a01256fd9e61f_600_0_0.jpg
Web cam application is also availble here: live demo (you'll need Silverlight 4 runtime & web cam).
Wowing users is definitely not only way to use shaders. You could also do some costly calculus on GPU, but I can't find any good real-life example. And if you are a game developer (I'm not) you probably use shaders on a daily basis.
As for practical uses explanation there is not much in the Net, specifically to WPF/Silverlight technologies. One should go through adjacent topics, starting from HLSL language specification and ending with flash pixel bender. Here are some good references to start:
I also described in details how I created Genie effect, but explanation is available only in Russian.
There are no build-in usage of shaders in WPF controls, as far as I know.
Hope this helps :). Cheers.
If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!
Donate Us With