[WIPz] Voodoo/Sigil

Post » Wed Sep 01, 2010 5:26 pm

I've been working on this little project for a few weeks now, and have enough of a start that I feel comfortable posting WIP threads around. The basic idea stemmed from my frustration with shaders not working in OBGE, MGE and NWShader, and a few folks requesting a universal shader system for any game. It took a little while to come up with a workable concept, but once I broke ground on it, things have been coming along nicely. :)

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. :P

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.
User avatar
Silencio
 
Posts: 3442
Joined: Sun Mar 18, 2007 11:30 pm

Post » Wed Sep 01, 2010 3:17 pm

Whoops! I totally forgot about your PM :facepalm: Will get right to it!
User avatar
des lynam
 
Posts: 3444
Joined: Thu Jul 19, 2007 4:07 pm

Post » Thu Sep 02, 2010 1:22 am

Whoops! I totally forgot about your PM :facepalm: Will get right to it!


Heh, no worries, I have the same problem. ;) I'd like to talk to you folks and see if we can work something out; I'd hate to be stepping on toes or recreating the wheel just to get shaders working in more than one game. :)
User avatar
Timara White
 
Posts: 3464
Joined: Mon Aug 27, 2007 7:39 am

Post » Wed Sep 01, 2010 5:57 pm

Heh, no worries, I have the same problem. ;) I'd like to talk to you folks and see if we can work something out; I'd hate to be stepping on toes or recreating the wheel just to get shaders working in more than one game. :)
PM sent, as promised!
User avatar
Verity Hurding
 
Posts: 3455
Joined: Sat Jul 22, 2006 1:29 pm

Post » Wed Sep 01, 2010 9:43 pm

Interesting project, looking forward to seeing what you and hopefully the OBGE team come up with.
User avatar
Alexandra Ryan
 
Posts: 3438
Joined: Mon Jul 31, 2006 9:01 am

Post » Wed Sep 01, 2010 11:37 pm

I'd be willing to do some testing for you.
User avatar
Undisclosed Desires
 
Posts: 3388
Joined: Fri Mar 02, 2007 4:10 pm

Post » Wed Sep 01, 2010 6:59 pm

So would I.

I've got a heck of a lot of mods working together just fine, fwiw. And have been known to experiment *a lot* with OBGE, and even ENBSeries. Not that I'm a modder at all, mind you. But the interest is there! :)
User avatar
Kirsty Wood
 
Posts: 3461
Joined: Tue Aug 15, 2006 10:41 am

Post » Wed Sep 01, 2010 11:26 am

I've been setting up some test stuff and a few PMs have gone back and forth between shadeMe and I. As soon as we can figure out something there, I'll update this thread with how things will be setup. I've also been doing some testing on the various adapters and have gotten the exact same shader working in a few different games, so that part is working great at the moment. Just have to sort things out with OBGE and we can get started with testing. :)
User avatar
Arrogant SId
 
Posts: 3366
Joined: Sat May 19, 2007 11:39 am


Return to IV - Oblivion