Some of you may have heard of ShaderFX, the node-based real-time shader editor for 3ds Max that I've been working on together with Kees Rijnen. Well, we're finished with version 1 and it's now availalbe at
www.lumonix.net There's a demo version available that you can try out.
The really cool thing about this new plugin that we've developed is that it allows artists to create HLSL FX shaders without knowing how to program. It uses a node based interface and you wire the nodes together to create the shader you want. Go take a look! We've had a great time developing it and I hope you guys enjoy using it too!
-Ben
Replies
oh and by chance ben, did you have a hand in making shaderworks for activision? i was given a demo of the software and i couldnt help but notice some similarites.
I love node based interfaces (i use them in audio software like Reaktor, Synthedit) and max's Particle Flow.
I haven't tried it out yet, but this definitely looks extremely badass.
Its a great addition to Max. Creating complex shaders has been an integral part of my role working on 360 games and although I have been using Unreal Ed at work I found from my time on the beta that it easily compares to the tolls that I am used to. I think allot of game studios are going to be interested in Shaderfx, and this node based system is definately something artists wshould be familiar with!
Now I have a license I cant wait to finish the character I'm working on.
Perhaps this should be plugged for news on polycount??
So if i apply a skin shader to the head, that gets assigned to the body also.
Ruz, sounds like the problem you're having is related to work flow. ShaderFX is not set up to create multi-sub object materials. If you're object is using multi-sub object materials, create a temporary object (a sphere or a teapot or something) and use that while you're creating your shader. Once your shader is done, export it as an FX file. Then create a multi-sub object material, set each of the sub materials to directx 9 material type and assign each of those materials the FX shader that you exported from ShaderFX.
We intended ShaderFX to be a shader editor - for creating shaders. It's not meant to be a replacement for Max's material editor or a way to manage all of the shaders and materials in your scene. So use ShaderFX for creating your shader, then once you've got one you like, export it as an FX file and then use that FX file in your Max scene.
at least with me. max says the dds format is an invalid filetype.
how do i put max acepting dds files?
//edit
need this i think http://developer.nvidia.com/object/3dsmax_dds_plugins.html
//edit 2
well.. i instaled that 3dsmax dss plugin. but still it didnt work. still wont acept dds files. any idea?
If some of you get a 'line 87 error' when starting the plugin, make sure you have some network connection going on -not necessarily the internet, can be any fake local network, you name it-. Thanks Kees for the info!
Besides that, now I'm stuck with my shader because I used all the 8 nodes from the demo and whish to add normalmaps to the shader. BUT! I'm sure that some .FX editing can fix that, yeah!
and yes i have polybost installed.
Woud I be right in thinking that you can only see the shaders in the viewport and that you can't render them?
Kees figured out what was causing the "my model is all black!" problem and fixed it. We've uploaded a new version of the demo, so go ahead and download it again and you should be good to go.
This won't fix the issue with Max not being able to read DDS textures, though. That seems to be a Max problem and not something that we can fix.
Really nice looking shader, Pior! Can't wait to see what else you can do with this.
-Ben
1. When creating a shader that uses a normal map and simply hooking the normal map up to the normal map slot on the shader, things can get wavey if there are mirrored UVs, is there a better way to hook this up? (i'm at work right now, when I get home I'll post a screenshot of what I'm seeing)
2. It would be nice to be able to open the example shaders with more than 8 nodes and view them, so that you could at least see what you're missing out on using the educational version.
God, I'm just in love.
btw, anybody knows why the real-time update in both node editor and max viewport is that slow, with only a few nodes?
Renaud - we'll add the cancel button to our "To Do" list. Thanks for the suggestion. The update is slow because Max is slow at compiling FX shaders. Each time you make a change to the shader, Max has to recompile it - and it doesn't happen very fast. Having a faster machine helps some. This is something that we'll work on for future versions, but we're dependent on Max's compile performance to a certain extent.
Glad you guys like it!
-Ben
1. Make sure you've checked the "Normal Map" check box on the texture map node. You probably already did that, but just making sure.
2. Try checking the "Flip Green Channel" box on the texture map node. That may help - but you may have already tried that too.
3. In the settings panel, switch the shader so that it's doing vector math in world space instead of tangent space (or vis versa). After making that change you'll need to refresh the shader in order to see it take effect.
If none of those things help, I wonder if you could send me a small test case that exhibits the problem. That would help a lot.
-Ben
So none of my world space maps are showing correctly
*edit*
Working now.
Odd. I had to rebuild the shader from scratch for it to work
Okay scratch that as well.
I can't seem to get max-generated obect-space maps to look correct with these shaders
What that setting does is make it so that internally, ShaderFX is transforming all of the vectors to either tangent space or world space before using them for the lighting calculations. If the engine or Max is set up correctly, you shouldn't see any difference between these at all. That's the way it should be. However, Max has some problems with doing things in tangent space sometimes (it's a bug in Max) so I included the option to have the shader do things in world space instead if you want, because it's a work around to the issue.
I hope that helps to clear things up.
Do you guys plan on supporting world space normal maps? Max supports those natively, so I wouldn't think it'd be a huge issue.
Nearly all of the inanimate prop stuff I'm working on uses world/object space maps. Being able to view the shaders on those properly would seriously kick ass
You'll be happy to hear that I added support for local/object space normal maps to ShaderFX today (world space normal maps will also work in that mode). The new feature will be available soon along with a ton of other new features - when we announce our upcoming point release. Lots of cool stuff in the works!