Commit: aa20e7b88f02544458467868423f48e878034e52
Author: Geraldine Chua
Date:   Fri Aug 10 13:27:40 2018 +0800
Branches: soc-2018-cycles-volumes
https://developer.blender.org/rBaa20e7b88f02544458467868423f48e878034e52

Merge remote-tracking branch 'origin/blender2.8' into soc-2018-cycles-volumes

===================================================================



===================================================================

diff --cc intern/cycles/blender/addon/properties.py
index 1b911747899,7f0cb7e875f..54b02a62682
--- a/intern/cycles/blender/addon/properties.py
+++ b/intern/cycles/blender/addon/properties.py
@@@ -1070,75 -1073,68 +1073,74 @@@ class CyclesObjectSettings(bpy.types.Pr
      @classmethod
      def register(cls):
          bpy.types.Object.cycles = PointerProperty(
-                 name="Cycles Object Settings",
-                 description="Cycles object settings",
-                 type=cls,
-                 )
+             name="Cycles Object Settings",
+             description="Cycles object settings",
+             type=cls,
+         )
  
          cls.use_motion_blur = BoolProperty(
-                 name="Use Motion Blur",
-                 description="Use motion blur for this object",
-                 default=True,
-                 )
+             name="Use Motion Blur",
+             description="Use motion blur for this object",
+             default=True,
+         )
  
          cls.use_deform_motion = BoolProperty(
-                 name="Use Deformation Motion",
-                 description="Use deformation motion blur for this object",
-                 default=True,
-                 )
+             name="Use Deformation Motion",
+             description="Use deformation motion blur for this object",
+             default=True,
+         )
  
 +        cls.use_volume_motion = BoolProperty(
-                 name="Use Volume Motion",
-                 description="Use volume motion blur for this object",
-                 default=False,
-                 )
++            name="Use Volume Motion",
++            description="Use volume motion blur for this object",
++            default=False,
++        )
 +
          cls.motion_steps = IntProperty(
-                 name="Motion Steps",
-                 description="Control accuracy of motion blur, more steps 
gives more memory usage (actual number of steps is 2^(steps - 1))",
-                 min=1, soft_max=8,
-                 default=1,
-                 )
+             name="Motion Steps",
+             description="Control accuracy of motion blur, more steps gives 
more memory usage (actual number of steps is 2^(steps - 1))",
+             min=1, soft_max=8,
+             default=1,
+         )
  
          cls.use_camera_cull = BoolProperty(
-                 name="Use Camera Cull",
-                 description="Allow this object and its duplicators to be 
culled by camera space culling",
-                 default=False,
-                 )
+             name="Use Camera Cull",
+             description="Allow this object and its duplicators to be culled 
by camera space culling",
+             default=False,
+         )
  
          cls.use_distance_cull = BoolProperty(
-                 name="Use Distance Cull",
-                 description="Allow this object and its duplicators to be 
culled by distance from camera",
-                 default=False,
-                 )
+             name="Use Distance Cull",
+             description="Allow this object and its duplicators to be culled 
by distance from camera",
+             default=False,
+         )
  
          cls.use_adaptive_subdivision = BoolProperty(
-                 name="Use Adaptive Subdivision",
-                 description="Use adaptive render time subdivision",
-                 default=False,
-                 )
+             name="Use Adaptive Subdivision",
+             description="Use adaptive render time subdivision",
+             default=False,
+         )
  
          cls.dicing_rate = FloatProperty(
-                 name="Dicing Scale",
-                 description="Multiplier for scene dicing rate (located in the 
Geometry Panel)",
-                 min=0.1, max=1000.0, soft_min=0.5,
-                 default=1.0,
-                 )
+             name="Dicing Scale",
+             description="Multiplier for scene dicing rate (located in the 
Geometry Panel)",
+             min=0.1, max=1000.0, soft_min=0.5,
+             default=1.0,
+         )
  
          cls.is_shadow_catcher = BoolProperty(
-                 name="Shadow Catcher",
-                 description="Only render shadows on this object, for 
compositing renders into real footage",
-                 default=False,
-                 )
+             name="Shadow Catcher",
+             description="Only render shadows on this object, for compositing 
renders into real footage",
+             default=False,
+         )
  
          cls.is_holdout = BoolProperty(
-                 name="Holdout",
-                 description="Render objects as a holdout or matte, creating a 
"
-                             "hole in the image with zero alpha, to fill out 
in "
-                             "compositing with real footange or another 
render",
-                 default=False,
-                 )
- 
+             name="Holdout",
+             description="Render objects as a holdout or matte, creating a "
+             "hole in the image with zero alpha, to fill out in "
+             "compositing with real footange or another render",
+             default=False,
+         )
  
      @classmethod
      def unregister(cls):
diff --cc intern/cycles/blender/blender_mesh.cpp
index 0281ef0a249,8a6480a9a42..e8b181be106
--- a/intern/cycles/blender/blender_mesh.cpp
+++ b/intern/cycles/blender/blender_mesh.cpp
@@@ -324,39 -324,35 +324,40 @@@ static void mikk_compute_tangents(cons
  
  /* Create Volume Attribute */
  
 -static void create_mesh_volume_attribute(BL::Object& b_ob,
 -                                         Mesh *mesh,
 +static void create_mesh_volume_attribute(Mesh *mesh,
                                           ImageManager *image_manager,
                                           AttributeStandard std,
 +                                         string filename,
 +                                         void *builtin_data,
                                           float frame)
  {
 -      BL::SmokeDomainSettings b_domain = object_smoke_domain_find(b_ob);
 -
 -      if(!b_domain)
 -              return;
 -
 -      mesh->volume_isovalue = b_domain.clipping();
 +      ImageMetaData metadata;
- 
++      string grid_name;
 +      if(filename.empty()) {
 +              /* Built-in smoke. */
 +              filename = Attribute::standard_name(std);
 +      }
 +      else {
 +              /* External VDB. */
-               metadata.grid_name = Attribute::standard_name(std);
++              grid_name = Attribute::standard_name(std);
 +      }
  
        Attribute *attr = mesh->attributes.add(std);
        VoxelAttribute *volume_data = attr->data_voxel();
  
        volume_data->manager = image_manager;
        volume_data->slot = image_manager->add_image(
 -              Attribute::standard_name(std),
 -              b_ob.ptr.data,
 -              animated,
 -              frame,
 -              INTERPOLATION_LINEAR,
 -              EXTENSION_CLIP,
 -              use_alpha,
 -              metadata);
 +                      filename,
++              grid_name,
 +                      builtin_data,
 +                      false,
 +                      frame,
 +                      INTERPOLATION_LINEAR,
 +                      EXTENSION_CLIP,
 +                      true,
 +                      true,
-                       mesh->volume_isovalue,
++              mesh->volume_isovalue,
 +                      metadata);
  }
  
  static void create_mesh_volume_attributes(Scene *scene,
@@@ -366,38 -361,18 +367,40 @@@
                                            float frame)
  {
        /* for smoke volume rendering */
 +      BL::SmokeDomainSettings b_domain = object_smoke_domain_find(b_ob);
 +
 +      if(!b_domain)
 +              return;
 +
 +      string filename;
 +      void *builtin_data = NULL;
 +
 +      if(volume_get_frame_file(b_data, b_ob, b_domain, (int)frame, filename)) 
{
++#ifdef WITH_OPENVDB
 +              if(string_endswith(filename, ".vdb")) {
 +                      init_openvdb_in_scene(scene->params.intialized_openvdb);
 +              }
++#endif
 +      }
 +      else {
 +              filename = string();
 +              builtin_data = b_ob.ptr.data;
 +      }
 +
 +      mesh->volume_isovalue = b_domain.clipping();
 +
        if(mesh->need_attribute(scene, ATTR_STD_VOLUME_DENSITY))
 -              create_mesh_volume_attribute(b_ob, mesh, scene->image_manager, 
ATTR_STD_VOLUME_DENSITY, frame);
 +              create_mesh_volume_attribute(mesh, scene->image_manager, 
ATTR_STD_VOLUME_DENSITY, filename, builtin_data, frame);
        if(mesh->need_attribute(scene, ATTR_STD_VOLUME_COLOR))
 -              create_mesh_volume_attribute(b_ob, mesh, scene->image_manager, 
ATTR_STD_VOLUME_COLOR, frame);
 +              create_mesh_volume_attribute(mesh, scene->image_manager, 
ATTR_STD_VOLUME_COLOR, filename, builtin_data, frame);
        if(mesh->need_attribute(scene, ATTR_STD_VOLUME_FLAME))
 -              create_mesh_volume_attribute(b_ob, mesh, scene->image_manager, 
ATTR_STD_VOLUME_FLAME, frame);
 +              create_mesh_volume_attribute(mesh, scene->image_manager, 
ATTR_STD_VOLUME_FLAME, filename, builtin_data, frame);
        if(mesh->need_attribute(scene, ATTR_STD_VOLUME_HEAT))
 -              create_mesh_volume_attribute(b_ob, mesh, scene->image_manager, 
ATTR_STD_VOLUME_HEAT, frame);
 +              create_mesh_volume_attribute(mesh, scene->image_manager, 
ATTR_STD_VOLUME_HEAT, filename, builtin_data, frame);
        if(mesh->need_attribute(scene, ATTR_STD_VOLUME_TEMPERATURE))
 -              create_mesh_volume_attribute(b_ob, mesh, scene->image_manager, 
ATTR_STD_VOLUME_TEMPERATURE, frame);
 -      if(mesh->need_attribute(scene, ATTR_STD_VOLUME_VELOCITY))
 -              create_mesh_volume_attribute(b_ob, mesh, scene->image_manager, 
ATTR_STD_VOLUME_VELOCITY, frame);
 +              create_mesh_volume_attribute(mesh, scene->image_manager, 
ATTR_STD_VOLUME_TEMPERATURE, filename, builtin_data, frame);
 +      if(mesh->need_attribute(scene, ATTR_STD_VOLUME_VELOCITY) || 
mesh->use_volume_motion_blur)
 +              create_mesh_volume_attribute(mesh, scene->image_manager, 
ATTR_STD_VOLUME_VELOCITY, filename, builtin_data, frame);
  }
  
  /* Create vertex color attributes. */
@@@ -1225,16 -1186,12 +1214,12 @@@ Mesh *BlenderSync::sync_mesh(BL::Depsgr
                                else
                                        create_mesh(scene, mesh, b_mesh, 
used_shaders, false);
  
 -                              create_mesh_volume_attributes(scene, b_ob, 
mesh, b_scene.frame_current());
 +                              create_mesh_volume_attributes(scene, b_data, 
b_ob, mesh, b_scene.frame_current());
                        }
  
-                       if(render_layer.use_hair && mesh->subdivision_type == 
Mesh::SUBDIVISION_NONE)
+                       if(view_layer.use_hair && mesh->subdivision_type == 
Mesh::SUBDIVISION_NONE)
                                sync_curves(mesh, b_mesh, b_ob, false);
  
-                       if(can_free_caches) {
-                               b_ob.cache_release();
-                       }
- 
                        /* free derived mesh */

@@ Diff output truncated at 10240 characters. @@

_______________________________________________
Bf-blender-cvs mailing list
[email protected]
https://lists.blender.org/mailman/listinfo/bf-blender-cvs

Reply via email to