Well it’s certainly not much to look at. I haven’t put too much time into getting things pretty yet but I have ported a bunch of game engine concepts from rampart already. I’ve got a simple scene system with multiple vertex/pixel shader support and runtime switching between shaders. An animation system is hooked up to the avatar with event callbacks. Multiplayer support with actions wired into avatar. Debug mode with flying camera and ability to control scene rendering parameters (pictured wireframe mode). Oh and sound effect events.

The shader in the screenshot is the simple ffshader.fx that is shown as an example in the XNA docs. I have another shader that I put together off the template in NVIDIA’s FX Composer. You can toggle between the two and there is a dynamic effect binding system that binds scene/object parameters automatically for the selected effect.

And yes the rainbow terrain mesh is super fruity!

The XNA docs overall are very good but they don’t go very deep. I had to dig a bit deeper to discover how to handle the effect files more generic than in the examples which simply loaded a vertex shader function.

Essentially what I have is an scene effect object per .fx file. They derive from an abstract class with the following members:

OnEffectLoaded() – called after the effect is loaded to get handles to the various parameters.

BindSceneParameters() – called once per scene render to bind global scene parameters.

BindSceneObjectParameters() – called once per scene object to bind local object parameters.

This is handy for switching effects on the fly.

I’ll post some more XNA shader stuff later.