Shader Wizard - CG Shader Generator NOW AVAILABLE

Shader Wizard - the CG Shader Generator!
https://www.assetstore.unity3d.com/#/content/4549

More than 300 copies sold!

NEW VERSION 2.1 IS NOW AVAILABLE! Featuring…

  • 28 NEW MultiTexturing shader functions
  • Works with 2 to 16 texture layers
  • Combine layers using Photoshop-style blend functions
  • Can composite up to 16 layers in a single shader (texture units permitting)
  • Support for ShaderModel 2 and 3 (3 is only to allow bigger shaders)
  • WebPlayer-> NEW simple demo showing MultiTexture blend modes between two textures
  • Shaders include animatable AlphaMask and AlphaFade
  • Familiar Photoshop blends such as Overlay, Soft Light, Color Dodge, Linear Burn, etc
  • All optimized for mobile performance - fastest/smallest data formats, efficient minimal shader code and no extraneous stuff you don’t need!

Stop writing shaders by hand!

If you find that creating the shaders you need is time consuming, complicated, prone to errors and hard to learn, then Shader Wizard is here to help!

At still only $20, Shader Wizard is a very easy-to-use interface that can automatically generate working shader code and materials dynamically. You won’t need to write complicated shader code ever again! Simply choose one of 33 shader functions, combine it with one of 26 blend modes, choose your culling/testing/output options, hit the Generate button and you’re done. Fully working shaders and materials will be output to your project! Over 850 unique shader outputs are supported, not including different combinations of MultiTexture layer blends!

Shader Wizard writes the code for you! :sunglasses:

New simple multi-texturing demo added:

NB: ShaderWizard currently does not support lighting/shadows/bump/displacement/cube mapping.

Who needs this?

  • Anyone who doesn’t know how to create custom shaders and doesn’t want to learn Shader Lab syntax or CG programming
  • Anyone who doesn’t like programming in CG or working with Shader Lab
  • Anyone who can’t remember all the proper syntax required for custom shaders and who have to keep referencing documentation
  • Anyone who doesn’t know how to make efficient shaders and are plagued with syntax and formatting headaches
  • Advanced developers who want a fast easy way to create templates for custom shaders
  • Developers of 2D games who need lean 2D-focussed shader output that works well on mobile and desktop
  • Developers of 3D games or GUIs/HUDs who need solid useful shaders that aren’t super advanced
  • Anyone struggling with the time-consuming, difficult learning curve of creating your own shaders
  • Anyone who feels daunted by the learning curve or complexity of visual shader editors/programming
  • Artists who want to be able to play around with lots of shader variations without doing lots of programming
  • Artists familiar with Photoshop blend modes who want to use similar blends in their projects

Major Benefits

  • Save time by generating a new shader/material in seconds
  • Save time generating batches of shaders in seconds/minutes (100’s or 1000’s per minute!)
  • No need to figure out how to make the shader work, just choose textures and go
  • Easy to use interface saves you a tonne of time - focus on artistic choices instead of figuring out code
  • Avoid having to write complicated shader code by hand
  • Create bug-free shaders without the headaches
  • Removes the pain and time needed to learn how shaders work or how to write them
  • Frees you from having to constantly cross-reference shader syntax/documentation
  • Generate shaders not provided in Unity by default
  • Create the kind of shaders needed in 2D games easily, and useful for 3D too!
  • Great for compositing multiple photoshop-style layers in a single shader (up to 16 layers!)

Over 850 Unique Shaders!

Think of Shader Wizard as a shader package containing over 850 unique shaders for 2D and 3D games! Instead of storing every possible shader (and importing them, which takes time in Unity), Shader Wizard instead lets you select the type of shader you want and generates it dynamically - kind of like extracting them from a procedural archive. 33 functions each with 26 blend modes produces 850 different ways to modify pixels - 850 actual different outputs. Combine this with Z-testing, alpha testing, culling, masking etc and you can choose from thousands of unique shaders! But that’s not all, with 2 to 16 MultiTexture layers and any combination of 28 layer merges, you’re looking at literally millions of unique shader outputs!

33 Shader Functions

Shader Wizard currently includes 33 shader functions (28 new in version 2!) Each function is a way of processing inputs such as colors and textures, combining them and outputting them to the blender ready for blending with the background in a multitude of useful blend modes. At present Shader Wizard includes the following shader functions, with many more advanced and useful functionalities on the way:

  • Color (input a fixed color only and output it)
  • Vertex Colors (input vertex colors only, interpolate/gouraud shade and output them)
  • Texture (input a single texture, filter and output it)
  • Texture + Color (combination of Texture multipied by a fixed color)
  • Texture + Vertex Colors (combination of Texture multiplied by interpolated vertex colors)

And these MultiTexturing shaders can be used in unlimited combinations based on the number of texture layers (up to 16, texture units permitting - ShaderWizard now supports Shader Model 2 or 3 output to support larger shaders). For example a 4-texture shader could Overlay the second texture, Screen a third, and Subtract a fourth. MultiTexture shader functions are:

  • MultiTexture AlphaBlend (Photoshop Normal blend between 2 textures)
  • MultiTexture AlphaBlendAdd (2 textures additively AlphaBlended together)
  • MultiTexture AlphaBlendSubtract (2 textures subtractively AlphaBlended together)
  • MultiTexture Add (Photoshop Additive blend between 2 textures)
  • MultiTexture AddSoft (2 textures softly added together)
  • MultiTexture Subtract (Photoshop Subtractive blend between 2 textures)
  • MultiTexture SubtractSoft (2 textures subtracted softly)
  • MultiTexture Multiply (Photoshop Multiply blend between 2 textures)
  • MultiTexture MultiplyDouble (2 textures multiplied together twice)
  • MultiTexture Min (Photoshop Darken blend extracting the lowest values from 2 textures)
  • MultiTexture Max (Photoshop Lighten blend extracting the highest values from 2 textures)
  • MultiTexture Screen (Photoshop Screen blend between 2 textures)
  • MultiTexture AlphaMask (Uses animatable-threshold alpha testing to cross-fade 2 textures based on Alpha)
  • MultiTexture AlphaFade (As AlphaMask but smoothly adjusts actual Alpha values rather than a hard cutoff)
  • MultiTexture Difference (Photoshop Difference blend between 2 textures)
  • MultiTexture Negative (Photoshop Negative blend between 2 textures)
  • MultiTexture Exclusion (Photoshop Exclusion blend between 2 textures)
  • MultiTexture Overlay (Photoshop Overlay blend between 2 textures)
  • MultiTexture HardLight (Photoshop Hard Light blend between 2 textures)
  • MultiTexture SoftLight (Photoshop Soft Light blend between 2 textures)
  • MultiTexture ColorDodge (Photoshop Color Dodge blend between 2 textures)
  • MultiTexture LinearDodge (Photoshop Linear Dodge blend between 2 texures)
  • MultiTexture ColorBurn (Photoshop Color Burn blend between 2 textures)
  • MultiTexture LinearBurn (Photoshop Linear Burn blend between 2 textures)
  • MultiTexture VividLight (Photoshop Vivid Light blend between 2 textures)
  • MultiTexture LinearLight (Photoshop Linear Light blend between 2 textures)
  • MultiTexture PinLight (Photoshop Pin Light blend between 2 textures)

(future versions will include more Photoshop-style blends such as Color, Hue, Luminosity, HardMix etc. MultiTexture shaders currently do not provide an Opacity adjustment per layer - this would entail alphablending every layer on top of each other, a future improvement).

26 Useful Blend Modes

Shader Wizard currently features 26 ways to blend the output of every function (listed above) with the existing background pixels. That means for example that if you are using the Texture + Color function, you can output the combined result of the Texture multiplied by a fixed color and blend it with the background in 26 different ways. So effectively you have a Texture+Color shader which does alphablending, a Texture+Color shader that does soft additive blending, a Texture+Color shader that blends with a Multiply operation, a Texture+Color shader which does alphablending plus addition based on the destination alpha value, etc… all these interesting combinations of blend modes with processing functions adds up to 850 unique ways to render. This applies to MultiTexture shader functions also - once all layers are combined with Photoshop-style merges, the end result can be blended with the background in 26 ways. (Hint: Use AlphaBlend blend mode as the final step of a MultiTexture shader in order to implement a Photoshop-style opacity adjustment to the final output).Blend modes include:

  • Solid (replaces destination pixel)
  • Solid + Test (replaces destination pixel if alpha test passes)
  • Alpha Blend (alphablends with destination pixel)
  • Alpha Blend + Test (alphablends with destination pixel if alpha test passes)
  • Alpha Blend Add (alphablends combined with an additive blend)
  • Alpha Blend Add + Test (as above with alpha testing as well)
  • Alpha Blend Subtract (alphablends combined with a subtractive blend)
  • Alpha Blend Subtract + Test (as above with alpha testing as well)
  • Add (additive blending)
  • Add Soft (soft-additive blending, preserves color more)
  • Subtract (subtract from destination pixel)
  • Subtract Soft (softly subtracts from destination pixel, preserves color more)
  • Subtract Reverse (subtracts destination pixel from shader output instead of the other way around)
  • Multiply (multiplies output with destination pixel)
  • Multiply Double (multiplies output with destination pixel twice and adds results together, ie Multiply 2x)
  • Min (outputs the minimum of shader output and destination pixel values)
  • Max (outputs the maximum of shader output and destination pixel values)
  • Screen (performs a screen operation - like an inverse multiply that increase in brightness instead of decreases)
  • Dest Alpha Blend (uses destination alpha value to alphablend - can be used for masking/drawing behind)
  • Dest Alpha Blend Add (as above but also includes an additive blend)
  • Dest Alpha Blend Subtract (as above but with a subtractive blend)
  • Add to Dest Alpha (adds an alpha value to the destination alpha - use with color masking to output alpha channel only)
  • Subtract from Dest Alpha (subtracts an alpha value from the destination alpha)
  • Multiply Dest Alpha (multiplies an alpha value with the destination alpha)
  • Dest Alpha Colorize Add (uses the destination alpha representing grayscale version of destination pixel to colorize using shader output additively)
  • Dest Alpha Colorize Subtract (as above but with a subtractive blend)

More Features!

  • Additional shader customizations: Set Culling Off/Front/Back, to set Z-Testing modes, to set Z-Write On/Off, to define a color channel Mask, setting an alpha test threshold (for Test blend modes), setting up a default color and/or texture, and option of whether to allow Texture offset + tiling settings to be used.
  • Variety of generator options: Set the output folder, generate shaders in a hierarchy based on function/blend mode or combination thereof, automate or customize shader names, shader menu customization, automatic counters with offset, etc.
  • Ability to generate every combination available for a given function, blend mode, or other option - can automatically generate millions of unique shaders and materials!
  • Automatic shader and material generation: No need to code anything, all shaders are fully generated with the option to also generate a matching material. The material will auto-populate with the shader and any default color/texture. Batch generation can create 100’s of shaders per minute.
  • Choose ShaderModel 2.0 or ShaderModel 3.0 output - longer shaders need 3.0, but only to support long programs - all shaders are still Shader Model 2. ShaderWizard also includes an option to exclude MultiTexture merge names from the automatically generated names if they get too long (e.g with 16 layers).

Modern, optimized shaders

Shader Wizard creates only Shader Model 2.0-compatible shaders, exclusively based on vertex and fragment shaders written in the CG shader programming language. Larger MultiTexture shaders may need Shader Model 3.0 to support their size only. ShaderWizard does not generate or include any fixed function pipeline support. The old fixed-function pipeline is being effectively dropped by Apple with the phasing out of 3G iPhones - requiring OpenGLES 2.0 to work on mobile devices. All shaders are optimized to use the most efficient possible number formats, sure to be as fast as possible on mobile and desktop. Generate super-lean efficient shaders in seconds.

Fully Customizable

Shader Wizard generates full Shader Lab/CG source-code which can be easily edited/modified/tweaked after being generated. Use the shaders as-is or as a quick way to generate templates you can modify to your own needs. Unity automatically takes care of compiling the shaders after they are generated, and after any changes you make to them, so you don’t need to worry about platform compatibility or being able to change things.

//Comments Included

Choose from several levels of commenting which includes none, header only, header + sections, every line, and verbose. Comments will be added to every line of the generated shader code if you want it! Comments even include all of the optional parameter values for major settings, allowing you to adjust the shaders at a glance without reverting to other documentation. And yet Shader Wizard can also generate completely clean comment-free code as well!

More to come!

Shader Wizard is still warming up with a long list of really useful and cool shader functions. These will include specialized shaders that are extremely useful for game development, shaders useful for 2D games in particular, shaders that make the most of alternative storage formats for optimizing mobile delivery, shaders that implement cool realtime special effects, shaders to combine and use multiple textures with exposed controls, and much more. Just $20 is all I ask for you to give it a try and enjoy the time-saving and pain-saving benefits of automated shader generation!

Check it out on the asset store today! https://www.assetstore.unity3d.com/#/content/4549 Only $20!

Excellent idea. Be sure, though, to put the shaders in a format so that they are editable after.

Oh yes, the shaders are generated as sourcecode complete with various levels of commenting. They are fully editable if you need/prefer to dip into the code, tweak things in code or add to/modify the functionality. Unity will compile them automatically on the fly just like any normal shader.

really interesting stuff man.

Thank you!

Pretty interesting… :slight_smile: I could definitely look into something like this… Question is will I be able to replicate a shader that I created in Strumpy? I have a shader which is pretty complicated, and it is in shader model 3.0… will you support shader model 3.0 and beyond in future updates? thanks a bunch

I guess it depends what you want your shader to do. Shader Wizard is not as versatile as a visual shader programming tool. You don’t get to plug interesting little functionalities together and hook them up in funky ways. You get to choose a preset function and choose how it will be blended and culled and that’s all. The interface would have to be much more complicated (like strumpy) in order to allow that kind of customization. I suppose that’s a possible future direction for expansion. Most likely though I will be adding more preset functions that do a specific common/useful task. If you really need something highly custom it may not fall within the limits of what this tool can do.

As to the shader model, Shader Wizard only happens to be rated at Shader Model 2 (e.g. DirectX 9) because that’s the level of functionality needed to make the current functions work. It’s a rating that I haven’t imposed. If I were to implement some shader model 5 functions then that would apply to those functions individually. It all depends what the function needs to do. Unity takes care of compilation and choosing what shader model is needed. It happens to say shader model 2.0 for the current functionality. So if your shader does something that relies on model 3.0, it most likely cannot be implemented with Shader Wizard as it stands - unless it happens to produce the same output as some combination of settings that are supported.

I do have a long list of additional shader functions that I’m working on adding, I’m not sure yet what shader model they require, most are probably 2.0 - but if I come up with a cool function that can only work on 3.0 and it’s a good addition them I’m on not averse to including it. I just don’t think that your highly customized strumpy shader will translate completely - Shader Wizard is a very quick easy-to-use tool so there is some degree of customizability that you just can’t do with it yet.

Yet for a large majority of developers I think/hope that Shader Wizard will be useful for generating a wide range of shaders that have real practical benefit and open up creative options and artistic possibilities.

If anyone has any requests for what types of shader functions you’d like to see added, I wholeheartedly welcome them. I’m working on some interesting things as mentioned above like color changing, palette mapping, tilemapping, splatmapping, bumpmapping, etc.

For those who have kindly purchased Shader Wizard already, or are about to do so, please consider submitting a review to the asset store to help others to make an informed decision. Thank you!

Is it possible to create a color shader (with alpha channel support) with this tool, that is similar to Photoshop’s ‘Color’ layer blending mode?

Yes.

It appears based on your image that you are basically doing an alphablend (a cross-fade between the source texture and the background), but are additionally multiplying the source texture by the intensity of the background. It’s a form of colorizing. I’m sure there are several approaches.

Since you are drawing the background grid image first and then modifying its color, this requires the background to be read in by the shader. The only stage of the Shader Wizard pipeline that currently reads the background is the blending stage. So we need to choose a blend mode that does at least part or all of the job.

I don’t know what Photoshops formula is but I would imaging it’s taking a grayscale or luminance version of the background image and multiplying that by a source color. So instead of doing a straight alphablend, it’s like an alphablend with a multiply against a hidden grayscale version of the background. I’m sure Photoshop does not have the issue of dealing with a backbuffer and can just composite multiple texture layers at will - but we are limited with a backbuffer here. At present ShaderWizard doesn’t do multitexturing (but will in future) - that would be another approach.

The only way I see to do it presently is to make use of the alpha channel of the backbuffer. Destination alpha requires a 32-bit backbuffer. On mobile I think you have to request/force it and I dont know how wide the support is. On desktop you need a 32-bit display or desktop - most are, but 24-bit will not work.

Once you have a 32-bit display, it includes a destination alpha channel. We can use the alpha channel to store a grayscale version of the background.

So basically:

  1. Draw the background RGBA image which includes RGB = color of the pixels and A = grayscale version of the pixels. For example use ShaderWizard to make a shader using the Texture function and the Solid blend mode. This should write RGBA to the backbuffer. Or alternatively write the RGB and then write the alpha separately using a Color Mask and perhaps an Alpha8 texture.

  2. Now that you have grayscale values in the destination alpha you can use them to colorize the backbuffer. ShaderWizard includes blend modes for working with destination alpha, including Dest Alpha Blend and Dest Alpha Colorize Add, which are two options that may interest you. If you create a shader using Dest Alpha Blend, it will use the destination alpha value to cross-fade between your red texture and your background texture. So if you make your destination alpha values represent a grayscale/brightness/luminance version of your blue grid pixels (ie black is 0, blue is 255 or whatever), then Dest Alpha Blend will scale your red texture (or whatever you like) by the destination alpha and then fade out the blue texture inversely. You could also try Dest Alpha Blend Add which adds the red to the blue instead of fading between them, which would give you more of a pink in this case. Dest Alpha Blend Subtract may also be useful to you to subtract from the blue color.

The blend mode Dest Alpha Colorize Add is also interesting here - it uses the destination alpha value to scale the source RGB colors, but it also uses the source alpha value to scale the destination RGB colors … so if you write grayscale to destination alpha, the values from it scale the source texture, but then that is added to a scaled down version of the background color using the alpha from the source texture. Not entirely easy to explain but it does provide a different form of colorizing.

I’m not completely sure what will happen when you want to use alpha to scale your source image - like in your picture where you have a faded soft edge. Doing this as a blend modes requires the source color to multiply by its own alpha. If you do that you no longer can additionally scale the image by the destination intensity. You need like two multiplies that work together to adjust the source image. (Maybe pre-multiplying shader could work here, or using a pre-multiplied texture, but I think that may fade the color to black instead of fading it out to blue). You could possibly paint the soft-edged shape into the destination alpha (e.g. Multiply Dest Alpha blend mode to mask the grayscale grid to the shape you want) and then draw a solid-edged fill on top of it which would work. Then the dest alpha would fade the fill texture. But if you want the texture to be faded using the source alpha I don’t think you can do that at the same time as colorizing. And that’s not a limitation of ShaderWizard, it’s a matter of the way hardware blending works - you get to multiply the source color by something and then add/subtract to the result of multiply the destination color by something. What you need is to multiply source by something, then multiply the source again by a grayscale channel. So that’s not really possible in any shader - you can only do it by multiplying the grayscale grid in the destination alpha by a soft-edged mask first and then colorizing with a fill texture.

Hopefully that will work for you. Otherwise without destination alpha it’s not going to be so easy to do what you want.

If your background was white I’d suggest using the Multiply blend mode which would colorize it red, but then you’d have to separately colorize the blue parts. You might also try the Screen blend mode which is similar to multiply but lightens things instead of darkening - this would possibly allow the red values to increase even though they’re 0 in the destination color. But I imagine drawing only the red parts separate from the blue parts would be hard, unless you only have one red area on-screen at a time and thus can colorize the entire white/grayscale background using Multiply.

I wish there were a simpler approach to do this but the hardware isn’t set up to make it easy due to you needing more than one multiply against the source color, and you can’t multiply source color by dest alpha as the second part of blending.

A future option may be to use a RenderTexture where you feed the output image back into the shader - ie draw the blue grid to a RenderTexture, then use the RenderTexture with a multitexturing shader that alphablends between the separately alphablended red shape texture and the blue grid texture to produce an updated output. I’m not sure how valid it is to read and write from the same pixels in a render texture though, and ShaderWizard doesn’t have multitexturing yet… but it may be a possibility in future. I am working on adding multitexturing shader functions so I will keep in mind that alphablending two textures on the fly could be useful for what you’re trying to achieve.

There is one other option that comes to mind. … using a multi-pass operation, you could first draw a black image with soft edges using AlphaBlend covering the area of the shape - this cuts out the area and removes the blue, then draw your red soft-edge image using DestAlphaBlendAdd which will use the dest alpha grayscale values to blend between red and blue but additively… might produce a similar result.

So in conclusion there are a few ways to do this but it depends on your limitations and what flexibility you need in your design/use of the effect.

It seems to be a good asset.
Has video to see how it works in practice?

Hi. There is no video at the moment. But it is very very easy to use so there isn’t much that a video could show. Easy steps:

  1. Choose the type of shader you want from the function menu
  2. Choose the way it will blend with the background from the blend mode menu
  3. Choose some other settings if they apply to you (e.g. culling, masking, z-test etc etc)
  4. Click Generate.

One or more materials are generated with the shader(s) attached. You use the material just like any other. If you want to generate multiple shaders at once just choose Generate All from whichever menus you want variations for.

It’s really easy on purpose :wink:

What I would like to do soon is create a resource - maybe a webplayer or website - where you can see/try out the various shaders and play with them and also to list useful/creative uses that each shader can be put to in a game.

Actually maybe it would help if I include here the Readme.txt - simple documentation, so you can get more of an idea if this is something helpful… → 1058812–39351–$Readme.txt (15.1 KB) ← Save it to your computer and open with wordpad or something other than notepad otherwise you’ll get lines wrapped.

Note also that every interface element has hover popup help so you just hover the mouse over it to see what it means.

Some of the images from the asset store if this is useful - once ShaderWizard has generated the shaders/materials you can just choose a material as normal from the Material Selection Window or just drag the material to your MeshRenderer.

Thanks imaginaryhuman for a long response for my Color shader question!
I have to admit it was highly technical text that you typed. I didn’t understand much about how I should go about achieving the shader I want. I don’t understand almost anything about rendering, shaders or their terminology.

You said words like ‘backbuffer’ and ‘destination alpha’… I don’t understand much about those. All I want to know is that can I achieve the effect I want simply by pushing the buttons in the GUI of your tool without having any background knowledge about rendering and shaders. If it’s not as simple as pushing some buttons, and if it requires more than having the tool, could you make a step-by-step tutorial?

Hi.

To cut a long story short, no, you cannot do what you want just by using the Shader Wizard interface. This is purely because of the way the graphics hardware works. It does not support the complexity of operations that are needed to do the colorizing in a single shader. Photoshop and other software can do it because they do it in software on the CPU which allows as much complexity as they like. But graphics hardware is limited, it has a specific interface like OpenGL or DirectX that require you to work within certain limits unfortunately. That makes this kind of effect harder than it could be.

The basic steps you would need to follow are:

  1. Import your blue grid texture - just bring your RGB image into Unity.

  2. In the Texture Import settings, check the box to generate alpha from the grayscale version of the image.

  3. Then import your red soft-edged texture in whatever format you like in Unity - presumably it has an alpha channel of some kind.

  4. Use ShaderWizard to generate a shader using the Texture function, with Solid blend mode.

  5. Use ShaderWizard to generate a second shader using the Texture function, with Dest Alpha Blend blend mode.

  6. During your game, draw the background blue grid texture first using the first shader. To do things in order you may need to have separate cameras or use features of Unity Pro to force the drawing order or put your GameObjects in a particular order, etc… the background must be drawn first. This will put the grayscale alpha into the alpha channel of the screen as well as draw the blue pixels

  7. Then draw an object with your red soft-edged shape on it, using the second shader. It will colorize the background.

Thank you!
So basically I don’t need to write manually any game code or shader code to achieve the effect?

I think you should have “photoshop presets” - a preset blend mode that can be further modified that emulates all of photoshops’s blends - a thread around here had a (I think it was farfarer’s colleague’s) link which gives you the formulas for all those. I’m thinking since this really is quite limited and most useful for people learning shaders or artists, ps blends would be a must. Just a suggestion.

WOW ! Very interesting…

What about cartoon shaders !?! With or without oultines !?! Shadows or not !?!
Do you have examples (videos, pictures) ???

6R

@snaikku - You don’t need to write any shader code :wink: … you probably don’t need to write any game code so long as you can find a way to do the two passes in the correct order using normal Unity editor functionality … such as putting them on different cameras with a drawing order or something. It depends how much more complex your game is as to whether you need to code something to make sure the background is drawn before the red parts.

@hippocoder - Yes I agree - ShaderWizard is mainly targetted at artists, beginners, intermediate developers - the shaders at present are not what I’d call advanced. There is a lot more to come … I agree the photoshop blends are interesting. The question is which of those blends are useful for games and whether they can be implemented in shaders in a way that is useful. I already implemented for example solid, alphablend, add, subtract, min, max, screen, multiply. Some of the others such as color, hue, luminosity, overlay, dodge, burn etc are more difficult and can’t be done with just a blend mode. They have to be implemented in the shader on the fly, which means the two images being combined (like a new texture and a background) would have to both be fed into the shader, you can’t just draw it onto the backbuffer. That might be useful for some people but for others it isn’t ideal to have to feed the background into the shader. I am more interested in shaders that game developers can find useful, such as various optimizations for mobile, shaders that use less data or other formats, shaders for special effects, shaders for 2d games like tilemaps, splatmaps, color cycling, parallax layers etc

@p6r - There is no cartoon shader yet but it’s an interesting idea. I’ll put it on my list. :slight_smile: I don’t have examples of the shaders in use yet, I’m looking into it. Like I said I want to put together information on what each shader can be used for - the benefits/applications. That goes beyond the pure functionality of generating the shaders.

As you know there are a TONNE of possible shaders people use and want and I definitely cannot incorporate them all into a tool like this so I’m choosing useful ones that have common practical applications. If you’re developing a sophisticated 3D game and you’re looking for like advanced lighting/shadowing and refraction and stuff like that then you probably need to use something like Strumpy shader editor. At least for now.