http://www.voodooshader.com
Comprehensive graphics framework for adding and extending shaders during development or after release.
If you're interested in more details about Voodoo, please keep reading (or skip to the bottom for links). Anyone with suggestions is encouraged to post. Anyone willing to help test, artists interested in what Voodoo can do for mods, or programmers curious about contributing code, please check the bottom of the post.
Intro:
After working a bit on the Morrowind Graphics Extender, porting a few shaders to the Oblivion one, and then writing an extended equivalent for Neverwinter Nights, I got tired of the constant porting and tweaking and incompatible bits. So, after a few requests for graphics extenders for other games (the basics are quite boring), I decided to put together a system capable of handling almost any game. After much trial and some error and many suggestions, the current system was born. The framework has been under development for some time, with a wide variety of outside influence keeping it sane and stable (primarily from friends and coworkers who have experience with similar projects), and the core elements are complete and tested.
What is the Voodoo Shader Framework?
The Voodoo Shader Framework is a large chunk of code to make graphics mods easier.
Instead of redundant and conflicting systems for each game, it uses a single universal core and plugins to fine-tune support for each game. The core handles loading config files and shaders, so one shader will work in any game with a Voodoo plugin.
In addition, a lot of maintenance and upkeep tasks are handled through Voodoo. Tools to help work with game resources, images, and even downloading updates to plugins are all provided. None of them are required, but they are there to make life easier.
What can Voodoo do for me?
It can improve the graphics of your old games and help you tweak the new ones.
For games that already have graphics extenders, it can often provide more features or better performance. With the configuration and update tools, Voodoo is a complete system, not just a few DLLs and some text files.
Perhaps more importantly, Voodoo provides consistency. You get the same tools, the same system, and the same effects across different games. You can set up your favorite look, and then just add on a few tweaks that each game needs.
A few shots of the basic functionality across a few games:
https://www.voodooshader.com/screenshots/morrowind-1.jpg
https://www.voodooshader.com/screenshots/oblivion-1.jpg
https://www.voodooshader.com/screenshots/skyrim-1.jpg
https://www.voodooshader.com/screenshots/fallout3-1.jpg
https://www.voodooshader.com/screenshots/nwn2-1.jpg
https://www.voodooshader.com/screenshots/gothic3-1.jpg
Same code, same shader, different plugins and settings.
How does Voodoo work?
A lot like other graphics mods, but less one big blob.
The main chunks are the core and the plugins. The core doesn't vary between games; it provides the basic shader loading, texture handling, and other important basics like logging and plugin loading. The plugins do the detail work, tying the core into the game. Plugins handle drawing your effects at the right time to get them under the menus, and can even provide improved water or other effects. All Voodoo plugins must provide a minimum set of features, to ensure compatibility across the system, but are free to do more for their game.
Each game plugin has a title related to the game name, plot, or something clever someone came up with. For Morrowind, its Gem, Oblivion is Sigil, Fallout 3 is Raven, Neverwinter Nights is Frost, and Neverwinter Nights 2 is Shard. The working title for Skyrim is currently Storm, but this isn't definite yet.
Voodoo provides two methods of loading into games. One is a Fraps-like GUI which is left running and loads into games as they start up. The alternative is a drop-in DLL, which some of the older graphics mods use. Both are provided and tested, so it's a matter of preference.
The Voodoo GUI also provides a simple method to download updates to the framework, or new plugins. This is all handled over a secure connection to the main Voodoo server, by simply downloading lists of available plugins (no personal data is uploaded). For those wanting to do it manually, downloads links will also be made available for new releases.
When/Where can I get Voodoo?
The framework isn't quite done yet, but I am looking for folks able to help test. Previous testing has gone great, and the latest upgrades are almost ready. The Skyrim module is partially complete, sharing a lot of basic code with Oblivion and other DX9 games. Testing will be done semi-closed at first, with a small group verify that things work before the public testing release.
I will be keeping this thread, and the others for other games, up-to-date with progress as it comes. Release announcements will be posted as necessary.
For the time being, anyone interested in any way is encouraged to get in touch. Post, PM, email, chat, whatever. This thread is open for suggestions, comments, and requests. I have a simple https://github.com/peachykeen/VoodooShader/issues, set up for everything, on the https://github.com/peachykeen/VoodooShader. If you just want to drop by an suggest something, Voodoo stuff is often discussed in the #voodoo (and hijacked #morrowind) channels on the Chatspike IRC network. You can also send over a PM or email.
A https://github.com/peachykeen/VoodooShader/wiki/FAQ is located on the project wiki, with hopefully a decent variety of answers. Any unanswered questions, please post or send them in.
If you are an artist interested in what Voodoo can do for your work, please get in touch. There's quite a bit of variety, primarily the material shader system. It is designed to attach shaders to textures, providing effects beyond what the game itself would.
For any programmers curious about Voodoo, you can see the framework documentation here and all source code is available at https://github.com/peachykeen/VoodooShader. Voodoo is completely open-source under the Lesser GPL, providing plugin authors the freedom to use whatever license they feel comfortable with. It is also designed to be widely compatible with other programming languages beyond the native C++.
For those curious as to the history, some simple graphics are automatically generated from the code on https://www.ohloh.net/p/voodooshader. They don't give much detail, but progress has been steady for a while now and growing slowly as I add modules and work on the design.
Again, questions or comments or contributions of any kind, please post or get in touch. I will be following and updating this thread as I can.
Cheers, peachykeen
Edit Jan 7 2011:
After a few ridiculously complicated bugs (which is what I've taken to calling typos) and a New Year's that I don't fully recollect (hopefully everyone else had good holidays), testing can finally commence!
To begin with, I redid the website a bit with more info on what Voodoo Shader is and some shots of it in action: https://www.voodooshader.com
Currently supported games include Morrowind, Oblivion, Skyrim, Fallout 3, Fallout: New Vegas, Neverwinter Nights 2 and Gothic 3. Testing can be done in any of these, but make sure to note which one you were using.
In a joint test of the (already mostly tested) UI/package manager and Voodoo framework, there are three steps to the process. First, verify you have .Net 2.0 and MSVCR10 installed (links provided). Second, download Voodoo itself. Third, run a game. Detailed instructions are provided.
Testing Instructions: https://github.com/peachykeen/VoodooShader/wiki/Voodoo-Test-Instructions
Please follow these as closely as possible. If you have any questions, comments, or really anything, let me know. That can be done by post, PM, email or on IRC (chatspike.net, #voodoo or #elderscrolls, say my name or voodoo to highlight me).
There are a few issues still hanging around, I'm sure. One known bug, which seems to effect only Morrowind and Oblivion, is a crash-on-exit. This is because of the game not shutting down D3D, which causes some confusion when destroying resources. If you run into any others, let me know.
And before anyone asks, the included shader is intended to be obvious for testing purposes; you just can't miss it.