[Bf-committers] [Bf-blender-cvs] SVN commit: /data/svn/bf-blender [39844] branches/cycles: Cycles:
Daniel Salazar - 3Developer.com
zanqdo at gmail.com
Fri Sep 9 00:07:54 CEST 2011
Gotcha, speed is a very good reason. Will try and write that
optimization wiki soon
cheers
Daniel Salazar
3Developer.com
On Thu, Sep 8, 2011 at 5:00 AM, Brecht Van Lommel
<brechtvanlommel at pandora.be> wrote:
> Hi,
>
> I've added a note about performance of ray visibility options.
>
> There's a few reasons it's useful on an object level, it works more
> like the existing restrict render setting, it can be used to control
> ray visibility of dupligroups, or to use a simplified object for
> indirect light rays. But also in terms of performance it's quicker to
> skip an entire object, especially if we ever add support for lazy
> loading of object geometry.
>
> I can also see a few reasons to have it at material level, but a
> shader node setup can be used for that, though it's less efficient.
>
> Brecht.
>
> On Thu, Sep 8, 2011 at 6:28 AM, Daniel Salazar - 3Developer.com
> <zanqdo at gmail.com> wrote:
>> Also, would be fantastic (and important for TDs!) to document on the
>> wiki about how settings affect speed for optimization purposes. I'd be
>> glad to do it but need a bit of a hint to start
>>
>> Daniel Salazar
>> 3Developer.com
>>
>>
>>
>> On Wed, Sep 7, 2011 at 10:24 PM, Daniel Salazar - 3Developer.com
>> <zanqdo at gmail.com> wrote:
>>> 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
>>> <brechtvanlommel at 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-cvs at blender.org
>>>> http://lists.blender.org/mailman/listinfo/bf-blender-cvs
>>>>
>>>
>> _______________________________________________
>> Bf-committers mailing list
>> Bf-committers at blender.org
>> http://lists.blender.org/mailman/listinfo/bf-committers
>>
> _______________________________________________
> Bf-committers mailing list
> Bf-committers at blender.org
> http://lists.blender.org/mailman/listinfo/bf-committers
>
More information about the Bf-committers
mailing list