Originally Posted By: Machinery_Frank
Just take C4 as an example. There is a visual shader editor. The reason is that each shader will work under different lighting situations, with or without fog, at different gaming platforms. Each shader will work together with other shaders. They will be compiled from this graph in real-time on each platform just as needed.

You cannot achieve this when you write some HLSL code.

No, you're mixing two different concepts together. A visual editor is just for visual editing. For lighting, most engines use lighting modules from a shader code library. A7 does it this way and I bet C4 also. A7 shaders also work under all lighting conditions, fog, and so on. You only write the specific code for your shader. Writing code can't be done with a visual shader editor, thats why I prefer the A7 method.