Skip adding color attributes when unneeded
This is a very small change to skip adding the vertex colours to the Blender mesh if no segment of the geometry being loaded has vertex colours.
This commit is contained in:
parent
13a6511f23
commit
ceb8cd79c3
@ -163,6 +163,7 @@ def model_to_mesh(model: Model, scene: Scene, materials_map : Dict[str, bpy.type
|
|||||||
|
|
||||||
|
|
||||||
if model.geometry:
|
if model.geometry:
|
||||||
|
geometry_has_colors = any(segment.colors for segment in model.geometry)
|
||||||
|
|
||||||
for segment in model.geometry:
|
for segment in model.geometry:
|
||||||
|
|
||||||
@ -183,7 +184,7 @@ def model_to_mesh(model: Model, scene: Scene, materials_map : Dict[str, bpy.type
|
|||||||
|
|
||||||
if segment.colors:
|
if segment.colors:
|
||||||
vertex_colors.extend(segment.colors)
|
vertex_colors.extend(segment.colors)
|
||||||
else:
|
elif geometry_has_colors:
|
||||||
[vertex_colors.extend([0.0, 0.0, 0.0, 1.0]) for _ in range(len(segment.positions))]
|
[vertex_colors.extend([0.0, 0.0, 0.0, 1.0]) for _ in range(len(segment.positions))]
|
||||||
|
|
||||||
if segment.weights:
|
if segment.weights:
|
||||||
@ -239,6 +240,7 @@ def model_to_mesh(model: Model, scene: Scene, materials_map : Dict[str, bpy.type
|
|||||||
blender_mesh.uv_layers[0].data.foreach_set("uv", [component for i in flat_indices for component in vertex_uvs[i]])
|
blender_mesh.uv_layers[0].data.foreach_set("uv", [component for i in flat_indices for component in vertex_uvs[i]])
|
||||||
|
|
||||||
# Colors
|
# Colors
|
||||||
|
if geometry_has_colors:
|
||||||
blender_mesh.color_attributes.new("COLOR0", "FLOAT_COLOR", "POINT")
|
blender_mesh.color_attributes.new("COLOR0", "FLOAT_COLOR", "POINT")
|
||||||
blender_mesh.color_attributes[0].data.foreach_set("color", vertex_colors)
|
blender_mesh.color_attributes[0].data.foreach_set("color", vertex_colors)
|
||||||
|
|
||||||
|
Loading…
Reference in New Issue
Block a user