diff options
author | Brecht Van Lommel <brechtvanlommel@pandora.be> | 2011-12-01 20:33:21 +0400 |
---|---|---|
committer | Brecht Van Lommel <brechtvanlommel@pandora.be> | 2011-12-01 20:33:21 +0400 |
commit | 45de38077131b248eb52ab1863072750252a85e2 (patch) | |
tree | ae04201f8c6600b65974d252075f0dd020423c20 /intern/cycles/blender/addon | |
parent | f6f7e270e30946d0bb3ea4d5c556c994125e590f (diff) |
Cycles
* Compile all of cycles with -ffast-math again
* Add scons compilation of cuda binaries, tested on mac/linux.
* Add UI option for supported/experimental features, to make it
more clear what is supported, opencl/subdivision is experimental.
* Remove cycles xml exporter, was just for testing.
Diffstat (limited to 'intern/cycles/blender/addon')
-rw-r--r-- | intern/cycles/blender/addon/__init__.py | 4 | ||||
-rw-r--r-- | intern/cycles/blender/addon/enums.py | 7 | ||||
-rw-r--r-- | intern/cycles/blender/addon/properties.py | 3 | ||||
-rw-r--r-- | intern/cycles/blender/addon/ui.py | 15 | ||||
-rw-r--r-- | intern/cycles/blender/addon/xml.py | 105 |
5 files changed, 21 insertions, 113 deletions
diff --git a/intern/cycles/blender/addon/__init__.py b/intern/cycles/blender/addon/__init__.py index 34ed3dd8072..a82d69903a8 100644 --- a/intern/cycles/blender/addon/__init__.py +++ b/intern/cycles/blender/addon/__init__.py @@ -33,7 +33,7 @@ bl_info = { "category": "Render"} import bpy -from . import ui, properties, xml, engine, presets +from . import ui, properties, engine, presets class CyclesRender(bpy.types.RenderEngine): @@ -77,13 +77,11 @@ class CyclesRender(bpy.types.RenderEngine): def register(): properties.register() ui.register() - xml.register() presets.register() bpy.utils.register_module(__name__) def unregister(): - xml.unregister() ui.unregister() properties.unregister() presets.unregister() diff --git a/intern/cycles/blender/addon/enums.py b/intern/cycles/blender/addon/enums.py index 581dc08436a..a11f5ca0f87 100644 --- a/intern/cycles/blender/addon/enums.py +++ b/intern/cycles/blender/addon/enums.py @@ -41,7 +41,12 @@ devices = ( gpu_type = ( ("CUDA", "CUDA", "NVidia only"), - ("OPENCL", "OpenCL (incomplete)", ""), + ("OPENCL", "OpenCL", ""), + ) + +feature_set = ( + ("SUPPORTED", "Supported", "Only use finished and supported features"), + ("EXPERIMENTAL", "Experimental", "Use experimental and incomplete features that might be broken or change in the future"), ) shading_systems = ( diff --git a/intern/cycles/blender/addon/properties.py b/intern/cycles/blender/addon/properties.py index 37de27dc6b4..0ea7396f9c2 100644 --- a/intern/cycles/blender/addon/properties.py +++ b/intern/cycles/blender/addon/properties.py @@ -41,6 +41,9 @@ class CyclesRenderSettings(bpy.types.PropertyGroup): cls.gpu_type = EnumProperty(name="GPU Type", description="Processing system to use on the GPU", items=enums.gpu_type, default="CUDA") + cls.feature_set = EnumProperty(name="Feature Set", description="Feature set to use for rendering", + items=enums.feature_set, default="SUPPORTED") + cls.shading_system = EnumProperty(name="Shading System", description="Shading system to use for rendering", items=enums.shading_systems, default="GPU_COMPATIBLE") diff --git a/intern/cycles/blender/addon/ui.py b/intern/cycles/blender/addon/ui.py index ca733c6eeb0..d23347b937d 100644 --- a/intern/cycles/blender/addon/ui.py +++ b/intern/cycles/blender/addon/ui.py @@ -294,7 +294,12 @@ class Cycles_PT_mesh_displacement(CyclesButtonsPanel, Panel): @classmethod def poll(cls, context): - return CyclesButtonsPanel.poll(context) and (context.mesh or context.curve or context.meta_ball) + if CyclesButtonsPanel.poll(context): + if context.mesh or context.curve or context.meta_ball: + if context.scene.cycles.feature_set == 'EXPERIMENTAL': + return True + + return False def draw(self, context): layout = self.layout @@ -706,18 +711,20 @@ def draw_device(self, context): if scene.render.engine == "CYCLES": cscene = scene.cycles + layout.prop(cscene, "feature_set") + experimental = cscene.feature_set == 'EXPERIMENTAL' + available_devices = engine.available_devices() available_cuda = 'cuda' in available_devices - available_opencl = 'opencl' in available_devices + available_opencl = experimental and 'opencl' in available_devices if available_cuda or available_opencl: layout.prop(cscene, "device") if cscene.device == 'GPU' and available_cuda and available_opencl: layout.prop(cscene, "gpu_type") - if cscene.device == 'CPU' and engine.with_osl(): + if experimental and cscene.device == 'CPU' and engine.with_osl(): layout.prop(cscene, "shading_system") - def draw_pause(self, context): layout = self.layout scene = context.scene diff --git a/intern/cycles/blender/addon/xml.py b/intern/cycles/blender/addon/xml.py deleted file mode 100644 index f17051d92dc..00000000000 --- a/intern/cycles/blender/addon/xml.py +++ /dev/null @@ -1,105 +0,0 @@ -# -# Copyright 2011, Blender Foundation. -# -# This program is free software; you can redistribute it and/or -# modify it under the terms of the GNU General Public License -# as published by the Free Software Foundation; either version 2 -# of the License, or (at your option) any later version. -# -# This program is distributed in the hope that it will be useful, -# but WITHOUT ANY WARRANTY; without even the implied warranty of -# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the -# GNU General Public License for more details. -# -# You should have received a copy of the GNU General Public License -# along with this program; if not, write to the Free Software Foundation, -# Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. -# - -# <pep8 compliant> - -# XML exporter for generating test files, not intended for end users - -import os -import bpy -from bpy_extras.io_utils import ExportHelper -import xml.etree.ElementTree as etree -import xml.dom.minidom as dom - - -def strip(root): - root.text = None - root.tail = None - - for elem in root: - strip(elem) - - -def write(node, fname): - strip(node) - - s = etree.tostring(node) - s = dom.parseString(s).toprettyxml() - - f = open(fname, "w") - f.write(s) - - -class ExportCyclesXML(bpy.types.Operator, ExportHelper): - '''''' - bl_idname = "export_mesh.cycles_xml" - bl_label = "Export Cycles XML" - - filename_ext = ".xml" - - @classmethod - def poll(cls, context): - return context.active_object != None - - def execute(self, context): - filepath = bpy.path.ensure_ext(self.filepath, ".xml") - - # get mesh - scene = context.scene - obj = context.object - - if not obj: - raise Exception("No active object") - - mesh = obj.to_mesh(scene, True, 'PREVIEW') - - if not mesh: - raise Exception("No mesh data in active object") - - # generate mesh node - nverts = "" - verts = "" - P = "" - - for v in mesh.vertices: - P += "%f %f %f " % (v.co[0], v.co[1], v.co[2]) - - for i, f in enumerate(mesh.faces): - nverts += str(len(f.vertices)) + " " - - for v in f.vertices: - verts += str(v) + " " - verts += " " - - node = etree.Element('mesh', attrib={'nverts': nverts, 'verts': verts, 'P': P}) - - # write to file - write(node, filepath) - - return {'FINISHED'} - - -def register(): - pass - - -def unregister(): - pass - -if __name__ == "__main__": - register() |