# Color beveled nurbs path according to the x-y-direction in the final camera view

My question is very similar to this one, but the answers there don't capture the essence of the problem imo. Assume you have beveled paths in Blender, then every location on the path has a tangent vector that points in the direction of the path.

In the coordinate system of the camera, assuming the z-axis is our viewing direction, we are only interested in the x-y-portion of the tangential vectors. What you want to achieve is that path-parts that go into the same x-y-direction have the same coloring. This also means that a vector that points into the opposite direction another vector, will get the same color.

For people working with visualizations of vector fields, this is nothing new and besides coloring the magnitude of the vectors, one major application. A good test-case is a ring viewed from above because it contains all directions and one can easily check the correct coloring. I came up with the following solution in Blender 2.81

This is a simple nurbs-circle. I used the Geometry node to get the tangent vector and after converting the coordinate system, one can calculate the direction using trigonometry. I have 3 questions, but the first one is the major problem I'm trying to understand:

1. In the small rendered view, one sees that on the blue and red spots, it almost looks as if the coloring changes too fast. It doesn't look so severe in the preview but I have the feeling that the color between blue and red on the left side takes a too large portion. Did I do something wrong or is there a reason for that?
2. Is there a simpler node-structure that achieves the same?
3. Is it a bug that the "Hue Saturation Value" doesn't work if the second color doesn't have the saturation set to max?
• Your additional question link is an Skype invitation, is that normal? Dec 8, 2019 at 0:39
• Good lord.. thanks for pointing this out. I fixed it. Dec 8, 2019 at 2:04
• HSV is non-linear, you're right. But another question: if you're only interested in 2 dimensions, why are you encoding in 3? Wouldn't RG do, without B? Dec 8, 2019 at 9:39
• There are many different ways to do this, but using the Hue value is often used in science. Here, I just wanted to see how to turn the tangent direction into color with Blender. To get beautiful color gradients out of this, one could take the tangent-direction t and use an appropriate parametric function {fx(t), fy(t), fz(t)} and use this as coordinates in XYZ-color-space. Then you can get whatever color gradient you want, and colors will have perceptually the same distance. I'll try this later. Dec 8, 2019 at 15:20

That's a beautiful node setting. I will try to explain some problem first:

• You shouldn't use emission shader for your output, if the output is Color and you want that color directly show on your screen, please directly connect the Color socket to Output Surface socket.
This post elaborated more detail of color output setting

• What you mean too fast? Human color perception is complicated, we try a lot, a lot of method to describe and organize color: sRGB, Adobe RGB, NTSC, CMYK or even Pantone®. Blender using sRGB as default output color and if my memory is correct, purple will be strongly receive for our eye in normal sRGB situation, Blender is using this solution as standard.

1. Change the color management in properties panel, View Transform: Raw