First, I'd like to provide some context. I have a low resolution 3d map. I made this map by subdividing a hexagon and applying a Displace modifier to it. A little color-ramp magic in the shader, and I have something that's conceivably usable for my purposes:

An island render

However, switching between the displacement texture and the rendering shader is inconvenient for painting changes onto the model. Before, it was the only way to do things, but now, I thought I'd try to use the Geometry Nodes system to displace my vertices with Vertex Paint as the input instead of a texture.

The problem is, the Displace node uses the texture's HSV value at each vertex directly, which is different from the color values visible in the spreadsheet editor. For instance, while a color with an HSV value of 0.0 has an internal value of 0.0, and a color with an HSV value of 1.0 has an internal value of 1.0, a color with an HSV value of 0.5 is stored with a value of 0.216 per the spreadsheet editor.

How do I convert the stored value into something approximating the HSV value?

  • 2
    $\begingroup$ Does this answer your question? How are color images used as input values in nodes? $\endgroup$
    – Gorgious
    Jul 5, 2021 at 8:35
  • $\begingroup$ @Gorgious No, that question is 100% unrelated. Firstly, I'm not using images here. Second, the problem is that the value I'm expecting - the color luminance - is not the value reflected in the spreadsheet view. This difference is reflected in the vertex color itself, not post-conversion, so the conversion described in the linked question cannot be the problem. Furthermore, a lot of the nodes for working with colors simply don't exist in Geometry Nodes view, so I couldn't solve my problem the same way I might if I were working with Shader nodes. $\endgroup$ Jul 8, 2021 at 8:31
  • $\begingroup$ Could you maybe add a little more information then ? Post a screenshot of you spreadsheet editor and the expected behaviour, etc. $\endgroup$
    – Gorgious
    Jul 8, 2021 at 8:54
  • $\begingroup$ I'm voting to leave this question open since OP can't use the linked answer. $\endgroup$ Jul 8, 2021 at 17:16
  • $\begingroup$ Also might be helpful: What happens when a vector is fed into a value slot of the add node? $\endgroup$ Oct 18, 2022 at 11:54

1 Answer 1


In Blender 3.3+ you can solve this as follows:

enter image description here

In this version the node Separate Color offers you the possibility to choose between RGB, HSV or HSL.

The value for the vertex color is stored in the attribute Col, which you can query with the node Named Attribute.


You must log in to answer this question.

Not the answer you're looking for? Browse other questions tagged .