I guess it's a matter of preference -- programmer versus artist. I'd no sooner choose to click together a shader over writing one than click together a game rather than make something original.

Node-based is great for simple materials. Engines that provide such a system make it easy to meet some industry standards. But what is one to do when they want a multi-texture shader where some layers cast some shadows on others, some layers have true reflections, and so on?

Writing one's own shaders is good for performance, as well. Even for a more standard multi-texture shader, if only two layers need a specular map, I'll write a shader that only uses a spec map for those two layers.

Even the simple stuff I do differently every time for different projects. Maybe in one project I have an AO map, which will only affect ambient lighting, but in another project I can't be bothered and I bake AO into the diffuse texture. Or I might hard-code some hemispheric ambient lighting -- very little performance cost, but it can really add some shape to areas in shadow. These are simple, intuitive, artistic tweaks that aren't all going to be doable in a node-based editor.

I wouldn't start a project in another engine without learning to write my own shaders in that engine. Custom-made shaders get a better performance:prettiness ratio.
Quote:
I create shaders in minutes there and I dont have to care about the number of lights, fog, static or dynamic lighting. The lighting node contains all this. There are some general flags to activate alpha testing as an example.

As it turns out, I also create shaders in minutes. And then I can spend hours tweaking them if I need to, adding things and changing things, and see the changes updated in real-time. Code is easy to reuse by modifying default.fx: I might have my own fog function that uses a cube-map rather than a single colour to get a good-looking atmospheric scattering effect in a sunset -- I'd write the function once and from then on call "niceFog(pos)" in any shader that uses it.

Jibb


Formerly known as JulzMighty.
I made KarBOOM!