Hi everyone!
On the Roadmapit states there will be a Material Editor 2.0, but I could not find any details on it, so I thought it would be nice to start a thread here with everything we might be expecting from it.
Let me start off by showing a Photoshopped image of what I personally have in mind.
So the ideas are simple:
-Make it feel more like Blueprint.
-Give the user more control over the available shader programs.
The main elements to notice are the differences in showing the different programs. The vertex and fragment program are separated graphs.
The fragment graph does not have that many differences from the old one, but there is an extra output show here, the “reflection” output.
The reflection output is for overriding the default reflection probe setup. The “Reflection Texture” node show in the image above is the actual
reflection data made by the reflection probes. if you want to replace it with a simple cube map for mobile, or a mirror reflection you can, while
still maintaining the PBR setup.
On the left we see the standard Blueprint window showing the graphs, functions and the possibility to add local variables. There is one default
function for the shading model. It would be cool if all shading models were made node based, and nothing was hidden in the background. It also
give the user the possibility to make his own shading models. Currently you have to put it on Unlit and abuse the Emissive Color input.
Now let’s take a look at the vertex graph:
This is the default setup, so when a new material is created, it will have all the nodes and variables hooked up. Currently you can only do world
space offsets, and have to do extra calculations to do it locally. With this setup it will be more clear what is happening. There is also the possibility
of giving custom normals in case you do extreme deformations.
You can see on the left side the local variables automatically provided by the engine. Any unused variables should of course be removed when compiling.
The TexCoord options could also be optimized based on what the user hooks up (float, float2, float3, float4).
Shader Model 4+
When the user turns tessellation on, an extra graph is added, the Tessellation Graph.
The user should also have the possibility to turn on the Geometry Graph. We should look into the best way to set this up. This should make it easy to implement hair.
Multi-pass
It would be cool to have multi-pass shaders, but currently I don’t know how that would be set up. Maybe the user is allowed to make multiple graphs and order them,
or maybe it is just a seperate object in your project called “Multi-pass Material” where the artist can assign regular materials as being a pass.
NEW FEATURES SUMMARY
Material
Layout
-Separate graphs for vertex, fragment and tessellation program.
-Access to all the vertex data and changeable vertex attributes in vertex graph.
-Geometry program graph.
Settings
-Parent material for material inheritance.
-Render queue
-Buffer masking, defines to which ones it is writing. (R, G, B, Depth)
Variables
-Matrices.
-Arrays.
Output
-New reflection output to replace the reflection probing technology.
*Nodes *
-For loops
-Sine & Cosine should have default period of 2pi.
-Reroute nodes.
-Collapse nodes.
-Extra texture sampler output for complete vec4.
Miscellaneous
-Better context sensitive search menu.
-Layered materials should work with materials instead of functions.
-Separate short key for duplicating nodes together with the nodes it is connected to.
-Local functions.
-Variables support and local variables for functions.
-Multi-pass support.
-Quicker compile time when inside the material editor, only compile for current system.
Material Instance
-Parameter tool tips.
Material Struct
-Same as the Blueprint version, but usable in Materials.
Material Function Library
-For all your global functions, instead of having it all separated in your project per function.
Material Parameter Collection
-Support all parameter types.