Shaders, shaders, shaders ...
by shinali
I've got the effects system in place, and have it almost exactly like Microsoft's implementation so far. There are somethings that I haven't implemented fully (like some of the SetValue functions that I'm not using at this moment, and matricies), but I will once I get to my goal of getting Bastion running under MonoXNA. Some shaders take advantage of sampler registers rather than using a textur...
I've got the effects system in place, and have it almost exactly like Microsoft's implementation so far. There are somethings that I haven't implemented fully (like some of the SetValue functions that I'm not using at this moment, and matricies), but I will once I get to my goal of getting Bastion running under MonoXNA.
Some shaders take advantage of sampler registers rather than using a texture parameter, so it's something I have to work into MonoXNA or just have Bastion pass in a texture parameter. For now, I'm converting all of Bastion's shaders to GLSL (under my file spec) and testing them individually. So far I got three shaders working, and about to finish a fourth and test the bloom post process the game uses. I'd post screenshots but they wouldn't be anything special, just stuff from my own test program.
Even though this has been a lot of work, it's been interesting so far as I'm learning about OpenGL and DirectX as I go along. Figuring out XNB's compression format (although not entirely of my own doing, props to Stuart Caie for lzxd.c) was a challenge in of itself, but it got my code into both MonoXNA and MonoGame and I'm pretty happy about that. I'm probably one of the more active developers of MonoXNA now, too. I really want to convert DirectX fx files on-the-fly to GLSL compatible code but it'd be a huge time sink, even with projects like MojoShader and hlsl2glslfork.