Shader Sandwich - A Powerful Layer Based Shader Editor for Artists

I Purchased the package, the reason I got it, was because I wanted to do some fur shading experiments, and while the pre-done assets (Asset Store) are cool, and probably highly optimized, I wanted to experiment with performance / features to find something that worked for me, and not something that someone else had deemed “Optimized”

In that vein, I looked through the docs, and I found some inconsistencies, and stuff that I don’t know if I’m doing wrong or the docs don’t explain it in a way where you understand the relationship between modules.

Blend ModeThe blend mode lets you change how the shells are blended. These are similar to the layer blend modes, see”
As Described on this page: Electronic Mind Studios - Home of Shader Sandwich and other stuff!

I can’t find a section called Blend Mode, and I don’t see “Fur” as an option as described in the docs.

So when you add Shells (Fur/Grass) from the Settings Panel, you get a second Tab in the Layers panel called Shell, and it also has a diffuse / normal / spec. Do these Affect the shell color ? And how does the normal effect the shell ? Specular is also cool, but can you affect Specular based on fur length ? I guess I’m confused on how shell modifies or overrides base. Also how do I get the fur to look like “Fur” ? what I have now is a shell, but it looks like a blobby version of my model.

Can you post a basic workflow for fur ? Enable Shell, add “Noise”; add depth map; here are the things to watch for, for mobile, expense wise, self shadowing etc…

I also found that it takes quite a bit of time when you add parameters like Textures and other effects, channels, etc… so it’s not friendly to experimentation, if it takes 5-20 Seconds to add a parameter, just to find out it’s not what you expected.
-Derek

Hi Derek :). Yeah, sorry about the confusion. I’m currently in the process of updating the documentation, along with simplifying the interface, hopefully it’ll be a bit clearer once I’m done :). As for fur, shells are basically blobby versions of the model. In order to make them look like fur I alpha map them with a fur texture, inside the Shell Layers area. Here’s a simple example file: http://electronic-mind.org/ShaderSandwich/Fur.shader, just set the texture to the grass texture that comes with Shader Sandwich to see it work :). I’ll be sure to make a tutorial for it though, it’s definitely planned :).

Edit: Oh, and in-regards to the wait time between changing values, it sucks but there’s not much I can do (it’s the shader compiling) :(. If you want you can temporarily turn off real-time shader updating through the Previews menu, the miniature previews at the bottom of each layer are much faster and fairly accurate.

Anyway, a bunch of bugs and interface inconsistencies have been found so I’ll be releasing V1.1.1 soon :). I’ll list the bugs here for transparencies sake, and so in case you’ve been affected by a bug you can see if it’ll be fixed soon :):

  • (Fixed)Error when building due to file SceneViewCameraProxy.cs. This ones pretty bad :(.

  • (Fixed)Mapping/Offset effect can error when changing Z with a 2D layer.

  • (Fixed)Tessellation Smoothing value not being saved correctly.

  • (Probably Fixed)Presets crashing the project on Macs due to file path differences.

If a fix for one of these is really important now, just email me and I’ll send you the patch :).

Thanks, that’s helpful, I’ll try it out later…

Version 1.1.1 is out!
It’s primarily a bug fix update, however I’ve also improved the interface in a few areas (including Shells :slight_smile: ), and have included a ton more example shaders for things like windy hair, skin, fur, and some stranger ones like color keying (greenscreening).

I’m now getting to work on more features, planned for the next release are:

  • Custom lighting layers
  • Improved mask system (RGB masks, using masks as inputs, all sorts of things!)
  • Grab Pass/ Refractions
  • More visual editing (selecting layer types by picking an image instead of text for example), along with improved extensibility.
  • More custom settings support, such as custom blending modes or mapping types.

I’m aiming to get this out mid to late October :).

Anyway, I’ve also been informed that in Unity 5.2 (and possibly 5.1) Shader Sandwich emits a warning: UnityEditor.EditorWindow.title' is obsolete: Use titleContent instead (it supports setting a title icon as well).'. I’ll get this fixed in the next update. It doesn’t affect the program or any code you write at all, so for now just ignore it :).

Nice that tutorial number 3 is out!

If I may ask, do you have any tips on how to get water like in this video:.

Hello,
I just wanted to encourage the author to continue updates and tutorials. It’s also a powerful shader that won’t break my fragile bank!
When I get the item I will try to post tutorials.
Thanks!
–Joshua

Hi everyone! Sorry for having been so absent, have been really busy, and I kind of forgot about this thread haha XD. As a quick note, I tend to update my website fairly often, so if you’re interested in finding out why I might be busy or whatnot I’d suggest checking it out :).

@SilverStorm
Thanks :). As for the water, within the next few days I’ll be releasing an ocean tutorial, which ends up looking pretty similar (see here for a tiny screenshot). However, it won’t be quite the same as I believe the ocean in that video is actually being run by a proper simulation, hence why it can affect the boats physics. This is a bit outside of Shader Sandwich’s scope currently, but as long as you don’t need to interact with the ocean a stand alone shader will work just fine :).

@jammer42777
Thanks, and I’d love to see some user created tutorials :).

Anyway, on the topic of tutorials I’ve been uploading them pretty frequently recently. As SilverStorm posted I’ve finished the video version of the Beginner Tutorial Part 3 :). Other than that I’ve uploaded 3 “Quick Tips”, and a Shell Based Fur/Grass tutorial! I’ll be posting more over the next few days, I’ll try and be more proactive in posting about them here :).

  1. I can’t wait! The main sort of “interaction” I need is simply the sort where shallow water shows beautiful caustics and interaction with the sand. No actual Player/Physics calculations. Some underwater fog would also be nice and Object edge fading to show how deep the water is.

Samples Attached Below~
You can also see a live demonstration done in UE4 (It has no shore foam though):
https://www.youtube.com/watch?v=u82fxXHBFhA

  1. Near the end of Quick Tip #3 Toon - where you were tweaking the Rimlight, it began to look like some areas of the model were darker than others - in other words it looks like Rim lighting is the key to fake AO for characters and objects. Hmm.

I will probably post more on Fake AO Shaders later with images to help share some ideas.

2341412--158336--caribbean-clear-beach-sand-texture-shore-wave-foam.jpg
2341412--158337--876ec5b9-6628-42cf-9425-b37733a16df5_scaled.jpg

one silly question… I am wondering how do the lighting methods in shader sandwich compare to Unreal engine 4?
Also also how do they improve upon the Unity 5 standard shader.
The basics are that I want to make a mind blowing sci fi game. I really want to use shader Sandwich as it is a great buy! (my finances are not currently cooperating)

Just wanted to ask for an ETA when Shader Sandwich will support Unity 4. I imported the Hair Shader from the enhanced graphics section and Unity 4 gives an error. Yet to know when the compatibility would come, I am very excited with leveraging Unity 4’s graphics especially since the Beast Lightmapper is next to none.

IF you really would rather NOT give compatibility with Unity4, then how about the other way round?
By giving support for the beast lightmaps generated in Unity4 within Shader Sandwitch somehow? (The AO and GI done with Beast are too good to pass up)

I remember their was an Occlusion option inside the Standard PBR shader…but I never really understood how to get it to work.

I like bits about both engines but I can’t stay with Unity 4 forever…especially since it puts a strain on many developers to make compatibility for it.

@SilverStorm

  1. Currently Shader Sandwich can’t do particularly good edge fading, but the next version will include access to the depth buffer, which’ll make both effects easy :).
    Edit: You’ll also be able to have objects under the water be distorted by using the Grab pass :).
    I think underwater fog is something that happens in code, by checking the Z position of the player and enabling Unity fog once it’s under the water’s Z. I’ll look into if there’s anything shaders can do though.
  2. I actually experimented a little with using Rim Lighting for fake AO, however I couldn’t get it to look particularly good. If you have any success please let me know :smile:.

As for Unity 4, I’m planning on releasing it with the next update, which I’m hoping to finish before the end of October (although admittedly I may have to push it back slightly). I’m also going to see if I can include all bits necessary for the Unity 5 Standard Shader within it, so you can use it in Unity 4 :). Obviously you’ll still be missing reflection probes and realtime GI, but it might still be of some use.

@jammer42777
I’ll admit I haven’t used UE4, but from what I understand the new Unity 5 PBR shader competes with its lighting pretty decently, and you can use it in Shader Sandwich. On top of that, in the next version you can have direct access to how lighting is calculated (still within the layer system), and can manipulate that to get whatever result you want :). I think one area Unity lacks in compared to UE4 is shadows (from what I’ve seen), but this isn’t something Shader Sandwich can help with, sorry :(. Good luck with your game though :).

Custom lighting and Grab passes are almost completed, I’ll put out a quick video showing what they can do in a day or so :).

Happy days, if you can get the Standard Shader and Shader Sandwich working in Unity 4 that would be CRAZY!
That would pretty much remove my need to work in Unity5 altogether since I never used the GI.

1.I should also mention in the Trailer the Wax shader looks very realistic and dare I say it - it looks like it has AO within it…
However the one included within Shader Sandwich (Simple wax) has depth sorting problems and doesn’t look anywhere close…what happened there?

2.It is looking like Shader Sandwitch is becoming truly the ultimate shader solution…so in that case since I have already purchased it, what other assistance do you need that I can help with, maybe graphics or whatever?

silly question… is there any support for image based lighting? or any future plans?

Hi, I’m curious to know what kind of improvements we can see to POM in future updates? Edge clipping doesn’t really work well on spherical/cylindrical objects and the parallax in general produces jagged edges.

Sorry about the wait again :(.
@SilverStorm

  1. Haha, thanks but it’s actually a really simple shader; however, I’m not sure what could be going wrong there. I’ve re-worked the example shaders a bit in the mean-time and lost the original, but hopefully the one in the next version is ok :). If it’s not please tell me, sounds like a strange bug.
  2. Feature suggestions and bug reports mostly, it’d also be great to see people share some of the shaders they’ve made or make tutorials :). Other than that, I’m not sure. I’ll let you know if I think of anything though :slight_smile:

@jammer42777
I’m pretty sure the Unity 5 Standard Shader has this built in, but if you don’t want to use it, IBL is still pretty simple :). Just add a cubemap layer into the Emission channel (which can be enabled in the base Settings), and set it’s mapping type to Direction. You then add a Blur/Simple Blur effect and set it to something like 5 or 6. What this does is sample the cubemap not as a reflection, but from the direction the objects vertices are facing, and then lights the object accordingly. As long as there aren’t any other lights in the scene then this’ll work fine :).

@JLO
This is definitely something I want to look at in the next version. I’ve actually been trying to create a solution that doesn’t require any specific textures or other manual work from the user, but I’ve had no luck so far. In the next version I’ll probably just implement this, which should solve all those problems at the cost of requiring an additional texture that the user has to bake themselves :).

As for the next update, I’ve had a few set-backs (primary having to use a dying laptop from 2005 for the last few days), but the next updates looking pretty good :). Here’s a video I threw together showing a few of the new features :slight_smile:

I would be glad to make some tutorials once I can get it working well in Unity4 since that is my domain and at the same time help with bugs too. Speaking of which I no longer need a custom preview mesh, I learned to just apply the shader to a model of mine in the scene view and then just load and edit the shader and save it - updates nicely!

@spike1
Very interesting paper on Silhouette Rendering. I would definitely love to see it implemented to improve on the current POM set in Shader Sandwhich :smile:, and also keep up the good work. Looking forward to the next updates :).

Sorry about your laptop, but sounds as if it had a long life

Just wanted to say I actually found a video demonstrating the GPU Gems Implementations of Dynamic Ambient Occlusion!

Video:

Hi-Res More Detail Link: http://http.download.nvidia.com/developer/SDK/Individual_Samples/MEDIA/Video/Samples/Ambient_Occlusion.wmv

Here is the Paper from which they came: http://http.download.nvidia.com/developer/GPU_Gems_2/GPU_Gems2_ch14.pdf

If we get the day where this can be implemented in Shader Sandwich then wow…

Just wanted to report I think we need proper scene files showing each of the shaders and how they should look.
I am experiencing some very bad looking effects and some just don’t seem to work because I don’t know how the example shaders are supposed to look like because when I apply them their are no textures put in - it’s all blank and left to the user…I am clueless.

A good example is I applied the Ocean shader onto a plane and it is apparently supposed to have all these effects including foam but despite tweaking it I can’t get it to look right, a scene file would help.