diff options
author | Jacques Lucke <jacques@blender.org> | 2021-01-21 18:47:03 +0300 |
---|---|---|
committer | Jacques Lucke <jacques@blender.org> | 2021-01-21 18:49:06 +0300 |
commit | 425e706921a8f986921b8b9c429874fed98e9a10 (patch) | |
tree | 88275db9e9ec65cd84c210a03799b285f1a0671f /source/blender/blenkernel | |
parent | a92ebab5da3bcbe3ee1b87348e51f6bcb347b881 (diff) |
Geometry Nodes: new Attribute Sample Texture node
This node allows sampling a texture for every vertex based on some
mapping attribute. Typical attribute names are the name of a uv map
(e.g. "UVMap") and "position". However, every attribute that can be
converted to a vector implicitly is supported.
It should be noted that as of right now, uv map attributes can only be
accessed after a Point Distribute node.
Ref T82584.
Differential Revision: https://developer.blender.org/D10121
Diffstat (limited to 'source/blender/blenkernel')
-rw-r--r-- | source/blender/blenkernel/BKE_attribute_access.hh | 3 | ||||
-rw-r--r-- | source/blender/blenkernel/BKE_node.h | 1 | ||||
-rw-r--r-- | source/blender/blenkernel/intern/node.c | 1 |
3 files changed, 5 insertions, 0 deletions
diff --git a/source/blender/blenkernel/BKE_attribute_access.hh b/source/blender/blenkernel/BKE_attribute_access.hh index abcf8ed1c54..bca96aac665 100644 --- a/source/blender/blenkernel/BKE_attribute_access.hh +++ b/source/blender/blenkernel/BKE_attribute_access.hh @@ -24,6 +24,7 @@ #include "BKE_attribute.h" #include "BLI_color.hh" +#include "BLI_float2.hh" #include "BLI_float3.hh" namespace blender::bke { @@ -301,11 +302,13 @@ template<typename T> class TypedWriteAttribute { using BooleanReadAttribute = TypedReadAttribute<bool>; using FloatReadAttribute = TypedReadAttribute<float>; +using Float2ReadAttribute = TypedReadAttribute<float2>; using Float3ReadAttribute = TypedReadAttribute<float3>; using Int32ReadAttribute = TypedReadAttribute<int>; using Color4fReadAttribute = TypedReadAttribute<Color4f>; using BooleanWriteAttribute = TypedWriteAttribute<bool>; using FloatWriteAttribute = TypedWriteAttribute<float>; +using Float2WriteAttribute = TypedWriteAttribute<float2>; using Float3WriteAttribute = TypedWriteAttribute<float3>; using Int32WriteAttribute = TypedWriteAttribute<int>; using Color4fWriteAttribute = TypedWriteAttribute<Color4f>; diff --git a/source/blender/blenkernel/BKE_node.h b/source/blender/blenkernel/BKE_node.h index 6ab401a2d41..12266cd48d9 100644 --- a/source/blender/blenkernel/BKE_node.h +++ b/source/blender/blenkernel/BKE_node.h @@ -1361,6 +1361,7 @@ int ntreeTexExecTree(struct bNodeTree *ntree, #define GEO_NODE_ALIGN_ROTATION_TO_VECTOR 1018 #define GEO_NODE_POINT_TRANSLATE 1019 #define GEO_NODE_POINT_SCALE 1020 +#define GEO_NODE_ATTRIBUTE_SAMPLE_TEXTURE 1021 /** \} */ diff --git a/source/blender/blenkernel/intern/node.c b/source/blender/blenkernel/intern/node.c index 52de4b108b9..04ce43da502 100644 --- a/source/blender/blenkernel/intern/node.c +++ b/source/blender/blenkernel/intern/node.c @@ -4747,6 +4747,7 @@ static void registerGeometryNodes(void) register_node_type_geo_attribute_color_ramp(); register_node_type_geo_point_rotate(); register_node_type_geo_align_rotation_to_vector(); + register_node_type_geo_sample_texture(); } static void registerFunctionNodes(void) |