glTF importer: tweak vertex color import

- The first imported one is now set as the rendered one
- Color Attribute Node does no more specify the layer, so rendered one is used
This commit is contained in:
Julien Duroure 2022-10-21 18:41:06 +02:00
parent a1706bd0f0
commit cd2d9df925
3 changed files with 6 additions and 2 deletions

View File

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

View File

@ -305,6 +305,10 @@ def do_primitives(gltf, mesh_idx, skin_idx, mesh, ob):
mesh.color_attributes[layer.name].data.foreach_set('color', squish(loop_cols[col_i]))
# Make sure the first Vertex Color Attribute is the rendered one
if num_cols > 0:
mesh.color_attributes.render_color_index = 0
# Skinning
# TODO: this is slow :/
if num_joint_sets and mesh_options.skinning:

View File

@ -440,7 +440,7 @@ def base_color(
# Vertex Color
if mh.vertex_color:
node = mh.node_tree.nodes.new('ShaderNodeVertexColor')
node.layer_name = 'Col'
# Do not set the layer name, so rendered one will be used (At import => The first one)
node.location = x - 250, y - 240
# Outputs
mh.node_tree.links.new(vcolor_color_socket, node.outputs['Color'])