Home Technical Talk

Realtime post-processing HLSL shader editor?

polycounter lvl 10
Offline / Send Message
FiftyTifty polycounter lvl 10
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

  • radiancef0rge
    Options
    Offline / Send Message
    radiancef0rge ngon master
    recently heard about shadron 
  • FiftyTifty
    Options
    Offline / Send Message
    FiftyTifty polycounter lvl 10
    recently heard about shadron 
    Shadron looks like it fits the bill, but it's £20 without a free trial. Kind of a deal breaker there; not going to pay for software if I can't give it a test drive.

    There has to be a free alternative kicking about, or even just proper tutorials for RenderMonkey.
  • fmnoor
    Options
    Offline / Send Message
    fmnoor polycounter lvl 17
    RenderMonkey is fairly simple to use, although it's a bit weird when you have to add global variables. I ended up moving to FX Composer since it's more straightforward when it comes to setting up your shaders and passes : https://developer.nvidia.com/fx-composer

    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/

  • Axi5
    Options
    Offline / Send Message
    Axi5 interpolator
    You could also just try Unity?

    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.
  • FiftyTifty
    Options
    Offline / Send Message
    FiftyTifty polycounter lvl 10
    I downloaded FX Composer, and it's in the same state as RenderMonkey; an intuitive interface with no proper documentation and tutorials.

    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.
  • Axi5
    Options
    Offline / Send Message
    Axi5 interpolator
    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.
    Minor experience in FX Composer.

    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.
  • poopipe
    Options
    Offline / Send Message
    poopipe grand marshal polycounter
    Iirc it's relatively straightforward to make them for max.  
  • fmnoor
    Options
    Offline / Send Message
    fmnoor polycounter lvl 17
    There is a good tutorial for FX Composer on the page that links to the download: https://developer.nvidia.com/sites/default/files/akamai/gamedev/docs/FX_Composer_Quick_Tutorial.pdf

    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.

Sign In or Register to comment.