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 <[email protected]> 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 > <[email protected]> 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 >> [email protected] >> http://lists.blender.org/mailman/listinfo/bf-blender-cvs >> > _______________________________________________ Bf-committers mailing list [email protected] http://lists.blender.org/mailman/listinfo/bf-committers
