I know you can call density or flame for example from the attribute node. I was wondering what else you can write in the name slot. And maybe a bit of explanation of the attribute node.

enter image description here

thanks in advance guys! :)

  • 5
    $\begingroup$ the blender 2.79 manual has a link to this thread $\endgroup$ – triplex Dec 27 '18 at 18:36
  • 1
    $\begingroup$ Even the latest 2.91 documentation has link to this question and its answer :) $\endgroup$ – Ahmad Bilal Jan 16 at 18:44

Currently you can get:

  • density When used on a domain object, this is gives a scalar defining the density of any smoke inside the domain. All three outputs are the same.

  • flame When used on a domain object, this is gives a scalar defining the density of any fire inside the domain. All three outputs are the same.

  • color When used on a domain object, this is gives the color of the smoke. The color and vector outputs are the same. The fac output is an average of the channels.

  • N This gives the normals of the object. You can also get this info from the normal output of a geometry node.

  • Ng This gives the true normals of the object. You can also get this info from the true normal output of a geometry node.

  • pointiness This gives a scalar representing the amount of curvature of the object's surface based on it's normals. You can also get this info from the pointiness output of the a geometry node.

  • uv This gives the UV coordinates of the active UV map (the map with the camera icon active). Same as the UV output of the texture coordinate node.

  • generated This gives the generated coordinates of the object. Same as the Generated output of the texture coordinate node.

  • tangent This gives the tangent coordinates using the object's active UV map. Same as the Tangent output of a tangent node with direction set to UV map.

  • name of uv map
    This allows you to get the UV coordinates stored in a specific UV map belonging to the object with the material. You usually want to use the vector output, though the color output is the same. The Fac output gives an average of the channels.

Note that as of 2.71 there is a dedicated UV map node which makes this obsolete.

  • name of vertex color set
    This gives the vertex colors stored in the named vertex color datablock. Again the color and vector outputs are the same, and the Fac output is an average.

In the case of a vertex color datablock and a UV map with the same name, the UV map will be used by the attribute node.

There are actually quite a few more in the code, the ones listed above are just the ones which appear to work as of 2.74 930bf58 (latest master at the time of writing).

For a complete list, see line 192 of /intern/cycles/render/attribute.cpp:

I put //no output next to the ones which appeared to do nothing.

switch(std) {
            return "N";
        case ATTR_STD_FACE_NORMAL:
            return "Ng";
        case ATTR_STD_UV:
            return "uv";
        case ATTR_STD_GENERATED:
            return "generated";
            return "generated_transform";   //no output
        case ATTR_STD_UV_TANGENT:
            return "tangent";
            return "tangent_sign";          //no output
            return "undeformed";            //no output
            return "undisplaced";           //no output
            return "motion_P";              //no output
            return "motion_N";              //no output
        case ATTR_STD_PARTICLE:
            return "particle";              //no output
            return "curve_intercept";       //no output
        case ATTR_STD_PTEX_FACE_ID:
            return "ptex_face_id";          //no output
        case ATTR_STD_PTEX_UV:
            return "ptex_uv";               //no output
            return "density";
            return "color";
            return "flame";
        case ATTR_STD_VOLUME_HEAT:
            return "heat";                  //no output
            return "velocity";              //no output
            return "pointiness";
        case ATTR_STD_NOT_FOUND:
        case ATTR_STD_NONE:
        case ATTR_STD_NUM:
            return "";

Note that for the most part the attribute node seems to be used as a sort of "testing node" for inputs which aren't yet available in other nodes[citation needed]. I suspect old attribute names are not removed when they do get added to another node (e.g. pointiness) as this would break backwards compatibility.

At any rate, this would at least begin to explain why there is little to no documentation about this node.

  • $\begingroup$ Where did you get those?. How can I see the list in blender? or see the attributes available?. I asked here: blender.stackexchange.com/questions/31549/… $\endgroup$ – darkgaze May 27 '15 at 17:28
  • $\begingroup$ These are the ones which listed in multiple places on the old wiki. Currently it seems like a rather arbitrary hardcoded list of things, not all of which are working yet. It seems like the attribute node is being used as sort of a "temporary input node" is used for testing newer/experimental features (e.g. a more dedicated feature rich voxel texture node is planned at some point). I did find quite a few more in the code however, I'll update my answer. $\endgroup$ – gandalf3 May 27 '15 at 18:29
  • $\begingroup$ Being in some official documentation would be great :) $\endgroup$ – darkgaze May 28 '15 at 11:29
  • $\begingroup$ @darkgaze I've almost finished re-writing the smoke docs, perhaps I'll add the attribute node next ;) $\endgroup$ – gandalf3 May 29 '15 at 3:38
  • 1
    $\begingroup$ this answer should be updated with heat and velocity keywords ^^ $\endgroup$ – Jaroslav Jerryno Novotny Oct 3 '16 at 16:30

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service, privacy policy and cookie policy

Not the answer you're looking for? Browse other questions tagged or ask your own question.