Quote:
But the difference is: Your shader will be very special, working on a certain amount of lights and on one platform only. The abstract node based way supports different platforms.
What do you mean "one platform"? The shader will usually work on any Shader Model 2.0 or higher card. If Gamestudio supported Macs the shader will probably be written in Cg instead of HLSL, which is virtually the same thing except it works with OpenGL and DirectX.
Quote:
Besides that it is not only a programmer vs. artist point of view like you mentioned. The Vision engine as an example also has a dedicated low level shader editor aimed to programmers with a good shader code editor (with 3 pages for global settings of the library, vertex and pixel shader). There are pannels forthe shader library files of the engine, panels for global shader properties, enlisted effect hierarchies and a real-time preview of course.

Besides that they recommend to also load shaders from artists into this low level editor later for optimizations. So it is not an artist vs. programmers story, it is often a story of collaboration.
You were talking about how much easier it is to make shaders with node editors; I'm saying for someone like me it's actually easier to write them. I will always choose to write a shader in a few dozen lines -- less if I re-use stuff I've written before -- rather than use a node editor that's either too limited to do what I want, or too convoluted to be intuitive. Of course it's often a matter of collaboration when a team has enough personnel to do so, but that's just changing the topic.

No one is expected to be able to use Gamestudio without Lite-C. Why do people avoid HLSL like the plague? Shaders are IMO the easiest part of programming for these reasons:
1. They are short. In order to perform well, shaders are generally only a few dozen lines. The programmer will spend only a few minutes before they can see the effects of what they're doing, and from there they can make changes and see the changes as they're made in real-time.
2. They're simple. Until you start doing really fancy stuff, you probably won't touch loops, and you'll rarely use branches.
3. They are visual. Rather than a path-finding algorithm that needs to be tested under all sorts of circumstances, or movement algorithms that'll often fail in very specific cases, shaders will either look right, or look wrong. And it doesn't take much to make a scene look fantastic.
4. HLSL is intuitive. Forget vec_add and the like. Just add, multiply, subtract, divide with simple operators. Most functions work this way, too. For example: light.rgb += ambient.rgb; adds the corresponding components together. colour.rgb = colour.brg; swaps around colour channels.

IMO the lack of a visual shader editor is a hindrance only to those with no programming experience. I can only imagine how poor KarBOOM's performance would be if its shaders were put together in a node-editor and used the built-in effects of Unity, for example.

Jibb


Formerly known as JulzMighty.
I made KarBOOM!