Welcome to mirror list, hosted at ThFree Co, Russian Federation.

git.blender.org/blender.git - Unnamed repository; edit this file 'description' to name the repository.
summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorBrecht Van Lommel <brechtvanlommel@pandora.be>2011-12-01 20:33:21 +0400
committerBrecht Van Lommel <brechtvanlommel@pandora.be>2011-12-01 20:33:21 +0400
commit45de38077131b248eb52ab1863072750252a85e2 (patch)
treeae04201f8c6600b65974d252075f0dd020423c20 /intern/cycles/blender/addon
parentf6f7e270e30946d0bb3ea4d5c556c994125e590f (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__.py4
-rw-r--r--intern/cycles/blender/addon/enums.py7
-rw-r--r--intern/cycles/blender/addon/properties.py3
-rw-r--r--intern/cycles/blender/addon/ui.py15
-rw-r--r--intern/cycles/blender/addon/xml.py105
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()