New Bling WPF release with metaballs!

No, not meatballs. I’ve done a lot of work on Bling this month, the first of which is writing a paper on the technique used to build Bling. I’ve also overhauled how pixel shader effects are expressed so that even less boilerplate is required than before.  In the new release, when you want to add…

1

Shading Blobs with Bling WPF!

I updated Bling WPF to version 0.6, get it at the normal place (http://www.codeplex.com/bling). Mostly, I changed the DSL to get rid of more boilerplate code. Now you can create multiple input and parameter pixel shader effects with only a few lines of C# code (sorry, no XAML yet). Example of a blob shader: var…

1

Angles as doubles considered harmful

One problem with the .NET library is the inconsistent use of radians and degrees to represent angles: System.Math angle functions assume angle are expressed in radian while WPF assumes angles are expressed in degrees. Trouble arises when you try to mix both APIs. While you can convert between degrees and radians using a couple simple…

0

WPF Signal Library is now Bling WPF!

I’m rebranding the signal library as Bling WPF since it now contains support for expressing pixel shaders in C#. The release I’m putting out today polishes the pixel shader implementation that I released last week and fixes lots of outstanding issues: I’m not using Microsoft naming conventions; all names begin with a capital. This was…

0

Writing WPF pixel shaders in C#!

This week I saw a great project, Brahma, on expressing shader-based GPU computation in C#/LINQ. Using Brahma, one can write a simple LINQ query to transform a matrix without ever touching HLSL code or compiler, neat stuff! The advantage of this approach is that you don’t have to leave C# and the accompany tool support,…

0

Twilight of the High-level UI Toolkit

I was reading Tim Sweeney’s write up on how fixed function GPUs and the APIs that depend on them are quickly becoming obsolete. Basically, as GPUs move toward programmable “shaders,” graphic engine writers can easily whip up their own efficient graphic functions. We are already seeing this in new graphics APIs: mobile-oriented OpenGL ES is…

0

Reaction Diffusion using WriteableBitmap

For a while, I’ve been experimenting with reaction diffusion to provide for more “life like” surfaces. This reaction diffusion algorithm spreads colors out for a diffuse effect. To ensure responsiveness in the UI, the diffusion logic is run in a timer thread that notifies the UI thread to re-do the WriteableBitmap (texture) when it is…

1

Curved Polygons in WPF!

I found something on the web http://www.antigrain.com/research/bezier_interpolation/index.html about using Bezier curves to build polygons with smooth corners. Anyways, I ported this to WPF and it works very well! Basically, consider the last point (point0), current point (point1), next point (point2) and the point after that (point3), you can compute each Bezier segment as follows: public…

1

So long Jay.

As a young PhD student about 10 years ago, I started out at the University of Utah in the lab of Jay Lepreau. Jay was an enigmatic demanding systems professor who was still genuine and approachable. I’m not sure what else to day, except that I’m still kind of in shock. Jay, you will be…

0

WPF CompositionTarget.Rendering/Animation Responsiveness

Check out the following small program:     public partial class App : Window {     [STAThread]     public static void Main(string[] args) {       var win = new App();       Application app = new Application();       app.Run(win);     }     public App() {       var canvas = new Canvas() { Background = Brushes.White };…

1