From 59625d6200584fe3b7fcaa95124f4cc8efe9cf61 Mon Sep 17 00:00:00 2001 From: Clemens Barth Date: Tue, 24 Dec 2019 15:50:33 +0100 Subject: Fix of an unreported error: "material.blend_method = 'ADD'" did not work anymore. We now use "material.blend_method = 'OPAQUE'" --- io_mesh_atomic/pdb_import.py | 3 ++- io_mesh_atomic/xyz_import.py | 31 ++++++++++++++++--------------- 2 files changed, 18 insertions(+), 16 deletions(-) diff --git a/io_mesh_atomic/pdb_import.py b/io_mesh_atomic/pdb_import.py index 815c9bc2..dc687c60 100644 --- a/io_mesh_atomic/pdb_import.py +++ b/io_mesh_atomic/pdb_import.py @@ -1352,10 +1352,11 @@ def import_pdb(Ball_type, # gets some additional preparation. The vacancy is represented # by a transparent cube. if atom.name == "Vacancy": + # Some properties for eevee. material.metallic = 0.8 material.specular_intensity = 0.5 material.roughness = 0.3 - material.blend_method = 'ADD' + material.blend_method = 'OPAQUE' material.show_transparent_back = False # Some properties for cycles material.use_nodes = True diff --git a/io_mesh_atomic/xyz_import.py b/io_mesh_atomic/xyz_import.py index 0daa07e7..270997f4 100644 --- a/io_mesh_atomic/xyz_import.py +++ b/io_mesh_atomic/xyz_import.py @@ -359,12 +359,12 @@ def rotate_object(rot_mat, obj): orig_loc_mat = Matrix.Translation(orig_loc) orig_rot_mat = orig_rot.to_matrix().to_4x4() - orig_scale_mat = (Matrix.Scale(orig_scale[0],4,(1,0,0)) @ - Matrix.Scale(orig_scale[1],4,(0,1,0)) @ + orig_scale_mat = (Matrix.Scale(orig_scale[0],4,(1,0,0)) @ + Matrix.Scale(orig_scale[1],4,(0,1,0)) @ Matrix.Scale(orig_scale[2],4,(0,0,1))) # Assemble the new matrix. - obj.matrix_world = orig_loc_mat @ rot_mat @ orig_rot_mat @ orig_scale_mat + obj.matrix_world = orig_loc_mat @ rot_mat @ orig_rot_mat @ orig_scale_mat # Function, which puts a camera and light source into the 3D scene @@ -411,8 +411,8 @@ def camera_light_source(use_camera, # camera position and view onto the object. bpy.ops.object.select_all(action='DESELECT') camera.select_set(True) - - # Rotate the camera around its axis 'object_camera_vec' by 90° such + + # Rotate the camera around its axis 'object_camera_vec' by 90° such # that we have a nice camera view onto the object. matrix_rotation = Matrix.Rotation(90/360*2*pi, 4, object_camera_vec) rotate_object(matrix_rotation, camera) @@ -503,10 +503,11 @@ def import_xyz(Ball_type, # However, before we check if it is a vacancy # The vacancy is represented by a transparent cube. if atom.name == "Vacancy": + # Some properties for eevee. material.metallic = 0.8 material.specular_intensity = 0.5 material.roughness = 0.3 - material.blend_method = 'ADD' + material.blend_method = 'OPAQUE' material.show_transparent_back = False # Some properties for cycles material.use_nodes = True @@ -514,7 +515,7 @@ def import_xyz(Ball_type, mat_P_BSDF.inputs['Metallic'].default_value = 0.1 mat_P_BSDF.inputs['Roughness'].default_value = 0.2 mat_P_BSDF.inputs['Transmission'].default_value = 0.97 - mat_P_BSDF.inputs['IOR'].default_value = 0.8 + mat_P_BSDF.inputs['IOR'].default_value = 0.8 # The atom gets its properties. atom.material = material @@ -608,11 +609,11 @@ def import_xyz(Ball_type, object_size = 0.0 object_size = max(object_size_vec).length - + # ------------------------------------------------------------------------ # COLLECTION - # Before we start to draw the atoms, we first create a collection for the + # Before we start to draw the atoms, we first create a collection for the # atomic structure. All atoms (balls) are put into this collection. coll_structure_name = os.path.basename(filepath_xyz) scene = bpy.context.scene @@ -636,21 +637,21 @@ def import_xyz(Ball_type, # the whole object is translated back to 'object_center_vec'. atom_vertices.append( atom.location - object_center_vec ) - # First, we create a collection of the element, which - # contains the atoms (balls + mesh)! + # First, we create a collection of the element, which + # contains the atoms (balls + mesh)! coll_element_name = atom.name # the element name # Create the new collection and ... coll_element = bpy.data.collections.new(coll_element_name) - # ... link it to the collection, which contains all parts of the + # ... link it to the collection, which contains all parts of the # structure. coll_structure.children.link(coll_element) - # Now, create a collection for the atoms, which includes the + # Now, create a collection for the atoms, which includes the # representative ball and the mesh. coll_atom_name = atom.name + "_atom" # Create the new collection and ... coll_atom = bpy.data.collections.new(coll_atom_name) - # ... link it to the collection, which contains all parts of the + # ... link it to the collection, which contains all parts of the # element (ball and mesh). coll_element.children.link(coll_atom) @@ -714,7 +715,7 @@ def import_xyz(Ball_type, coll_past = coll_all[0] else: coll_past = bpy.context.scene.collection - + # Put the atom into the new collection 'atom' and ... coll_atom.objects.link(ball) # ... unlink the atom from the other collection. -- cgit v1.2.3