Hi! I'm curious about why is Ray Visibility an ob level set of options
instead of material or even closure level? or should we use Light
Paths for that?

cheers

Daniel Salazar
3Developer.com



On Thu, Sep 1, 2011 at 9:53 AM, Brecht Van Lommel
<brechtvanlom...@pandora.be> wrote:
> Revision: 39844
>          
> http://projects.blender.org/scm/viewvc.php?view=rev&root=bf-blender&revision=39844
> Author:   blendix
> Date:     2011-09-01 15:53:36 +0000 (Thu, 01 Sep 2011)
> Log Message:
> -----------
> Cycles:
> * Add max diffuse/glossy/transmission bounces
> * Add separate min/max for transparent depth
> * Updated/added some presets that use these options
> * Add ray visibility options for objects, to hide them from
>  camera/diffuse/glossy/transmission/shadow rays
> * Is singular ray output for light path node
>
> Details here:
> http://wiki.blender.org/index.php/Dev:2.5/Source/Render/Cycles/LightPaths
>
> Modified Paths:
> --------------
>    branches/cycles/intern/cycles/app/cycles_xml.cpp
>    branches/cycles/intern/cycles/blender/addon/presets.py
>    branches/cycles/intern/cycles/blender/addon/properties.py
>    branches/cycles/intern/cycles/blender/addon/ui.py
>    branches/cycles/intern/cycles/blender/blender_object.cpp
>    branches/cycles/intern/cycles/blender/blender_shader.cpp
>    branches/cycles/intern/cycles/blender/blender_sync.cpp
>    branches/cycles/intern/cycles/bvh/bvh.cpp
>    branches/cycles/intern/cycles/bvh/bvh.h
>    branches/cycles/intern/cycles/bvh/bvh_build.cpp
>    branches/cycles/intern/cycles/bvh/bvh_node.h
>    branches/cycles/intern/cycles/kernel/kernel.cpp
>    branches/cycles/intern/cycles/kernel/kernel_bvh.h
>    branches/cycles/intern/cycles/kernel/kernel_path.h
>    branches/cycles/intern/cycles/kernel/kernel_textures.h
>    branches/cycles/intern/cycles/kernel/kernel_types.h
>    branches/cycles/intern/cycles/kernel/osl/nodes/node_light_path.osl
>    branches/cycles/intern/cycles/kernel/osl/osl_shader.cpp
>    branches/cycles/intern/cycles/kernel/svm/bsdf_transparent.h
>    branches/cycles/intern/cycles/kernel/svm/svm_light_path.h
>    branches/cycles/intern/cycles/kernel/svm/svm_noise.h
>    branches/cycles/intern/cycles/kernel/svm/svm_texture.h
>    branches/cycles/intern/cycles/kernel/svm/svm_types.h
>    branches/cycles/intern/cycles/render/integrator.cpp
>    branches/cycles/intern/cycles/render/integrator.h
>    branches/cycles/intern/cycles/render/mesh.cpp
>    branches/cycles/intern/cycles/render/nodes.cpp
>    branches/cycles/intern/cycles/render/object.cpp
>    branches/cycles/intern/cycles/render/object.h
>    branches/cycles/intern/cycles/render/scene.h
>    branches/cycles/release/scripts/presets/cycles/integrator/direct_light.py
>    branches/cycles/source/blender/nodes/intern/SHD_nodes/SHD_bsdf_glass.c
>    branches/cycles/source/blender/nodes/intern/SHD_nodes/SHD_light_path.c
>
> Added Paths:
> -----------
>    
> branches/cycles/release/scripts/presets/cycles/integrator/full_global_illumination.py
>    
> branches/cycles/release/scripts/presets/cycles/integrator/limited_global_illumination.py
>
> Modified: branches/cycles/intern/cycles/app/cycles_xml.cpp
> ===================================================================
> --- branches/cycles/intern/cycles/app/cycles_xml.cpp    2011-09-01 15:08:32 
> UTC (rev 39843)
> +++ branches/cycles/intern/cycles/app/cycles_xml.cpp    2011-09-01 15:53:36 
> UTC (rev 39844)
> @@ -255,8 +255,8 @@
>  {
>        Integrator *integrator = state.scene->integrator;
>
> -       xml_read_int(&integrator->minbounce, node, "min_bounce");
> -       xml_read_int(&integrator->maxbounce, node, "max_bounce");
> +       xml_read_int(&integrator->min_bounce, node, "min_bounce");
> +       xml_read_int(&integrator->max_bounce, node, "max_bounce");
>        xml_read_bool(&integrator->no_caustics, node, "no_caustics");
>        xml_read_float(&integrator->blur_caustics, node, "blur_caustics");
>  }
>
> Modified: branches/cycles/intern/cycles/blender/addon/presets.py
> ===================================================================
> --- branches/cycles/intern/cycles/blender/addon/presets.py      2011-09-01 
> 15:08:32 UTC (rev 39843)
> +++ branches/cycles/intern/cycles/blender/addon/presets.py      2011-09-01 
> 15:53:36 UTC (rev 39844)
> @@ -33,6 +33,11 @@
>         "cycles.max_bounces",
>         "cycles.min_bounces",
>         "cycles.no_caustics",
> +        "cycles.diffuse_bounces",
> +        "cycles.glossy_bounces",
> +        "cycles.transmission_bounces",
> +        "cycles.transparent_min_bounces",
> +        "cycles.transparent_max_bounces"
>     ]
>
>     preset_subdir = "cycles/integrator"
>
> Modified: branches/cycles/intern/cycles/blender/addon/properties.py
> ===================================================================
> --- branches/cycles/intern/cycles/blender/addon/properties.py   2011-09-01 
> 15:08:32 UTC (rev 39843)
> +++ branches/cycles/intern/cycles/blender/addon/properties.py   2011-09-01 
> 15:53:36 UTC (rev 39844)
> @@ -24,7 +24,7 @@
>  class CyclesRenderSettings(bpy.types.PropertyGroup):
>     @classmethod
>     def register(cls):
> -        bpy.types.Scene.cycles = PointerProperty(type=cls, name="Cycles 
> Render Settings", description="Cycles Render Settings")
> +        bpy.types.Scene.cycles = PointerProperty(type=cls, name="Cycles 
> Render Settings", description="Cycles render settings")
>
>         cls.device = EnumProperty(name="Device", description="Device to use 
> for rendering",
>             items=enums.devices, default="CPU")
> @@ -39,18 +39,31 @@
>         cls.preview_pause = BoolProperty(name="Pause Preview", 
> description="Pause all viewport preview renders",
>             default=False)
>
> -        cls.min_bounces = IntProperty(name="Min Bounces", 
> description="Minimum number of bounces",
> -            default=3, min=0, max=1024)
> -        cls.max_bounces = IntProperty(name="Max Bounces", 
> description="Maximum number of bounces",
> -            default=8, min=0, max=1024)
>         cls.no_caustics = BoolProperty(name="No Caustics", description="Leave 
> out caustics, resulting in a darker image with less noise",
>             default=False)
>         cls.blur_caustics = FloatProperty(name="Blur Caustics", 
> description="Blur caustics to reduce noise",
>             default=0.0, min=0.0, max=1.0)
>
> -        cls.exposure = FloatProperty(name="Exposure", description="Image 
> brightness scale",
> +        cls.min_bounces = IntProperty(name="Min Bounces", 
> description="Minimum number of bounces, setting this lower than the maximum 
> enables probalistic path termination (faster but noisier)",
> +            default=3, min=0, max=1024)
> +        cls.max_bounces = IntProperty(name="Max Bounces", description="Total 
> maximum number of bounces",
> +            default=8, min=0, max=1024)
> +
> +        cls.diffuse_bounces = IntProperty(name="Diffuse Bounces", 
> description="Maximum number of diffuse reflection bounces, bounded by total 
> maximum",
> +            default=1024, min=0, max=1024)
> +        cls.glossy_bounces = IntProperty(name="Glossy Bounces", 
> description="Maximum number of glossy reflection bounces, bounded by total 
> maximum",
> +            default=1024, min=0, max=1024)
> +        cls.transmission_bounces = IntProperty(name="Transmission Bounces", 
> description="Maximum number of transmission bounces, bounded by total 
> maximum",
> +            default=1024, min=0, max=1024)
> +
> +        cls.transparent_min_bounces = IntProperty(name="Transparent Min 
> Bounces", description="Minimum number of transparent bounces, setting this 
> lower than the maximum enables probalistic path termination (faster but 
> noisier)",
> +            default=8, min=0, max=1024)
> +        cls.transparent_max_bounces = IntProperty(name="Transparent Max 
> Bounces", description="Maximum number of transparent bounces",
> +            default=8, min=0, max=1024)
> +
> +        cls.film_exposure = FloatProperty(name="Exposure", 
> description="Image brightness scale",
>             default=1.0, min=0.0, max=10.0)
> -        cls.transparent = BoolProperty(name="Transparent", 
> description="World background is transparent",
> +        cls.film_transparent = BoolProperty(name="Transparent", 
> description="World background is transparent",
>             default=False)
>
>         cls.filter_type = EnumProperty(name="Filter Type", description="Pixel 
> filter type",
> @@ -81,7 +94,7 @@
>  class CyclesCameraSettings(bpy.types.PropertyGroup):
>     @classmethod
>     def register(cls):
> -        bpy.types.Camera.cycles = PointerProperty(type=cls, name="Cycles 
> Camera Settings", description="Cycles Camera Settings")
> +        bpy.types.Camera.cycles = PointerProperty(type=cls, name="Cycles 
> Camera Settings", description="Cycles camera settings")
>
>         cls.lens_radius = FloatProperty(name="Lens radius", description="Lens 
> radius for depth of field",
>             default=0.0, min=0.0, max=10.0)
> @@ -93,7 +106,7 @@
>  class CyclesMaterialSettings(bpy.types.PropertyGroup):
>     @classmethod
>     def register(cls):
> -        bpy.types.Material.cycles = PointerProperty(type=cls, name="Cycles 
> Material Settings", description="Cycles Material Settings")
> +        bpy.types.Material.cycles = PointerProperty(type=cls, name="Cycles 
> Material Settings", description="Cycles material settings")
>
>     @classmethod
>     def unregister(cls):
> @@ -102,18 +115,33 @@
>  class CyclesWorldSettings(bpy.types.PropertyGroup):
>     @classmethod
>     def register(cls):
> -        bpy.types.World.cycles = PointerProperty(type=cls, name="Cycles 
> World Settings", description="Cycles World Settings")
> +        bpy.types.World.cycles = PointerProperty(type=cls, name="Cycles 
> World Settings", description="Cycles world settings")
>
>     @classmethod
>     def unregister(cls):
>         del bpy.types.World.cycles
>
> +class CyclesVisibilitySettings(bpy.types.PropertyGroup):
> +    @classmethod
> +    def register(cls):
> +        bpy.types.Object.cycles_visibility = PointerProperty(type=cls, 
> name="Cycles Visibility Settings", description="Cycles visibility settings")
> +
> +        cls.camera = BoolProperty(name="Camera", description="Object 
> visibility for camera rays", default=True)
> +        cls.diffuse = BoolProperty(name="Diffuse", description="Object 
> visibility for diffuse reflection rays", default=True)
> +        cls.glossy = BoolProperty(name="Glossy", description="Object 
> visibility for glossy reflection rays", default=True)
> +        cls.transmission = BoolProperty(name="Transmission", 
> description="Object visibility for transmission rays", default=True)
> +        cls.shadow = BoolProperty(name="Shadow", description="Object 
> visibility for shadow rays", default=True)
> +
> +    @classmethod
> +    def unregister(cls):
> +        del bpy.types.Object.cycles_visibility
> +
>  class CyclesMeshSettings(bpy.types.PropertyGroup):
>     @classmethod
>     def register(cls):
> -        bpy.types.Mesh.cycles = PointerProperty(type=cls, name="Cycles Mesh 
> Settings", description="Cycles Mesh Settings")
> -        bpy.types.Curve.cycles = PointerProperty(type=cls, name="Cycles Mesh 
> Settings", description="Cycles Mesh Settings")
> -        bpy.types.MetaBall.cycles = PointerProperty(type=cls, name="Cycles 
> Mesh Settings", description="Cycles Mesh Settings")
> +        bpy.types.Mesh.cycles = PointerProperty(type=cls, name="Cycles Mesh 
> Settings", description="Cycles mesh settings")
> +        bpy.types.Curve.cycles = PointerProperty(type=cls, name="Cycles Mesh 
> Settings", description="Cycles mesh settings")
> +        bpy.types.MetaBall.cycles = PointerProperty(type=cls, name="Cycles 
> Mesh Settings", description="Cycles mesh settings")
>
>         cls.displacement_method = EnumProperty(name="Displacement Method", 
> description="Method to use for the displacement",
>             items=enums.displacement_methods, default="BUMP")
> @@ -124,12 +152,15 @@
>     @classmethod
>     def unregister(cls):
>         del bpy.types.Mesh.cycles
> +        del bpy.types.Curve.cycles
> +        del bpy.types.MetaBall.cycles
>
>  def register():
>     bpy.utils.register_class(CyclesRenderSettings)
>     bpy.utils.register_class(CyclesCameraSettings)
>     bpy.utils.register_class(CyclesMaterialSettings)
>     bpy.utils.register_class(CyclesWorldSettings)
> +    bpy.utils.register_class(CyclesVisibilitySettings)
>     bpy.utils.register_class(CyclesMeshSettings)
>
>  def unregister():
> @@ -138,4 +169,5 @@
>     bpy.utils.unregister_class(CyclesMaterialSettings)
>     bpy.utils.unregister_class(CyclesWorldSettings)
>     bpy.utils.unregister_class(CyclesMeshSettings)
> +    bpy.utils.unregister_class(CyclesVisibilitySettings)
>
>
> Modified: branches/cycles/intern/cycles/blender/addon/ui.py
> ===================================================================
> --- branches/cycles/intern/cycles/blender/addon/ui.py   2011-09-01 15:08:32 
> UTC (rev 39843)
> +++ branches/cycles/intern/cycles/blender/addon/ui.py   2011-09-01 15:53:36 
> UTC (rev 39844)
> @@ -42,6 +42,7 @@
>
>  class CyclesRender_PT_integrator(CyclesButtonsPanel, Panel):
>     bl_label = "Integrator"
> +    bl_options = {'DEFAULT_CLOSED'}
>
>     def draw(self, context):
>         layout = self.layout
> @@ -58,15 +59,29 @@
>
>         col = split.column()
>         sub = col.column(align=True)
> -        sub.prop(cscene, "passes", text="Render Passes")
> -        sub.prop(cscene, "preview_passes")
> -        col.prop(cscene, "no_caustics")
> +        sub.label(text="Passes:")
> +        sub.prop(cscene, "passes", text="Render")
> +        sub.prop(cscene, "preview_passes", text="Preview")
>
> +        sub = col.column(align=True)
> +        sub.label("Tranparency:")
> +        sub.prop(cscene, "transparent_max_bounces", text="Max")
> +        sub.prop(cscene, "transparent_min_bounces", text="Min")
> +        sub.prop(cscene, "no_caustics")
> +
>         col = split.column()
> +
>
> @@ Diff output truncated at 10240 characters. @@
> _______________________________________________
> Bf-blender-cvs mailing list
> bf-blender-...@blender.org
> http://lists.blender.org/mailman/listinfo/bf-blender-cvs
>
_______________________________________________
Bf-committers mailing list
Bf-committers@blender.org
http://lists.blender.org/mailman/listinfo/bf-committers

Reply via email to