This tool is a user friendly interface designed for artists to build various custom made materials for surfaces. As materials play an important role in visual effectiveness, it is decided for technical team to build a Node based Material editor to facilitate artists’ works.
This editor enables different combination of materials through a suitable user interface.
In every material, there is a master output node that represents the final output stage. This node contains the various elements of a material in particular (eg. diffuse, normal, specular etc.).
User can make their own custom material, using previously made materials or different node types (constants, vectors, functions etc.) and combine them in the master node for output results.
There is also a special “code” node, which allows shader programmers, to write shader code, and use it alongside with other hard-coded nodes.
My role in developing this tool, was adding a visual material definition interpreter to the engine, so the visual materials get converted to corresponding GLSL/HLSL/Cg shader code. The client/server architecture is used like all our other tools, so the output can be seen instantly on all platforms.
By the way, there are some optimized shaders, that the artists are recommended to use more frequently, and only use a visual material on the surfaces whenever acceptable result cannot be achieved using stock shaders.