Hmmm, it seems I've been neglecting my blog (actually, I forgot I even had it). I got a traffic report a few days ago and it seems that even after 1 1/2 years, people still come here for some reason or another. The work I've done so far on the rendering engine is too much to list here right now. It's currently being used in The Andersen Project and will be soon featured at the Den as a Video Bar server.
I've also decided to go with ShatterStar Composer for the name of the main IDE. I completely ditched Delphi in favor of C# for the UI (Borland just left everyone high and dry). There's no cut in speed because the rendering engine is written 100% C++, plus it's a COM object so I can use it pretty much any language I want. Long story short... screen shots!





Tuesday, December 05, 2006
Sunday, April 17, 2005
Height Field
I know, I know. I wasn't supposed to make anymore plugins, but I was going to have to get around to this one sooner or later.![]()
What this does is takes a frame of video and converts it to D3DFMT_A32B32G32R32F. This is a must because PS3 vertex shaders can only do texture lookups on 32 bit floating point textures. Getting a D3DFMT_R8G8B8A8 texture to a D3DFMT_A32B32G32R32F texture is a bitch because you can't just do a stretchrect for color conversions, it has to be done via a pixel shader. The luminance of the video frame is then used to deform the mesh. Most everyone uses this for water simulations but it can do a lot more. For example, a Height Field plugin combined with a Sobel Outline plugin creates a startling version of the sketchy animation seen in Aha's 80's video "Take on Me". This screen shot, from Mathiew Bourne's Swan Lake, shows the before and after using the Aha effect. (can I call it that?)![]()
At any rate, I started working on this plugin as a precursor to a fluid height field solver to alow for liquid like effects in Butt Naked VM. It's a good thing I did this first because there's a lot of limitations involved in vertex texture fetching, and several tricks had to be made to get it to work.
Friday, April 01, 2005
April
Ahhhh, the weekend. And payday!
I'm putting a pause on plugin creation. (30 so far) It's easy to get carried away and neglect work on the core functions on the rendering engine. Next week I'll start work on the audio spectral analysis, oscilators (for parameter control) and the DirectShow push source filter.
For the audio spectral analysis, the user will have the option to use SSE enhanced FFT, or to let the GPU calculate the FFTs. Research has shown that GPUs currently aren't necessarily faster at DCT time decimation, but this is most likely due to AGP bandwith bottle necking. A problem not associated with PCI express.
The Push Source filter will be interesting. It will allow the output of ShatterStar to be fed directly into any FilterGraph. This will allow for streaming of video to anything Directshow supports: Video compression, file writers, network feeds, DV devices, etc. If I can manage to have it operate outside the rendering engine's address space, other applications should be able to use it as a capture source, ie feeding video directly into Vegas Video, or feeding the output back into ShatterStar as a new video source.
I'll also be working on a web page to host information about the current projects I'm working on. However, I'm not really a master at web design.
But now!!! Eye Candy!![]()
The link goes to a page that shows the 3 sources I used to create the Eyecandy video clip. I'll have the clip online as soon as I find some space.
Wednesday, March 16, 2005
Demo clip

I slapped this together real quick to demonstrate the layering of effects and volumetric lighting in the ShatterStar rendering engine. The video is comprised of 9 different layers, each with 1 to 5 pixel shaders. Once I design something that resembles a user interface, the current quality of clips will seem pretty silly. Any-who, this was rendered in real time with an 800 x 600 back buffer, sent to a miniDV camera, then re-encoded in Sony Vegas. The compression really steals alot of the ewww-ahhhh value, but eh... You'll get the idea. In the lower right of the video is a bubble containing the unprocessed video so you can compare the results.
Saturday, March 12, 2005
Vertex Shaders
I finally got vertex shaders incorporated. This opens up a whole mess of possibilities. Created a plugin based on the MrWiggle example in the nVidia SDK. It's a Sinusoidal warp effect that uses surface normals generated in the vertex shader to create a lighting effect on the waves. (eek. Say that 10 times fast)![]()
![]()
The ice cream scene has 3 layers (4 counting the pip in the upper left) Each one with a stronger wave amplitude and higher alpha than the previous. The 2 final channels also have a circular LUT fade to keep the wave effect centered and preserve the border of the frame.
The Patric Star scene has 9 layers with a butt load of effects. Sinusoidal, LUT fade, edge detect, tinting, radial blur, and chroma key. To really appreciate it it has to be seen in motion. Hopefully I'll find some place soon to host video clips.
These clips were rendered using the Intervideo DVD decoder. The nVidia DVD decoder commits suicide if you try to use it in a developer environment. (nVidia are a bunch of PRICKS). I've had nothing but trouble working with those bastards. Anyhow, enough ranting.....
Tuesday, March 08, 2005
Logic Flaw
Yup. Jack Daniels works like a charm. I knew the logic flaw would be something very stupid. Now I can finally move along to new parts of the rendering engine.
Friday, March 04, 2005
March Stuff
Oh joy. Finally got a DV cam. I'm only 5 years late for the 21st century. Best of all, I can finally start coding for firewire in/out. There's a horrible logic flaw somewhere in the my cloning functions. I've been trying to weed it out for 2 weeks, but eh, it's the weekend. I'm going to go get drunk. That always seems to help find obvious problems in my code. Or create them :)
And Now! Zim all 3D and stuff:
