Raw HLSL vs ShaderNode System - Which should I stick with?



Hello, I wanted to know if it’s better for someone like myself who is trying dive deeper into Graphics Development to stick with shader code (HLSL/CG) or work in a Shader Node System (Unity Shader Graph).

This came up because I inspire and have a drive to intern at Sony Santa Monica the coming summer.
I’m currently working on two projects in Unity learning higher level graphics engineering. I assume it’s best to do all my work in code being HLSL/CG because it’s more relevant to working with a custom engine which many AAA companies do.

This year working up to when internship applications start I’ll be working in my own engine to learn the different facets of a graphics pipeline.

THANKS and sorry for the read.


It really depends what you are trying to learn.

Basically, if you’re primarily interested in learning how to make things look a certain way, stick with nodes until they start to feel too restrictive. But there’s an awful lot that can be accomplished with nodes, and plenty of learning to do if you’ve just gotten started before you run out of possibilities with nodes.

If you’re primarily a programmer looking to extend your programming knowledge into graphics, then HLSL is a better fit. The syntax and compilation and data binding issues you’ll have to work through will be less of a problem if you’re already mostly a programmer.


Thanks for replying Theodox.

So far I’ve been learning more of the aesthetic side of shader programming as it’s necessary with the projects that I’ve been working on. I do see myself diving deeper into primarily programming low level stuff though.


There may be some value in going on parallel tracks then – for most common cases the nodes correspond pretty closely to recognizable math operations. It’s only when you get down to real edge cases, particularly exotic data packing and things like that, that you really have to leave the nodes behind.

If you’ve never seen it, definitely check out Shadertoy.com it’s the best way to see how many cool things translate into code. It’s WebGL, so GLSL rather than HLSL, but the translation is almost always pretty trivial.


I definitely will do. I checked it out before, but never really got to dive into it. That’ll be a great starting point.

Thanks again Theodox