What is Voodoo?
The Voodoo Shader Framework is a system designed to add special effects and enhanced graphics to a variety of games. It improves the look, and sometimes speed, of old and new games. The goal of Voodoo is to provide a unified, uniform and consistent target for adding shaders to almost any game.
At this time, Voodoo has been internally tested in Oblivion, Morrowind and Neverwinter Nights 2. Screenshots from each can be found toward the end of this post.
The entire Voodoo project, including all game adapters, is open-source. If any programmers or shader artists have questions or comments as to the specifics, please get in touch with me.
What is Voodoo/Sigil?
Sigil is the adapter for Oblivion. It handles the details of using Voodoo shaders in the game.
At the moment, Sigil is set up to use a single shader for testing purposes. Once I’ve made sure everything works properly, a user-configurable list will be used. Sigil will also support advanced materials (shaders applied to objects in-game, providing current generation rendering effects).
Sigil will work with or replace Oblivion’s internal shaders, at the user’s option.
What features does/will Sigil have?
Voodoo and Sigil provide a comprehensive system for postprocessing and material shaders, including automatic parameter and texture linking and shader render-to-texture features. In simpler terms, that means fullscreen and per-object effects are possible, as well as shaders using or creating textures used in-game.
Sigil will not break Oblivion’s water or postprocessing shaders, although it will provide its own versions of these effects. Additional effects, such as SSAO and depth of field, will also be made available.
Sigil will be integrated with OBSE to provide script access to shaders and effects. Parameters and textures can be changed ingame, as well as enabling and disabling shaders.
Sigil uses a shader system spanning multiple games, and even graphics APIs (Voodoo works with both DirectX and OpenGL). A single target is provided to developers and artists; this means any shader written for Voodoo/Gem will function in all Voodoo-supported games. Having more games supports means a bit more work, but it also means more people testing the system and writing shaders for it. There’s no reason for MGE, OBGE and NWShader to all use different systems for the same thing (the Voodoo project was born from the fact that I was fed up with the little incompatibilities).
Voodoo also opens a new family of effects, using the shader-based render-to-texture system. Shaders can create or modify game textures on the fly, making overlays or reactive environments a very real possibility. I’ve only started playing with some of these effects, but they allow for such things as dynamic raindrops on the screen, world textures reacting to the player or scripts, or even letting the player paint a picture ingame.
What’s the difference between Sigil and OBGE?
Sigil uses the Voodoo Shader Framework, a system designed to make shaders accessible and constant between games. Voodoo shaders written for Morrowind, NWN2 or any other supported game will function in Sigil as well. This opens a lot more developers, artists and testers.
I have been trying to get in touch with the OBGE developers, in order to work with them if at all possible. I’d much rather cooperate with them somehow rather than rewrite everything they’ve done, or worse yet create a competing project. So far, I haven’t been able to contact them, and have been doing some test work on my own. I will continue trying for some time, and if any OBGE devs see this thread, please toss me a PM.
Depending on whether I do talk to the OBGE devs and what comes out of that, some of these details may change. In the event that I can’t reach them, I’ll be continuing work on Voodoo/Sigil as planned.
Screenshots
Most of these are little things so far, just test shaders and patterns to demonstrate the system works. As I get more code together and things more complete, fancier screens will be available.
Oblivion:
http://i4.photobucket.com/albums/y145/peachykeen000/Voodoo/ScreenShot8.jpg
http://i4.photobucket.com/albums/y145/peachykeen000/Voodoo/ScreenShot15.jpg
http://i4.photobucket.com/albums/y145/peachykeen000/Voodoo/ScreenShot16.jpg
Morrowind:
A delayed picture-in-picture with a color shift:
http://i4.photobucket.com/albums/y145/peachykeen000/Voodoo/Voodoo_GEM_16.png
http://i4.photobucket.com/albums/y145/peachykeen000/Voodoo/Voodoo_GEM_15.png
Fullscreen:
http://i4.photobucket.com/albums/y145/peachykeen000/Voodoo/CopyofGEM_2.png
Neverwinter Nights 2:
http://i4.photobucket.com/albums/y145/peachykeen000/Voodoo/nwn2.jpg
(the NWN module isn't ready yet, as it takes a bit more infrastructure)
How can you help?
At this point, I need people willing to help test. You should have a semi-functioning computer and Oblivion (the latest patch is preferred). Testing pretty much consists of downloading the latest files, running Oblivion and telling me if anything goes horribly wrong.
Having a variety of systems to test on is important for stability. Everything from Windows 2000 to 64-bit editions of 7 can help make sure there are no nasty little bugs in Voodoo.
I am setting up a bug-tracker and merging my shader forum into a larger forum, both will be used to support Voodoo.
If you are a code or shader developer with any interest in contributing, or just questions, please get in touch.
If you don’t fall into any of the above, cheering on, suggestions, comments and general encouragement are also welcome.