Is there any such software kicking around? I took a look at RenderMonkey, but there's no proper documentation on using the program. There's one or two tutorials that don't explain what you are actually doing (just ctrl+c ctrl+v boilerplate), and they don't go outside the scope of just rendering a specific 3D object.
Been working on porting a relatively large post processing shader made for Skyrim's ENB framework, to the older one used in Oblivion, and a huge difference is that the latter doesn't have real-time shader editing unlike Skyrim. Made a change to the post processing shader? Got to shut down and relaunch the game.
And it's a huge pain in the arse, as there are just shy of 50 different variables that all need changed. It doesn't help that they aren't documented in the original shader, so I have to eye-ball the changes they make to know how I need to change the other variables in tandem.
The developer of the framework is pretty burnt out, and doesn't want to do a load of work backporting features for just one guy, which is fair enough, so I need to find some other way to fix up the HLSL code.
An example of what I'm looking for, would be something that let's me load up a screenshot, and then allows me to tack on the shader code, with variables that I can edit in realtime to visualize how they affect the image.
Here's the shader, if it's of any interest:
https://pastebin.com/1qdLSgi8
Replies
There has to be a free alternative kicking about, or even just proper tutorials for RenderMonkey.
Shadron looks cool, but also a bit overkill for what you're trying to do.
I've also been trying out Hexler, but have not been enjoying it that much - but it's very useful to try out quick things: https://hexler.net/software/kodelife
Something I haven't looked into yet, but heard good things about: http://www.geeks3d.com/geexlab/
It uses CG syntax but CG is very similar to HLSL thanks to the fact that Nvidia made it while working on HLSL with Microsoft. Should be very easy to port a few functions and the only problem there is swapping out Unity's uniform/parameters when you port it into Oblivion (that said you would have to do some minor tweaking there anyway).
Also Nvidia FX Composer 2 is still available, it's just not actively developed.
+1 for Shadron though. I haven't used it yet but I've looked over the language and features of it a week ago and almost purchased it right there. I'll probably buy it when I get some time to pick up shader programming again.
Finally; Marmoset Toolbag 3 has support for custom shaders. Haven't taken a look to see if they're hot reloadable yet. It costs a lot, but I believe it has a free trial, and it's a piece of software that's pretty much in every Polycounter's toolbox.
Installing Unity just to run some HLSL code on a screenshot sounds pretty overkill, but if that's what it takes, I guess I'll have to do that. I'd rather just use one of these dinky programs instead though.
Does anybody have any experience with RenderMonkey/FXComposer? Google just points me to a couple of useless PDFs talking about how great the programs are, rather than how to actually load a plane, slap a texture on it, and then run a post processing shader.
You can create a plane in a create menu at the top I believe. Assigning a texture is a bit different, you have to write a texture binding into your code and then compile it. FX Composer will pick this up and add this to the properties panel.
I'm used to working with CGfx so what I say here might not translate, but try the following:
1. Open FX Composer
2. Go to Create > Plane
3. Click on the Effect button in the main toolbar
4. Create a new CG/HLSL shader in this wizard
5. Choose a template, such as Blinn for a good starting example
This effect uses a texture. If you comment out the texture, sampler and text2D(sampler) reference in the blinn effect file, then save and re-compile, you'll see that your texture property dissapears.
As for post processing shaders, they're a bit more complicated to setup. I believe a post-effect is done by having your STANDARDSGLOBAL "ScriptClass" entry as a "scene" instead of object. Though I might be mistaken. Either way the idea is it's all the same thing it is just applied to the "scene" (a full screen quad) rather than the object. You can download a post process example through the FX Composer shader library, it's the second tab along in your scripting window.
Hope it helps.
There's also a tutorial on setting up a postprocess shader: https://egdev.wordpress.com/2013/06/01/postprocessing-shaders-using-fx-composer/
There also samples available inside FX Composer that can show you how to setup a scene. It's fairly straight forward adding geo (grad and drop from the side panel) and assigning materials (drag and drop onto the material) and setting techniques etc.