[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