Shaders For Games - Soft Launch

Miscellaneous Forums/General Discussion/Shaders For Games - Soft Launch

The official release day is Wednesday, but I'm doing a little preview launch tonight to make sure the site is working properly and that I haven't made any silly mistakes.

http://www.shadersforgames.com

It also features a new shader pack, Pack 3, which is a collection of very powerful water shaders, including beautiful water effects for Shader Models 1.0, 2.0 and 3.0.

None of the shaders can be used in Blitz3D, but they certainly all work perfectly in TrueVision3D, DarkBasic Pro, Deep Creator, and probably Irrlicht, 3Impact, Ogre and anything else which can load HLSL shaders. Just because I know someone will ask if I don't mention it.

PS: The lightbox thingy won't work if you have javascript disabled, but I can't do anything about that. Following advice from a previous occasion of discussing the site here, I've made the text slightly larger so that it's more readable at higher resolutions.

Very nice... this will come in handy one day for sure.

Your page looks good, but there's the odd link problem under Opera... for example, the DX9 link under, "Just some of the great shaders in this pack" does nothing.

Also, I'd really love to see a plain ol' list of the included shaders in a pack.

I'll check the links again. I do have Opera, so testing shouldn't be a problem.

There are lists of the contents of each pack, so I guess I'll have to make them more obvious.

Thanks for the feedback.

At the very bottom it says Copyright Websitename.com

Whoops, well spotted. Thanks.

Also, is there any way to see these in action? Still images just dont cover any detail when we're talking shaders....

You could press that button that says
To download a demonstration of this shader pack, click here.


Nice website. Very flash (literally) :)

I really like the look of the site - lots of info and stuff. It comes across as professional.

there are hardly any screen shots of the 'mixed bag'
and the ones that are there are black and white

maybe you could make some youtube videos showing the effects off.

there are hardly any screen shots of the 'mixed bag'
and the ones that are there are black and white

Click the image and then click DX9, SM 2,0 or HLSL for a pretty picture. The demo shows the shaders nicely as well.

there are hardly any screen shots of the 'mixed bag'
and the ones that are there are black and white

As TonyG already indicated, clicking on the previews opens bigger images. That should be made clearer, however, so I'll do that now.

maybe you could make some youtube videos showing the effects off.

There are realtime demos for people with shader-compatible cards, but I do plan to incorporate videos into the site soon. They're already on YouTube, so feel free to take a look. Of course, this is YouTube, so the quality isn't great. The demos are probably a better judge of quality.

http://www.youtube.com/watch?v=xN7EAJxEDEo

http://www.youtube.com/watch?v=0a1Ofa9TQDk

Also, is there any way to see these in action? Still images just dont cover any detail when we're talking shaders....

Again TonyG has indicated that the demos are there, but I'll try to make it more obvious where to get them.

For now, you can get the demos here :

www.shadersforgames.com/demos/Pack1Sample.exe

www.shadersforgames.com/demos/Pack2Sample.exe

http://www.shadersforgames.com/packs/demopack1.html

this is a nice screenshot, you should put it on the front page or something
nice site altogether

I think the money isnt in the Shaders itself, its in the words "ready to go".

Dont know how its on the TV3D or Dark Basic frontline, Ogres community is quiet poor if it comes to share materials.
Rendemonkey's Exporter has been abandoned long time ago, theres no material Editor.
Its like Ogre pro's dont like to share shader materials and hobbyists cant handle them.
A guys attempt to gather materials for puplic use failed.
If you ask for even "simple" FX like per pixel lighting or Phong you get a "Sure, Ogre can handle this, just write the Shader and create a material".
At this point the opensource spirit seems to go down the toilett:D

Including Shaders in Ogre is only a few lines to code (ogres material scripting rocks), but for most people that are a few lines too far.
Maybe that could be a nice opportunity to sell something?

If that Shader would ship with examples or as ready to go material, i would buy it.
Until then i probably dont know how to use them, and if i would, why i shouldnt take ATI's/NVidias shaders for free?

DB has a 'Shader add-on' which provides a few and makes it simpler to use. There's also a forum sticky with available shaders translated to DBPro readable format (or, at least, the instructions to do it).

I think the money isnt in the Shaders itself, its in the words "ready to go".

Unfortunately, there is no such thing as ready to go with shaders. They simply don't work that way. It's not a lack of effort or willingness on my part, it's just that I'm not prepared to make a claim that cannot honestly be made. It would be placing unnecessary limitations and restrictions on the shaders. For example, if I set it up to use a pointlight, and you want to use a directional light, it's not ready to go for you. If it loads a reflection map automatically, it's not loading the reflection map you want to use, so it's not ready to go for you.

The best anyone can hope to do with shaders is offer documentation, examples and support. With support being the most important of all. There is a forum on the site, where full support will be given to anyone trying to use these shaders in any language or engine. Email support is available too. In the documentation, each shader is documented separately with a list of the data you need to send it, what that data should be, what format it should be in, what command you are likely to need to use. It's the closes to ready to go I can get without being dishonest or misleading.

With good documentation and someone on hand to support and answer questions, using an existing shader should not be difficult in any language or engine.

Dont know how its on the TV3D or Dark Basic frontline, Ogres community is quiet poor if it comes to share materials.

They don't need "materials", this an Ogre-specific restriction, and one of the reasons I have a low opinion of Ogre. Unfortunately the kind of ignorant elitism you describe is typical of projects like Ogre ( and shaders in general, for that matter ) where everyone knows everything, but for some strange reason is incapable of telling you anything. However, in the case of shaders, it just may be that it's not an unwillingness to tell you, but rather as I have described earlier, there is no out-of-the-box ready-to-go answer.

If that Shader would ship with examples or as ready to go material, i would buy it.

The documentation is as full of explanations and examples as I can make it, but it's true that it doesn't have anything for Ogre yet. I'll look into that when time permits, but again it's quite likely that even with these material scripts, completely ready to go is not possible.

Until then i probably dont know how to use them, and if i would, why i shouldnt take ATI's/NVidias shaders for free?
Well I don't know about ATI's license, but you probably *should* take Nvidia's shaders for free, because their license is very generous. They don't have shaders which do what the shaders on SFG do though, so it's like saying "why would I buy a bottle of wine when I can drink tap water for free?" If the only effects you need are ones Nvidia supply for free, you shouldn't buy these. If you want effects like terrain splatting, holographic reflections, parallax mapping with many, many options, extremely configurable water, etc then you don't have the option of getting them from Nvidia or ATI. You either do without, get them from SFG or write them yourself.

These are looking most excellent.Thinks I will be getting myself a few of those pack once areon-x is in a more advanced stage do they all work with TV3D ?

shaders are a bit of a pain at the moment because every engine handles them slightly differently and there isn't a single standard standard way to compose your programs.

So at the moment a little coding knowledge is often needed to get them up and running.

BTW Ogre's community is very helpful with most things including shaders. I must admit that it wasn't always that way, but if you take the time to learn the basics and don't keep asking all the same questions that have been answered 1000 times before elsewhere, you usualy get the help you need.

I like Ogres community. No question unanswered so far.
Currently i dont want to touch another engine.
It will be quiet tough to learn and use Ogre via Flow and without IntelliSense.

Just went through the tutorials.
Thats all to set up the Shader in Dark Basic Pro?
I would say thats what i ment with "ready to go".

The site looks professional.
It misses a little the opportunity to tell people "JEAH BABY, cool Shaders for YOUR engine, not for EA, for YOUR....".

Personaly i would like to see Shader pictures colored, B&W is stylish but makes the site a bit too scary.
You sell a scary technology and talk about semantics and stuff, some colors wouldnt hurt.
No grey background for colored shader pictures, makes them look dull.

Hehe, i like "DO NOT POST SHADER CODE HERE! "
When that Forum is crowded, tell us when that happenedxD

49$ Indie + Forum and Support, sounds indeed tempting. Couldnt find Shader documentation yet and hope you can see it before you buy.

Any chance to get a oFusion tutorial (oFusion is free for non commercial use. Maybe a tutorial in a commercial product would break that license!)?

Any chance to get a Ogre tutorial soon?

Very nice.

Duckstab: The first two packs definitely work fine with TV3D. The third pack is from a third party, and I haven't personally tested it with TV3D, but it comes with ( very ) extensive documentation and there is nothing in there which TV can't handle, so it should be fine.

Takuan: I will take a look at Ogre, but I have to concentrate my efforts on the most popular tools, and also tools which are well-designed enough to allow good shader integration. I'm currently working on a pack specifically designed to work with 3D GameStudio, which is very intelligently designed and has a really nice integration method. If there was sufficient interest from Ogre users, I would be happy to write an Ogre-specific pack. If there's not so much interest, then I'll just have to see what I can do about some good Ogre-based documentation.

In my opinion the shaderworld is somekind of a desaster area as in practice it involves so much testing (does it look the same on cardX/Y/Z, working around (bad or not proper implemented driver support) and everything is only specific for a certain case unless you would write fallbacks for this and that.

I think the best would be having a shader-engine which produces shader code after setting up a high level material description and then the engine produces the shaders on the fly for the hardware it's running on.

First step towards this would be a shader editor which spits out the shader code.

Anyway i wish you good luck with it and i also think that support is a really important factor on this one.

I've actually found the opposite. With a shader-engine which dynamically compiles shader code for the hardware it's running on, you have less control, it's harder to test and debug, and you're limited to what the shader engine author decides you should need. When the shader-engine author decides it's time to upgrade to the new DX10 HLSL compiler ( which is now part of the DX9 SDK ) guess what? Oops, you just lost support for shader 1.1 and 1.4 because the new compiler doesn't support anything before shader model 2.

With good shaders, good documentation and good support, you can do exactly the same thing, but your way, and better. And what you say about fallbacks is a non-issue with FX shaders because they're already built so that you can have one shader support multiple shader models depending on what the hardware can support, so it's already there if you want/need it. None of the packs so far have supported it, simply because I don't want people complaining that the shader isn't as good as they were led to believe because they're running it on inferior hardware. Nevertheless, helping someone do that if they wanted to is all part of the support.

Well, the shader engine could be able allowing shaders beeing produced for different shader models and for practical reasons allowing several effects for these. It's up to this engine how powerful it would be.

Hand made stuff for sure is even more flexible but it just involves someone who knows what to do as i'm pretty sure the usual guy won't write shaders the way it's done today on his own. Would be much nicer for such a person if he could just click and drag his shaders together instead.

Takuan, the next version of Ofusion (2.0) has built in support for ShaderFX if you own that plugin. So it will create ogre materials for you via shaderFX if your an ogre user.

Here's what Ogre's Project lead had to say about .FX (see end). Which is interesting and everything, but not helpful since you cant use .FX out of the box. There is an FXogretool for converting, but it still often requires some tweaking. Same with Ofusion.

Global variables. .fx loves them. They suck.

Converting a .fx using a ton of global variables automatically is a pain in the ass without physically parsing the shader to see what's used where. Basically this is a lazy aspect of .fx script in that it doesn't require you to define what's an input to what shader - you can just lump everything as globals. Now, what did they teach you not to use when coding? Personally I hate that, and unless you're using the Dx9 .fx parser to parse both the shader and the script at the same time, it's apain to pull them apart. It's a philosophical difference between .fx and Ogre.

Basically, you appear to want something that you can just plug any random .fx into one end, and get an Ogre material out the other. That doesn't exist yet, because of little foibles like this. If you're comfortable with how .fx and shaders work it's not very hard to resolve these issues (you just have to redefine those globals as uniforms).


Well, the shader engine could be able allowing shaders beeing produced for different shader models and for practical reasons allowing several effects for these. That's up to how powerful such an engine would be.

Again, all of this is already part of FX shaders. You don't need to be limited by dynamic shader compilation to get these benefits.

. Would be much nicer for such a person if he could just click and drag his shader together instead.


Unfortunately, click-and-drag shaders are like click-and-drag web design programs. They look great until you start using them and everything breaks. Shaders just aren't plug and play, not because people don't try hard enough, but because they don't work that way. There are too many possibilities and demands to account for. If you tried, you'd have even the most basic of effects creating a huge lumbering mass of shader code which brought even an 8800GTX to a halt, and was too large and complex to run on most videocards.

It's like with all things. If it's done well then it would be a benefit. If not than it's more of a drag to use. Depends on how it's implemented and how much effort is put into it. Even if the shader editor won't spit out optimal code it depends on the case how useful the code might be or not and secondly it alone would help you to play around with a certain look.

little shaderFX vid, http://www.tysoes.com/Shaderfx.wmv
Shame its quite expensive, but decent for a variety of general purpose materials.

secondly it alone would help you to play around with a certain look.

Well I think FX Composer is probably as good as anything for that. It's free, it's drag and drop ( for things like models, textures, etc, not the underlying code. )

little shaderFX vid, www.tysoes.com/Shaderfx.wmv
Shame its quite expensive, but decent for a variety of general purpose materials.

Thanks. Remind me to pimp Irrlicht in your Flow launch thread ;)

Actually ShaderFX demonstrates my point quite nicely. It generates shaders which are long, hard to read, unoptimized, extremely limited in scope and frequently duplicate large chunks of code for no good reason. In order to make good use of the shaders it generates ( quite aside from needing $3,000 of software before you can even buy it ) you would have to be a good HLSL programmer capable of rewriting, optimizing and customizing the shaders. Hence, it's only really useful to someone who doesn't need it.

I guess if you were feeling generous, you could say that ShaderFX might be fun for prototyping effects before you coded them yourself.

FX Composer is not available for the Mac...but i know a tool which will come with a shadereditor in the future... ;O)

FX Composer is not available for the Mac

Nor are FX or even HLSL shaders.

Yep but CG/GLSL

Yep but CG/GLSL

I'm aware. I'm just thinking that if you're not even talking about the same type of shaders then you're probably comparing apples and oranges.

Why? I wasn't talking about a specific shader language. I was talking about a higher level abstraction in form of a graphical builder and dynamical generated shaders. Both have nothing to do with the languages in the first place. I hope you do not misunderstand me. I really wish you the best with your shader packs.

there is a HLSL to GLSL converter tool on sourceforge, havent had much luck with it though. They really need to come up with artist friendly shader creation tools. ShaderFX has been the most intuitive I've used so far.

If your not a coder, your pretty much stuck without spending months trying to figure them out and not be that good with them anyway.

BTW I brought up Ogre for Takuan's benefit since he said he already used the Ofusion exporter and wanted to know about getting shaders into ogre.

CG is probably the most convenient if you have both GL and D3D support in your engine since you can use the same code in either API.

I think shaders should be written in code, not tools. You will want to optimize them as much as possible, not use auto-generated code.

Problem is most people havent a clue how to write shaders, and any old shader that does the job will get your artwork looking the way you want. Can always pay someone to optimize a custom built shader when you know what you need from it.

A generated shader is better than no shader at all. Thats the way I see it, coming from a non coding background.

I may very well end up buying Gabriels shader packs, but not untill I'm sure that I can get them into my engine. The cast majority of developers seem to end up using the same shaders because they are kind of tricky to create from scratch without a lot of research, learning and practice that not a lot of people have time to do.

I think gamecode should be written in Assembler, not in Basic. You will want to optimize it as much as possible, not use auto-generated code.

You can write your shaders in assembler if you want.

@Evak
Irony?... ;O)