Meteor Engine will soon be available for download

So the Meteor graphics engine I was working on a few months ago is back in progress, it’s still around! Although I want to keep busy on making Bubble Tower, I also want to continue the XNA project I have put most of my time into. But this time, I am making the source code public!  I finally decided it’s progressed far enough so that I can share it with everyone, and hope to have it up within a day or two. The engine is far from done, but I have the core concepts already planned and it’s at least functional and stable to some degree.

Meteor Engine was born out of the need to separate rendering steps. It all started when working on Catalin Zima’s tutorial on deferred rendering and porting the code myself to XNA 4.0. (This was before I knew there already was an existing XNA 4.0 port) As I added more features to it, the Deferred Renderer class got a bit too long for my liking so I decided to break it into several steps. I had to figure out how to take the output of each step and introduce it into the next one, and also combining results from multiple steps as input. Eventually I streamlined the approach with using several classes that are self-contained render passes, each with their own shaders, and moved the scene organizing code into its own class.

Although Meteor comes with built-in render passes, you can extend and create your own. Here are some of the rendering features that Meteor Engine uses in its samples.

Deferred and Light Pre-Pass Lighting

Gamma Correction

Post-Processing Effects

The engine is capable of supporting multiple render profiles, so you can have a dual or multiple approach with drawing objects onto the screen with different effects. Each render profile can render one scene at a time, and the current one renders the the scene it is assigned to. For now, the engine can use only one render profile at a time, which can be switched on the fly. But in the future I hope to support the rendering of scenes using several profiles, making the use of multiple materials much easier.

Meteor Engine will be hosted on CodePlex, as soon as I get rid of the extra old files that I won’t use in part of the project. It is able to be used by compiling from source or linked as a library.

8 thoughts on “Meteor Engine will soon be available for download

  1. Looking forward to it. I just found your blog today and I have to say I am very impressed with what you have achieved.

    • Thanks. Right now I’ve fallen behind at working out some kinks to make the code more readable. But I’m gonna have to upload the code soon because I only have 30 days since opening the project page to make it public.

      • Have you ever thought about writing an editor for the engine? Because I find that pretty difficult in XNA. There is this wonderful Gizmo component here: http://xnagizmo.codeplex.com/ But how would you deal with all the UI stuff? If one would strictly follow the XNA WinForms sample loading content would be quite a hassle. There is also the possibility of using a hack that involves a completely new Game class for the rendering and content loading. This enables easy content loading, but basically everything needs to be wrapped around the Game loop and it is hack. One could also use some XNA GUI system to build an editor. Have you ever thought of this and if which option would you prefer?

        Thanks in advance.

  2. Neil: Yeah, it’s in Codeplex. I somewhat have the hang of Mercurial (I’m used to SVN command line) but I will have to just publish the code as-is because I can’t think of any good documentation to write yet.

Leave a reply to Neil_Knight Cancel reply