[Bf-extensions-cvs] [3fc5b82] master: Fix T43954: New FBX Importer resets UVs of imported model.
Bastien Montagne
noreply at git.blender.org
Tue Mar 10 19:44:36 CET 2015
Commit: 3fc5b82c6bdba2f9c954fbf497621b9bb794a1bc
Author: Bastien Montagne
Date: Tue Mar 10 19:42:22 2015 +0100
Branches: master
https://developer.blender.org/rBA3fc5b82c6bdba2f9c954fbf497621b9bb794a1bc
Fix T43954: New FBX Importer resets UVs of imported model.
Pretty stupid, UV/VCols were passed as a copied list instead of direct blend data.
Not sure there was a reason for that, but now it was seriously conflicting with
new advanced behavior of that code (to allow complex per vert/face/loop normal import
into clnors)...
===================================================================
M io_scene_fbx/import_fbx.py
===================================================================
diff --git a/io_scene_fbx/import_fbx.py b/io_scene_fbx/import_fbx.py
index bee5c0e..dbf64ee 100644
--- a/io_scene_fbx/import_fbx.py
+++ b/io_scene_fbx/import_fbx.py
@@ -719,38 +719,38 @@ def blen_read_geom_array_setattr(generator, blen_data, blen_attr, fbx_data, stri
if xform is not None:
if isinstance(blen_data, list):
if item_size == 1:
- def _process(blend_data, blen_attr, xform, item_size, blen_idx, fbx_idx):
+ def _process(blend_data, blen_attr, fbx_data, xform, item_size, blen_idx, fbx_idx):
blen_data[blen_idx] = xform(fbx_data[fbx_idx])
else:
- def _process(blend_data, blen_attr, xform, item_size, blen_idx, fbx_idx):
+ def _process(blend_data, blen_attr, fbx_data, xform, item_size, blen_idx, fbx_idx):
blen_data[blen_idx] = xform(fbx_data[fbx_idx:fbx_idx + item_size])
else:
if item_size == 1:
- def _process(blend_data, blen_attr, xform, item_size, blen_idx, fbx_idx):
+ def _process(blend_data, blen_attr, fbx_data, xform, item_size, blen_idx, fbx_idx):
setattr(blen_data[blen_idx], blen_attr, xform(fbx_data[fbx_idx]))
else:
- def _process(blend_data, blen_attr, xform, item_size, blen_idx, fbx_idx):
+ def _process(blend_data, blen_attr, fbx_data, xform, item_size, blen_idx, fbx_idx):
setattr(blen_data[blen_idx], blen_attr, xform(fbx_data[fbx_idx:fbx_idx + item_size]))
else:
if isinstance(blen_data, list):
if item_size == 1:
- def _process(blend_data, blen_attr, xform, item_size, blen_idx, fbx_idx):
+ def _process(blend_data, blen_attr, fbx_data, xform, item_size, blen_idx, fbx_idx):
blen_data[blen_idx] = fbx_data[fbx_idx]
else:
- def _process(blend_data, blen_attr, xform, item_size, blen_idx, fbx_idx):
+ def _process(blend_data, blen_attr, fbx_data, xform, item_size, blen_idx, fbx_idx):
blen_data[blen_idx] = fbx_data[fbx_idx:fbx_idx + item_size]
else:
if item_size == 1:
- def _process(blend_data, blen_attr, xform, item_size, blen_idx, fbx_idx):
+ def _process(blend_data, blen_attr, fbx_data, xform, item_size, blen_idx, fbx_idx):
setattr(blen_data[blen_idx], blen_attr, fbx_data[fbx_idx])
else:
- def _process(blend_data, blen_attr, xform, item_size, blen_idx, fbx_idx):
+ def _process(blend_data, blen_attr, fbx_data, xform, item_size, blen_idx, fbx_idx):
setattr(blen_data[blen_idx], blen_attr, fbx_data[fbx_idx:fbx_idx + item_size])
for blen_idx, fbx_idx in generator:
if check_skip(blen_idx, fbx_idx):
continue
- _process(blen_data, blen_attr, xform, item_size, blen_idx, fbx_idx)
+ _process(blen_data, blen_attr, fbx_data, xform, item_size, blen_idx, fbx_idx)
# generic generators.
@@ -957,7 +957,7 @@ def blen_read_geom_layer_uv(fbx_obj, mesh):
uv_tex = mesh.uv_textures.new(name=fbx_layer_name)
uv_lay = mesh.uv_layers[-1]
- blen_data = uv_lay.data[:]
+ blen_data = uv_lay.data
# some valid files omit this data
if fbx_layer_data is None:
@@ -986,7 +986,7 @@ def blen_read_geom_layer_color(fbx_obj, mesh):
fbx_layer_index = elem_prop_first(elem_find_first(fbx_layer, b'ColorIndex'))
color_lay = mesh.vertex_colors.new(name=fbx_layer_name)
- blen_data = color_lay.data[:]
+ blen_data = color_lay.data
# some valid files omit this data
if fbx_layer_data is None:
More information about the Bf-extensions-cvs
mailing list