[Bf-extensions-cvs] SVN commit: /data/svn/bf-extensions [4762] trunk/py/scripts/addons/ io_scene_fbx: fbx import cycles materials - set image mapping from diffuse for other channels that have no mapping set .
Campbell Barton
ideasman42 at gmail.com
Wed Sep 18 12:35:37 CEST 2013
Revision: 4762
http://projects.blender.org/scm/viewvc.php?view=rev&root=bf-extensions&revision=4762
Author: campbellbarton
Date: 2013-09-18 10:35:36 +0000 (Wed, 18 Sep 2013)
Log Message:
-----------
fbx import cycles materials - set image mapping from diffuse for other channels that have no mapping set.
Modified Paths:
--------------
trunk/py/scripts/addons/io_scene_fbx/cycles_shader_compat.py
trunk/py/scripts/addons/io_scene_fbx/import_fbx.py
Modified: trunk/py/scripts/addons/io_scene_fbx/cycles_shader_compat.py
===================================================================
--- trunk/py/scripts/addons/io_scene_fbx/cycles_shader_compat.py 2013-09-16 14:41:05 UTC (rev 4761)
+++ trunk/py/scripts/addons/io_scene_fbx/cycles_shader_compat.py 2013-09-18 10:35:36 UTC (rev 4762)
@@ -467,3 +467,50 @@
translation=None, rotation=None, scale=None):
return self._mapping_create_helper(
self.node_image_bump, self.node_texcoords.outputs[coords], translation, rotation, scale)
+
+ def mapping_set_from_diffuse(self,
+ specular=True,
+ hardness=True,
+ reflect=True,
+ alpha=True,
+ normal=True,
+ bump=True):
+ """
+ Set all mapping based on diffuse
+ (sometimes we want to assume default mapping follows diffuse).
+ """
+ # get mapping from diffuse
+ links = self.node_image_diff.inputs["Vector"].links
+ if not links:
+ return
+
+ mapping_out_socket = links[0].from_socket
+
+ tree = self.material.node_tree
+ links = tree.links
+
+ def node_image_mapping_apply(node_image_attr):
+ # ensure strings are valid attrs
+ assert(node_image_attr in self.__slots__)
+
+ node_image = getattr(self, node_image_attr, None)
+
+ if node_image is not None:
+ node_image_input_socket = node_image.inputs["Vector"]
+ # don't overwrite existing sockets
+ if not node_image_input_socket.links:
+ links.new(mapping_out_socket,
+ node_image_input_socket)
+
+ if specular:
+ node_image_mapping_apply("node_image_spec")
+ if hardness:
+ node_image_mapping_apply("node_image_hard")
+ if reflect:
+ node_image_mapping_apply("node_image_refl")
+ if alpha:
+ node_image_mapping_apply("node_image_alpha")
+ if normal:
+ node_image_mapping_apply("node_image_normalmap")
+ if bump:
+ node_image_mapping_apply("node_image_bump")
Modified: trunk/py/scripts/addons/io_scene_fbx/import_fbx.py
===================================================================
--- trunk/py/scripts/addons/io_scene_fbx/import_fbx.py 2013-09-16 14:41:05 UTC (rev 4761)
+++ trunk/py/scripts/addons/io_scene_fbx/import_fbx.py 2013-09-18 10:35:36 UTC (rev 4762)
@@ -1338,6 +1338,11 @@
mtex.use_map_alpha = True
mtex.alpha_factor = 1.0
+ # propagate mapping from diffuse to all other channels which have none defined.
+ if use_cycles:
+ ma_wrap = cycles_material_wrap_map[material]
+ ma_wrap.mapping_set_from_diffuse()
+
_(); del _
def _():
More information about the Bf-extensions-cvs
mailing list