Jump to content

DOWNLOAD MODS

Are you looking for something shiny for your load order? We have many exclusive mods and resources you won't find anywhere else. Start your search now...

LEARN MODDING

Ready to try your hand at making your own mod creations? Visit the Enclave, the original ES/FO modding school, and learn the tricks of the trade from veteran modders...

JOIN THE ALLIANCE

Membership is free and registering unlocks image galleries, project hosting, live chat, unlimited downloads, & more...

[WIPz] Voodoo/Gem


peachykeen
 Share

Recommended Posts

As some of you may have caught, I haven't been exactly pleased with the development of MGE lately. The details are rather technical, but it's been getting to the point where I can hardly use it. Considering most of my releases are shaders, that doesn't work so well. A while back I undertook creating a similar system for Neverwinter Nights; that project went quite well and the shader framework there ended up being a good bit more powerful and flexible than MGE's. After that experience and success, and thanks in part to questions from some of the folks that hang around, I decided to bring my new system back to Morrowind. I now have it working enough to post WIP threads. :bagged:

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 Morrowind, Oblivion 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/Gem?

Gem is the adapter for Morrowind. It handles the details of using Voodoo shaders in the game.

At the moment, Gem 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. Gem will also support advanced materials (shaders applied to objects in-game, providing current generation rendering effects).

What features does/will Gem have?

Voodoo and Gem 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.

Gem will provide a distant land system comparable to MGE’s. If possible, they will use identical files (to make transitioning between the systems easier).

Gem will not break Morrowind’s water shaders and will allow players to keep using them, although it will provide optional enhanced water effects of its own.

Thanks to a few tips from Hrnchamd, Gem will support shadows from distant land and, if all goes well, near objects as well.

Gem will be integrated with MWSE, v0.9.4a or better, to provide script access to the shaders, land, water and other effects. Script commands will, if at all possible, be byte-by-byte identical to MGE’s MWSE commands, so that scripts won’t have to be recompiled. Additional script commands, to handle material shaders, dynamic parameters and textures and other Gem-specific features, will be added.

What’s the difference between MGE and Voodoo/Gem?

MGE was designed as a Morrowind-specific shader system, and has been developed over the course of several years by a number of developers (myself included). While an excellent and innovative project, the code has suffered over time, as most does.

Gem is intended as a faster, more stable and cleaner re-imagining of the MGE concept.

Without MGE, I wouldn’t be involved in this and Voodoo would not exist. It certainly deserves a tip of the hat. :foodndrink:

Voodoo/Gem is faster than MGE. It will be more configurable, and turning a feature off will actually mean it gets turned off and has no FPS hit (something not guaranteed in recent MGE builds).

Gem provides a powerful shader system, taking advantage of the full syntax of the Cg language. MGE uses a subset of the HLSL language (there is no practical difference between Cg and HLSL, except that HLSL is DirectX-specific). Gem does not make use of archaic magic names, like MGE’s “texture thisframe;†and similar; instead it uses proper annotations to allow shaders to reference textures as needed. This allows shaders to access not only Gem’s textures, but to use game-loaded texture or create their own.

Gem will use a two-target rendering system to provide depth information to shaders (the color and depth buffers will be drawn simultaneously by a single shader). MGE caches renders and redraws them, causing a significant speed hit and memory increase. On systems not capable of using multiple render-targets (very old cards), Gem will fall back to a two-pass render method.

Gem 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.

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.

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

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

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 Morrowind. Testing pretty much consists of downloading the latest files, running Morrowind and telling me if anything goes horribly wrong. :lmao:

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 MGE shader forum into a larger forum, both will be used to support Voodoo.

There may be some issues with the Steam releases of Morrowind, I’m unable to test those myself but will be trying to get in touch with the folks at Steam to see what I can find out about their setup.

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.

  • Upvote 1
Link to comment
Share on other sites

Peachy I`m running a laptop with intel p8400 CPU,4GBs Ram,Nvidia GeForce 9800M GS @512MB.My OS is vista Home Premium in 64-bit.It runs the games very nicely. If ya want,I`d be interested in testing, thereby exposing myself to this aspect and learning about it.This sounds very good and I`m hoping all goes well.

Link to comment
Share on other sites

Well, since I'm looking for testers, absolutely. ;) I have a semi-working MW demo and was talking with shadeMe last night about working with OBGE, so I hope to have some testable copies out here soon. The holidays will be a delay, of course, but I wanted to announce before then.

Once everything is working, there will be quite a bit in the way of shaders to play with, and anything made for one game will work with the others as well. :o

  • Upvote 1
Link to comment
Share on other sites

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.
Note: Your post will require moderator approval before it will be visible.

Guest
Reply to this topic...

×   Pasted as rich text.   Paste as plain text instead

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.

 Share

×
×
  • Create New...