Перейти к содержимому

Фотография

Voodoo/Shard (NWN2 shader addon)


  • Пожалуйста, авторизуйтесь, чтобы ответить
17 ответов в этой теме

#1
pkpeachykeen

pkpeachykeen
  • Members
  • 77 сообщений
tl;dr: The Voodoo Shader Framework is a graphics extender that works with multiple games, allowing the same shaders to run on all of them. It's capable of post-processing (fullscreen, things like bloom and SSAO) and materials (shaders attached to a texture). The difference from other shader mods is plugins (Voodoo uses them to support games and can load extra ones, like script extenders), wider support (not just one game, same shaders work in any game with a plugin) and faster (for simple stuff, most testers report no FPS hit). Fast, simple, free, open-source, well-documented and incredibly flexible. Wiki, code, and other info at:

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:
Morrowind
Oblivion
Skyrim
Fallout 3
Neverwinter Nights 2
Gothic 3
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, Skyrim is Storm, Fallout 3 is Raven, Neverwinter Nights is Frost, and Neverwinter Nights 2 is Shard.

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 NWN2 module is partially complete, sharing a lot of basic code with 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 issue tracker, set up for everything, on the project site. 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.

more extensive FAQ page 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 the Github repository. 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 the Ohloh project page. 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! Posted Image

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/p...st-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. Posted Image

Сообщение изменено: pkpeachykeen, 07 Январь 2012 - 09:22 .


#2
kevL

kevL
  • Members
  • 4 052 сообщений
YEAH!!

( don't have a clue what shaders are )

but I'm all for it

are they like, super-advanced anti-aliasing? That's what it looks like in the SSs ..

#3
MasterChanger

MasterChanger
  • Members
  • 686 сообщений
What kind of impact would this make on video cards and performance? If, for example, this would be mostly for those cards that can run shadows on max, it's going to be relevant to fewer people.

#4
kamal_

kamal_
  • Members
  • 5 235 сообщений

kevL wrote...

YEAH!!
( don't have a clue what shaders are )
but I'm all for it
are they like, super-advanced anti-aliasing? That's what it looks like in the SSs ..

short answer: Things will look better, especially with regard to lighting and water.
bit longer answer: Shaders allow you to apply various effects, you could play the OC and apply a shader to make it look like a noir film. Redone shaders change how the game renders.
top: no shader, bottom: shaders
http://www.unifycomm...Skinshaders.jpg

#5
kevL

kevL
  • Members
  • 4 052 сообщений
tks kamal_

the phrase 'photorealistic' seems apt



now, if we could get a clue re. MC's queried performance hit .. maybe we'll break out the weiners & marshmellows, eh?

#6
pkpeachykeen

pkpeachykeen
  • Members
  • 77 сообщений
In regards to performance, it really depends a lot on your video card and your settings. Shaders do take more work, but NWN2 already uses a few (some of which can be cleaned up and optimized, or just removed).



With one or two basic shaders running, you'll see no FPS hit on most machines. In the above shots I was testing a very simple shader, but on pretty bad hardware (Radeon HD 2400 Pro, AGP), and didn't see any change. Newer machine will give better performance, as will simpler effects.



There are some really complex effects (physically accurate focus and bloom) that will chop off a good 20 FPS each, but you're usually looking at 0-2 for a fullscreen effect and no measurable hit for an object effect.



As for what shaders are and what they can do, kamal was pretty much on the money. They control how things show up on-screen, so the usual current-gen effects are possible (bloom, HDR, depth of field, SSAO, motion blur, noir film, black and white). I was running a shader that inverted dark parts of the screen for those shots, but you can do a lot more. Metallic effects, weapons that glow dark or even randomly change shape, trees that change color and drop their leaves based on scripts, snow that builds up over scripted winters... there are a few little things.

#7
kevL

kevL
  • Members
  • 4 052 сообщений
( summoning my most demonic posture )

NEAT!



*pending authentic seal of approval

#8
c i p h e r

c i p h e r
  • Members
  • 261 сообщений
Out of curiosity, how is this applied to the game? How do you actually *use* it?

#9
pkpeachykeen

pkpeachykeen
  • Members
  • 77 сообщений
It comes in two parts. There's the game-independent core, that handles loading the shaders and goes somewhere on your comp. Then the NWN2-specific part, that adds a few files to the core folder and a DLL into your NWN2 directory. After that, Windows and the game handle loading my stuff, then it runs automatically. I'm setting up a way to configure it, so you can pick what shaders to run and such, but it's mostly just a drag-n-drop into the game folder thing. To get rid of it, take out the hook DLL.

#10
kevL

kevL
  • Members
  • 4 052 сообщений
sounds simple enough,

any idea on a release date?



How you makin' out with it?

#11
pkpeachykeen

pkpeachykeen
  • Members
  • 77 сообщений
Release date will be a while until it's completely done. At the moment, I've had a few folks test some of the modules and am sorting out a 64-bit registry bug, when that's done I'll get the NWN2/Shard test out and we can see what happens.



Time until a functional version depends on the results of that test, but I have all/most of the code done for fullscreen shaders and simple stuff.

#12
pkpeachykeen

pkpeachykeen
  • Members
  • 77 сообщений
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! Posted Image

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/p...st-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. Posted Image

Thanks in advance to everyone who tests. Hope to hear back soon. Posted Image

Сообщение изменено: pkpeachykeen, 07 Январь 2012 - 09:23 .


#13
henesua

henesua
  • Members
  • 3 853 сообщений
Is NWN 1 still one of the future targets of Voodoo?

#14
pkpeachykeen

pkpeachykeen
  • Members
  • 77 сообщений
Absolutely. The OpenGL side is a little bit more involved to set up than Direct3D, but I'm reusing a lot of NWShader code and it's about 75% done. The project was born from some of the work done on NWS and will be providing many of the same features (and more) to a larger library of games.

#15
OldTimeRadio

OldTimeRadio
  • Members
  • 1 400 сообщений
Thanks for continuing to support NWN 1 with this project!

#16
Frith5

Frith5
  • Members
  • 379 сообщений
/|\\


What he said. Thanks from the NWN 1 crowd!

Сообщение изменено: Frith5, 11 Январь 2012 - 12:22 .


#17
NWN DM

NWN DM
  • Members
  • 1 126 сообщений
Yeah, as someone who enjoys both, its nice to see NWN not getting left in the dust - some positive community spirit!

#18
henesua

henesua
  • Members
  • 3 853 сообщений
I've recently discovered that NWShader responds to scripting. Is the same possible with this project? I can see much potential in turning post processing effects on or off in different environments.