blender-v3.6-release #104623

Closed
Sebastian Sille wants to merge 20 commits from (deleted):blender-v3.6-release into main

When changing the target branch, be careful to rebase the branch in your fork to match. See documentation.
5 changed files with 521 additions and 212 deletions

View File

@ -16,7 +16,7 @@ import bpy
bl_info = { bl_info = {
"name": "Autodesk 3DS format", "name": "Autodesk 3DS format",
"author": "Bob Holcomb, Campbell Barton, Andreas Atteneder, Sebastian Schrand", "author": "Bob Holcomb, Campbell Barton, Andreas Atteneder, Sebastian Schrand",
"version": (2, 3, 4), "version": (2, 4, 1),
"blender": (3, 6, 0), "blender": (3, 6, 0),
"location": "File > Import-Export", "location": "File > Import-Export",
"description": "3DS Import/Export meshes, UVs, materials, textures, " "description": "3DS Import/Export meshes, UVs, materials, textures, "
@ -65,12 +65,12 @@ class Import3DS(bpy.types.Operator, ImportHelper):
"importing incorrectly", "importing incorrectly",
default=True, default=True,
) )
read_keyframe: bpy.props.BoolProperty( read_keyframe: BoolProperty(
name="Read Keyframe", name="Read Keyframe",
description="Read the keyframe data", description="Read the keyframe data",
default=True, default=True,
) )
use_world_matrix: bpy.props.BoolProperty( use_world_matrix: BoolProperty(
name="World Space", name="World Space",
description="Transform to matrix world", description="Transform to matrix world",
default=False, default=False,
@ -109,6 +109,11 @@ class Export3DS(bpy.types.Operator, ExportHelper):
description="Export selected objects only", description="Export selected objects only",
default=False, default=False,
) )
write_keyframe: BoolProperty(
name="Write Keyframe",
description="Write the keyframe data",
default=False,
)
def execute(self, context): def execute(self, context):
from . import export_3ds from . import export_3ds

File diff suppressed because it is too large Load Diff

View File

@ -4,7 +4,7 @@
bl_info = { bl_info = {
'name': 'glTF 2.0 format', 'name': 'glTF 2.0 format',
'author': 'Julien Duroure, Scurest, Norbert Nopper, Urs Hanselmann, Moritz Becher, Benjamin Schmithüsen, Jim Eckerlein, and many external contributors', 'author': 'Julien Duroure, Scurest, Norbert Nopper, Urs Hanselmann, Moritz Becher, Benjamin Schmithüsen, Jim Eckerlein, and many external contributors',
"version": (3, 6, 18), "version": (4, 0, 0),
'blender': (3, 5, 0), 'blender': (3, 5, 0),
'location': 'File > Import-Export', 'location': 'File > Import-Export',
'description': 'Import-Export as glTF 2.0', 'description': 'Import-Export as glTF 2.0',

View File

@ -1349,7 +1349,6 @@ class NWMergeNodes(Operator, NWBase):
if tree_type == 'COMPOSITING': if tree_type == 'COMPOSITING':
first = 1 first = 1
second = 2 second = 2
add.width_hidden = 100.0
elif nodes_list == selected_math: elif nodes_list == selected_math:
add_type = node_type + 'Math' add_type = node_type + 'Math'
add = nodes.new(add_type) add = nodes.new(add_type)
@ -1359,7 +1358,6 @@ class NWMergeNodes(Operator, NWBase):
loc_y = loc_y - 50 loc_y = loc_y - 50
first = 0 first = 0
second = 1 second = 1
add.width_hidden = 100.0
elif nodes_list == selected_shader: elif nodes_list == selected_shader:
if mode == 'MIX': if mode == 'MIX':
add_type = node_type + 'MixShader' add_type = node_type + 'MixShader'
@ -1369,7 +1367,6 @@ class NWMergeNodes(Operator, NWBase):
loc_y = loc_y - 50 loc_y = loc_y - 50
first = 1 first = 1
second = 2 second = 2
add.width_hidden = 100.0
elif mode == 'ADD': elif mode == 'ADD':
add_type = node_type + 'AddShader' add_type = node_type + 'AddShader'
add = nodes.new(add_type) add = nodes.new(add_type)
@ -1378,7 +1375,6 @@ class NWMergeNodes(Operator, NWBase):
loc_y = loc_y - 50 loc_y = loc_y - 50
first = 0 first = 0
second = 1 second = 1
add.width_hidden = 100.0
elif nodes_list == selected_geometry: elif nodes_list == selected_geometry:
if mode in ('JOIN', 'MIX'): if mode in ('JOIN', 'MIX'):
add_type = node_type + 'JoinGeometry' add_type = node_type + 'JoinGeometry'
@ -1401,7 +1397,6 @@ class NWMergeNodes(Operator, NWBase):
loc_y = loc_y - 50 loc_y = loc_y - 50
first = 0 first = 0
second = 1 second = 1
add.width_hidden = 100.0
elif nodes_list == selected_z: elif nodes_list == selected_z:
add = nodes.new('CompositorNodeZcombine') add = nodes.new('CompositorNodeZcombine')
add.show_preview = False add.show_preview = False
@ -1410,7 +1405,6 @@ class NWMergeNodes(Operator, NWBase):
loc_y = loc_y - 50 loc_y = loc_y - 50
first = 0 first = 0
second = 2 second = 2
add.width_hidden = 100.0
elif nodes_list == selected_alphaover: elif nodes_list == selected_alphaover:
add = nodes.new('CompositorNodeAlphaOver') add = nodes.new('CompositorNodeAlphaOver')
add.show_preview = False add.show_preview = False
@ -1419,7 +1413,6 @@ class NWMergeNodes(Operator, NWBase):
loc_y = loc_y - 50 loc_y = loc_y - 50
first = 1 first = 1
second = 2 second = 2
add.width_hidden = 100.0
add.location = loc_x, loc_y add.location = loc_x, loc_y
loc_y += offset_y loc_y += offset_y
add.select = True add.select = True
@ -2184,7 +2177,6 @@ class NWAddReroutes(Operator, NWBase):
# unhide 'REROUTE' nodes to avoid issues with location.y # unhide 'REROUTE' nodes to avoid issues with location.y
if node.type == 'REROUTE': if node.type == 'REROUTE':
node.hide = False node.hide = False
# When node is hidden - width_hidden not usable.
# Hack needed to calculate real width # Hack needed to calculate real width
if node.hide: if node.hide:
bpy.ops.node.select_all(action='DESELECT') bpy.ops.node.select_all(action='DESELECT')
@ -2726,7 +2718,6 @@ class NWAddMultipleImages(Operator, NWBase, ImportHelper):
new_nodes.append(node) new_nodes.append(node)
node.label = fname node.label = fname
node.hide = True node.hide = True
node.width_hidden = 100
node.location.x = xloc node.location.x = xloc
node.location.y = yloc node.location.y = yloc
yloc -= 40 yloc -= 40

View File

@ -308,11 +308,16 @@ def CreateBevel(context, CurrentObject):
bpy.ops.object.mode_set(mode='OBJECT') bpy.ops.object.mode_set(mode='OBJECT')
CurrentObject.data.use_customdata_edge_bevel = True bevel_weights = CurrentObject.data.attributes["bevel_weight_edge"]
if not bevel_weights:
bevel_weights = CurrentObject.data.attributes.new("bevel_weight_edge", 'FLOAT', 'EDGE')
if bevel_weights.data_type != 'FLOAT' or bevel_weights.domain != 'EDGE':
bevel_weights = None
for i in range(len(CurrentObject.data.edges)): for i in range(len(CurrentObject.data.edges)):
if CurrentObject.data.edges[i].select is True: if CurrentObject.data.edges[i].select is True:
CurrentObject.data.edges[i].bevel_weight = 1.0 if bevel_weights:
bevel_weights.data[i] = 1.0
CurrentObject.data.edges[i].use_edge_sharp = True CurrentObject.data.edges[i].use_edge_sharp = True
bevel_modifier = False bevel_modifier = False