[Bf-blender-cvs] [35aba17d354] cycles-x: Merge branch 'master' into cycles-x

Sergey Sharybin noreply at git.blender.org
Mon Sep 13 11:41:35 CEST 2021


Commit: 35aba17d3543f77585af2e98025f00b47e499262
Author: Sergey Sharybin
Date:   Mon Sep 13 11:41:28 2021 +0200
Branches: cycles-x
https://developer.blender.org/rB35aba17d3543f77585af2e98025f00b47e499262

Merge branch 'master' into cycles-x

===================================================================



===================================================================

diff --cc source/blender/blenloader/intern/versioning_300.c
index 9ba8cc97f55,6b8f011e9fc..a0335d1f825
--- a/source/blender/blenloader/intern/versioning_300.c
+++ b/source/blender/blenloader/intern/versioning_300.c
@@@ -630,20 -630,141 +630,155 @@@ static bNodeSocket *do_version_replace_
    return new_socket;
  }
  
+ static bool geometry_node_is_293_legacy(const short node_type)
+ {
+   switch (node_type) {
+     /* Not legacy: No attribute inputs or outputs. */
+     case GEO_NODE_TRIANGULATE:
+     case GEO_NODE_EDGE_SPLIT:
+     case GEO_NODE_TRANSFORM:
+     case GEO_NODE_BOOLEAN:
+     case GEO_NODE_SUBDIVISION_SURFACE:
+     case GEO_NODE_IS_VIEWPORT:
+     case GEO_NODE_MESH_SUBDIVIDE:
+     case GEO_NODE_MESH_PRIMITIVE_CUBE:
+     case GEO_NODE_MESH_PRIMITIVE_CIRCLE:
+     case GEO_NODE_MESH_PRIMITIVE_UV_SPHERE:
+     case GEO_NODE_MESH_PRIMITIVE_CYLINDER:
+     case GEO_NODE_MESH_PRIMITIVE_ICO_SPHERE:
+     case GEO_NODE_MESH_PRIMITIVE_CONE:
+     case GEO_NODE_MESH_PRIMITIVE_LINE:
+     case GEO_NODE_MESH_PRIMITIVE_GRID:
+     case GEO_NODE_BOUNDING_BOX:
+     case GEO_NODE_CURVE_RESAMPLE:
+     case GEO_NODE_INPUT_MATERIAL:
+     case GEO_NODE_MATERIAL_REPLACE:
+     case GEO_NODE_CURVE_LENGTH:
+     case GEO_NODE_CONVEX_HULL:
+     case GEO_NODE_SEPARATE_COMPONENTS:
+     case GEO_NODE_CURVE_PRIMITIVE_STAR:
+     case GEO_NODE_CURVE_PRIMITIVE_SPIRAL:
+     case GEO_NODE_CURVE_PRIMITIVE_QUADRATIC_BEZIER:
+     case GEO_NODE_CURVE_PRIMITIVE_BEZIER_SEGMENT:
+     case GEO_NODE_CURVE_PRIMITIVE_CIRCLE:
+     case GEO_NODE_VIEWER:
+     case GEO_NODE_CURVE_PRIMITIVE_LINE:
+     case GEO_NODE_CURVE_PRIMITIVE_QUADRILATERAL:
+     case GEO_NODE_CURVE_FILL:
+     case GEO_NODE_CURVE_TRIM:
+     case GEO_NODE_CURVE_TO_MESH:
+       return false;
+ 
+     /* Not legacy: Newly added with fields patch. */
+     case GEO_NODE_INPUT_POSITION:
+     case GEO_NODE_SET_POSITION:
+     case GEO_NODE_INPUT_INDEX:
+     case GEO_NODE_INPUT_NORMAL:
+     case GEO_NODE_ATTRIBUTE_CAPTURE:
+       return false;
+ 
+     /* Maybe legacy: Might need special attribute handling, depending on design. */
+     case GEO_NODE_SWITCH:
+     case GEO_NODE_JOIN_GEOMETRY:
+     case GEO_NODE_ATTRIBUTE_REMOVE:
+     case GEO_NODE_OBJECT_INFO:
+     case GEO_NODE_COLLECTION_INFO:
+       return false;
+ 
+     /* Maybe legacy: Transferred *all* attributes before, will not transfer all built-ins now. */
+     case GEO_NODE_CURVE_ENDPOINTS:
+     case GEO_NODE_CURVE_TO_POINTS:
+       return false;
+ 
+     /* Maybe legacy: Special case for grid names? Or finish patch from level set branch to generate
+      * a mesh for all grids in the volume. */
+     case GEO_NODE_VOLUME_TO_MESH:
+       return false;
+ 
+     /* Legacy: Attribute operation completely replaced by field nodes. */
+     case GEO_NODE_LEGACY_ATTRIBUTE_RANDOMIZE:
+     case GEO_NODE_LEGACY_ATTRIBUTE_MATH:
+     case GEO_NODE_LEGACY_ATTRIBUTE_FILL:
+     case GEO_NODE_LEGACY_ATTRIBUTE_MIX:
+     case GEO_NODE_LEGACY_ATTRIBUTE_COLOR_RAMP:
+     case GEO_NODE_LEGACY_ATTRIBUTE_COMPARE:
+     case GEO_NODE_LEGACY_POINT_ROTATE:
+     case GEO_NODE_LEGACY_ALIGN_ROTATION_TO_VECTOR:
+     case GEO_NODE_LEGACY_POINT_SCALE:
+     case GEO_NODE_LEGACY_ATTRIBUTE_SAMPLE_TEXTURE:
+     case GEO_NODE_ATTRIBUTE_VECTOR_ROTATE:
+     case GEO_NODE_LEGACY_ATTRIBUTE_CURVE_MAP:
+     case GEO_NODE_LEGACY_ATTRIBUTE_MAP_RANGE:
+     case GEO_NODE_LECAGY_ATTRIBUTE_CLAMP:
+     case GEO_NODE_LEGACY_ATTRIBUTE_VECTOR_MATH:
+     case GEO_NODE_LEGACY_ATTRIBUTE_COMBINE_XYZ:
+     case GEO_NODE_LEGACY_ATTRIBUTE_SEPARATE_XYZ:
+       return true;
+ 
+     /* Legacy: Replaced by field node depending on another geometry. */
+     case GEO_NODE_LEGACY_RAYCAST:
+     case GEO_NODE_LEGACY_ATTRIBUTE_TRANSFER:
+     case GEO_NODE_LEGACY_ATTRIBUTE_PROXIMITY:
+       return true;
+ 
+     /* Legacy: Simple selection attribute input. */
+     case GEO_NODE_LEGACY_MESH_TO_CURVE:
+     case GEO_NODE_LEGACY_POINT_SEPARATE:
+     case GEO_NODE_LEGACY_CURVE_SELECT_HANDLES:
+     case GEO_NODE_LEGACY_CURVE_SPLINE_TYPE:
+     case GEO_NODE_LEGACY_CURVE_REVERSE:
+     case GEO_NODE_LEGACY_MATERIAL_ASSIGN:
+     case GEO_NODE_LEGACY_CURVE_SET_HANDLES:
+       return true;
+ 
+     /* Legacy: More complex attribute inputs or outputs. */
+     case GEO_NODE_LEGACY_DELETE_GEOMETRY:    /* Needs field input, domain drop-down. */
+     case GEO_NODE_LEGACY_CURVE_SUBDIVIDE:    /* Needs field count input. */
+     case GEO_NODE_LEGACY_POINTS_TO_VOLUME:   /* Needs field radius input. */
+     case GEO_NODE_LEGACY_SELECT_BY_MATERIAL: /* Output anonymous attribute. */
+     case GEO_NODE_LEGACY_POINT_TRANSLATE:    /* Needs field inputs. */
+     case GEO_NODE_LEGACY_POINT_INSTANCE:     /* Needs field inputs. */
+     case GEO_NODE_LEGACY_POINT_DISTRIBUTE:   /* Needs field input, remove max for random mode. */
+     case GEO_NODE_LEGACY_ATTRIBUTE_CONVERT:  /* Attribute Capture, Store Attribute. */
+       return true;
+   }
+   return false;
+ }
+ 
+ static void version_geometry_nodes_change_legacy_names(bNodeTree *ntree)
+ {
+   LISTBASE_FOREACH (bNode *, node, &ntree->nodes) {
+     if (geometry_node_is_293_legacy(node->type)) {
+       if (strstr(node->idname, "Legacy")) {
+         /* Make sure we haven't changed this idname already, better safe than sorry. */
+         continue;
+       }
+ 
+       char temp_idname[sizeof(node->idname)];
+       BLI_strncpy(temp_idname, node->idname, sizeof(node->idname));
+ 
+       BLI_snprintf(node->idname,
+                    sizeof(node->idname),
+                    "GeometryNodeLegacy%s",
+                    temp_idname + strlen("GeometryNode"));
+     }
+   }
+ }
+ 
 +static void do_version_subsurface_methods(bNode *node)
 +{
 +  if (node->type == SH_NODE_SUBSURFACE_SCATTERING) {
 +    if (node->custom1 != SHD_SUBSURFACE_RANDOM_WALK) {
 +      node->custom1 = SHD_SUBSURFACE_RANDOM_WALK_FIXED_RADIUS;
 +    }
 +  }
 +  else if (node->type == SH_NODE_BSDF_PRINCIPLED) {
 +    if (node->custom2 != SHD_SUBSURFACE_RANDOM_WALK) {
 +      node->custom2 = SHD_SUBSURFACE_RANDOM_WALK_FIXED_RADIUS;
 +    }
 +  }
 +}
 +
  /* NOLINTNEXTLINE: readability-function-size */
  void blo_do_versions_300(FileData *fd, Library *UNUSED(lib), Main *bmain)
  {



More information about the Bf-blender-cvs mailing list