Revision: 40959
          
http://projects.blender.org/scm/viewvc.php?view=rev&root=bf-blender&revision=40959
Author:   blendix
Date:     2011-10-12 15:42:35 +0000 (Wed, 12 Oct 2011)
Log Message:
-----------
Cycles: replace surface/volume sockets in output nodes with a single shader 
socket,
decided it's better to render objects as either surface or volume.

This may break the volume rendering patch, but shaders with volume closures 
still
get tagged as having volume closures, so it should be fixable without too many
changes.

Modified Paths:
--------------
    branches/cycles/intern/cycles/blender/addon/ui.py
    branches/cycles/intern/cycles/blender/blender_shader.cpp
    branches/cycles/intern/cycles/kernel/kernel_shader.h
    branches/cycles/intern/cycles/kernel/osl/nodes/CMakeLists.txt
    branches/cycles/intern/cycles/kernel/osl/osl_shader.cpp
    branches/cycles/intern/cycles/kernel/svm/svm.h
    branches/cycles/intern/cycles/kernel/svm/svm_types.h
    branches/cycles/intern/cycles/render/nodes.cpp
    branches/cycles/intern/cycles/render/osl.cpp
    branches/cycles/intern/cycles/render/shader.cpp
    branches/cycles/intern/cycles/render/shader.h
    branches/cycles/intern/cycles/render/svm.cpp
    branches/cycles/intern/cycles/test/models/elephants.xml
    branches/cycles/intern/cycles/test/test_camera/camera_post.xml
    branches/cycles/intern/cycles/test/test_closure/background.xml
    branches/cycles/intern/cycles/test/test_closure/bsdf_add.xml
    branches/cycles/intern/cycles/test/test_closure/bsdf_diffuse.xml
    branches/cycles/intern/cycles/test/test_closure/bsdf_glass.xml
    branches/cycles/intern/cycles/test/test_closure/bsdf_glossy.xml
    branches/cycles/intern/cycles/test/test_closure/bsdf_mix.xml
    branches/cycles/intern/cycles/test/test_closure/bsdf_reflection.xml
    branches/cycles/intern/cycles/test/test_closure/bsdf_refraction.xml
    branches/cycles/intern/cycles/test/test_closure/bsdf_transparent.xml
    branches/cycles/intern/cycles/test/test_closure/bsdf_velvet.xml
    branches/cycles/intern/cycles/test/test_closure/closure_post.xml
    branches/cycles/intern/cycles/test/test_closure/emission.xml
    branches/cycles/intern/cycles/test/test_closure/emission_total.xml
    branches/cycles/intern/cycles/test/test_displace/displace_both.xml
    branches/cycles/intern/cycles/test/test_displace/displace_bump.xml
    branches/cycles/intern/cycles/test/test_displace/displace_bump_attr.xml
    branches/cycles/intern/cycles/test/test_displace/displace_pre.xml
    branches/cycles/intern/cycles/test/test_displace/displace_true.xml
    branches/cycles/intern/cycles/test/test_geom/geom_camera.xml
    branches/cycles/intern/cycles/test/test_geom/geom_generated.xml
    branches/cycles/intern/cycles/test/test_geom/geom_incoming.xml
    branches/cycles/intern/cycles/test/test_geom/geom_normal.xml
    branches/cycles/intern/cycles/test/test_geom/geom_object.xml
    branches/cycles/intern/cycles/test/test_geom/geom_position.xml
    branches/cycles/intern/cycles/test/test_geom/geom_post.xml
    branches/cycles/intern/cycles/test/test_geom/geom_tangent.xml
    branches/cycles/intern/cycles/test/test_geom/geom_true_normal.xml
    branches/cycles/intern/cycles/test/test_geom/geom_uv.xml
    branches/cycles/intern/cycles/test/test_geom/geom_window.xml
    branches/cycles/intern/cycles/test/test_light/light_point.xml
    branches/cycles/intern/cycles/test/test_light/light_post.xml
    branches/cycles/intern/cycles/test/test_light/light_pre.xml
    branches/cycles/intern/cycles/test/test_mesh/mesh_attribute.xml
    branches/cycles/intern/cycles/test/test_mesh/mesh_attribute_convert.xml
    branches/cycles/intern/cycles/test/test_node/node_cycle.xml
    branches/cycles/intern/cycles/test/test_node/node_math.xml
    branches/cycles/intern/cycles/test/test_node/node_mix.xml
    branches/cycles/intern/cycles/test/test_node/node_post.xml
    branches/cycles/intern/cycles/test/test_node/node_vector_math.xml
    branches/cycles/intern/cycles/test/test_subd/subd_one.xml
    branches/cycles/intern/cycles/test/test_texture/tex_blend.xml
    branches/cycles/intern/cycles/test/test_texture/tex_clouds.xml
    branches/cycles/intern/cycles/test/test_texture/tex_distorted_noise.xml
    branches/cycles/intern/cycles/test/test_texture/tex_environment.xml
    branches/cycles/intern/cycles/test/test_texture/tex_image.xml
    branches/cycles/intern/cycles/test/test_texture/tex_magic.xml
    branches/cycles/intern/cycles/test/test_texture/tex_marble.xml
    branches/cycles/intern/cycles/test/test_texture/tex_musgrave.xml
    branches/cycles/intern/cycles/test/test_texture/tex_noise.xml
    branches/cycles/intern/cycles/test/test_texture/tex_post.xml
    branches/cycles/intern/cycles/test/test_texture/tex_sky.xml
    branches/cycles/intern/cycles/test/test_texture/tex_stucci.xml
    branches/cycles/intern/cycles/test/test_texture/tex_voronoi.xml
    branches/cycles/intern/cycles/test/test_texture/tex_wood.xml
    branches/cycles/source/blender/blenloader/intern/readfile.c
    branches/cycles/source/blender/gpu/intern/gpu_shader_material.glsl
    branches/cycles/source/blender/gpu/intern/gpu_shader_material.glsl.c
    branches/cycles/source/blender/nodes/shader/nodes/node_shader_output_lamp.c
    
branches/cycles/source/blender/nodes/shader/nodes/node_shader_output_material.c
    branches/cycles/source/blender/nodes/shader/nodes/node_shader_output_world.c

Added Paths:
-----------
    branches/cycles/intern/cycles/kernel/osl/nodes/node_output_closure.osl

Removed Paths:
-------------
    branches/cycles/intern/cycles/kernel/osl/nodes/node_output_surface.osl
    branches/cycles/intern/cycles/kernel/osl/nodes/node_output_volume.osl

Modified: branches/cycles/intern/cycles/blender/addon/ui.py
===================================================================
--- branches/cycles/intern/cycles/blender/addon/ui.py   2011-10-12 14:16:05 UTC 
(rev 40958)
+++ branches/cycles/intern/cycles/blender/addon/ui.py   2011-10-12 15:42:35 UTC 
(rev 40959)
@@ -228,7 +228,7 @@
         sub.prop(ccam, "aperture_rotation", text="Rotation")
 
 class Cycles_PT_context_material(CyclesButtonsPanel, Panel):
-    bl_label = "Surface"
+    bl_label = ""
     bl_context = "material"
     bl_options = {'HIDE_HEADER'}
 
@@ -400,8 +400,8 @@
         elif lamp.type == 'HEMI':
             layout.label(text="Not supported, interpreted as sun lamp.")
    
-class CyclesLamp_PT_nodes(CyclesButtonsPanel, Panel):
-    bl_label = "Nodes"
+class CyclesLamp_PT_shader(CyclesButtonsPanel, Panel):
+    bl_label = "Shader"
     bl_context = "data"
 
     @classmethod
@@ -412,10 +412,10 @@
         layout = self.layout
 
         mat = context.lamp
-        panel_node_draw(layout, mat, 'OUTPUT_LAMP', 'Surface')
+        panel_node_draw(layout, mat, 'OUTPUT_LAMP', 'Shader')
 
-class CyclesWorld_PT_surface(CyclesButtonsPanel, Panel):
-    bl_label = "Surface"
+class CyclesWorld_PT_shader(CyclesButtonsPanel, Panel):
+    bl_label = "Shader"
     bl_context = "world"
 
     @classmethod
@@ -426,25 +426,10 @@
         layout = self.layout
 
         mat = context.world
-        panel_node_draw(layout, mat, 'OUTPUT_WORLD', 'Surface')
+        panel_node_draw(layout, mat, 'OUTPUT_WORLD', 'Shader')
 
-class CyclesWorld_PT_volume(CyclesButtonsPanel, Panel):
-    bl_label = "Volume"
-    bl_context = "world"
-
-    @classmethod
-    def poll(cls, context):
-        return context.world and CyclesButtonsPanel.poll(context)
-
-    def draw(self, context):
-        layout = self.layout
-        layout.active = False
-
-        world = context.world
-        panel_node_draw(layout, world, 'OUTPUT_WORLD', 'Volume')
-
-class CyclesMaterial_PT_surface(CyclesButtonsPanel, Panel):
-    bl_label = "Surface"
+class CyclesMaterial_PT_shader(CyclesButtonsPanel, Panel):
+    bl_label = "Shader"
     bl_context = "material"
 
     @classmethod
@@ -455,27 +440,8 @@
         layout = self.layout
 
         mat = context.material
-        panel_node_draw(layout, mat, 'OUTPUT_MATERIAL', 'Surface')
+        panel_node_draw(layout, mat, 'OUTPUT_MATERIAL', 'Shader')
 
-class CyclesMaterial_PT_volume(CyclesButtonsPanel, Panel):
-    bl_label = "Volume"
-    bl_context = "material"
-
-    @classmethod
-    def poll(cls, context):
-        return context.material and CyclesButtonsPanel.poll(context)
-
-    def draw(self, context):
-        layout = self.layout
-        layout.active = False
-
-        mat = context.material
-        cmat = mat.cycles
-
-        panel_node_draw(layout, mat, 'OUTPUT_MATERIAL', 'Volume')
-
-        layout.prop(cmat, "homogeneous_volume")
-
 class CyclesMaterial_PT_displacement(CyclesButtonsPanel, Panel):
     bl_label = "Displacement"
     bl_context = "material"

Modified: branches/cycles/intern/cycles/blender/blender_shader.cpp
===================================================================
--- branches/cycles/intern/cycles/blender/blender_shader.cpp    2011-10-12 
14:16:05 UTC (rev 40958)
+++ branches/cycles/intern/cycles/blender/blender_shader.cpp    2011-10-12 
15:42:35 UTC (rev 40959)
@@ -584,7 +584,7 @@
                                closure->input("Color")->value = 
get_float3(b_mat->diffuse_color());
                                out = graph->output();
 
-                               graph->connect(closure->output("BSDF"), 
out->input("Surface"));
+                               graph->connect(closure->output("BSDF"), 
out->input("Closure"));
                        }
 
                        /* settings */
@@ -625,7 +625,7 @@
                        closure->input("Color")->value = 
get_float3(b_world.horizon_color());
                        out = graph->output();
 
-                       graph->connect(closure->output("Background"), 
out->input("Surface"));
+                       graph->connect(closure->output("Background"), 
out->input("Closure"));
                }
 
                shader->set_graph(graph);
@@ -675,7 +675,7 @@
                                closure->input("Strength")->value.x = 
b_lamp->energy()*10.0f;
                                out = graph->output();
 
-                               graph->connect(closure->output("Emission"), 
out->input("Surface"));
+                               graph->connect(closure->output("Emission"), 
out->input("Closure"));
                        }
 
                        shader->set_graph(graph);

Modified: branches/cycles/intern/cycles/kernel/kernel_shader.h
===================================================================
--- branches/cycles/intern/cycles/kernel/kernel_shader.h        2011-10-12 
14:16:05 UTC (rev 40958)
+++ branches/cycles/intern/cycles/kernel/kernel_shader.h        2011-10-12 
15:42:35 UTC (rev 40959)
@@ -482,7 +482,7 @@
 #else
 
 #ifdef __SVM__
-       svm_eval_nodes(kg, sd, SHADER_TYPE_SURFACE, randb, path_flag);
+       svm_eval_nodes(kg, sd, SHADER_TYPE_CLOSURE, randb, path_flag);
 #else
        bsdf_diffuse_setup(sd, &sd->closure);
        sd->closure.weight = make_float3(0.8f, 0.8f, 0.8f);
@@ -500,7 +500,7 @@
 #else
 
 #ifdef __SVM__
-       svm_eval_nodes(kg, sd, SHADER_TYPE_SURFACE, 0.0f, path_flag);
+       svm_eval_nodes(kg, sd, SHADER_TYPE_CLOSURE, 0.0f, path_flag);
 
 #ifdef __MULTI_CLOSURE__
        float3 eval = make_float3(0.0f, 0.0f, 0.0f);
@@ -562,7 +562,7 @@
 #ifdef __OSL__
        OSLShader::eval_volume(kg, sd, randb, path_flag);
 #else
-       svm_eval_nodes(kg, sd, SHADER_TYPE_VOLUME, randb, path_flag);
+       svm_eval_nodes(kg, sd, SHADER_TYPE_CLOSURE, randb, path_flag);
 #endif
 #endif
 }

Modified: branches/cycles/intern/cycles/kernel/osl/nodes/CMakeLists.txt
===================================================================
--- branches/cycles/intern/cycles/kernel/osl/nodes/CMakeLists.txt       
2011-10-12 14:16:05 UTC (rev 40958)
+++ branches/cycles/intern/cycles/kernel/osl/nodes/CMakeLists.txt       
2011-10-12 15:42:35 UTC (rev 40959)
@@ -32,9 +32,8 @@
        node_musgrave_texture.osl
        node_blend_weight_texture.osl
        node_noise_texture.osl
+       node_output_closure.osl
        node_output_displacement.osl
-       node_output_surface.osl
-       node_output_volume.osl
        node_sky_texture.osl
        node_stucci_texture.osl
        node_texture_coordinate.osl

Copied: branches/cycles/intern/cycles/kernel/osl/nodes/node_output_closure.osl 
(from rev 40934, 
branches/cycles/intern/cycles/kernel/osl/nodes/node_output_surface.osl)
===================================================================
--- branches/cycles/intern/cycles/kernel/osl/nodes/node_output_closure.osl      
                        (rev 0)
+++ branches/cycles/intern/cycles/kernel/osl/nodes/node_output_closure.osl      
2011-10-12 15:42:35 UTC (rev 40959)
@@ -0,0 +1,25 @@
+/*
+ * 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.
+ */
+
+#include "stdosl.h"
+
+surface node_output_surface(closure color Closure = background())
+{
+       Ci = Closure;
+}
+

Deleted: branches/cycles/intern/cycles/kernel/osl/nodes/node_output_surface.osl
===================================================================
--- branches/cycles/intern/cycles/kernel/osl/nodes/node_output_surface.osl      
2011-10-12 14:16:05 UTC (rev 40958)
+++ branches/cycles/intern/cycles/kernel/osl/nodes/node_output_surface.osl      
2011-10-12 15:42:35 UTC (rev 40959)
@@ -1,25 +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.
- */
-
-#include "stdosl.h"
-
-surface node_output_surface(closure color Surface = background())
-{
-       Ci = Surface;
-}
-

Deleted: branches/cycles/intern/cycles/kernel/osl/nodes/node_output_volume.osl
===================================================================
--- branches/cycles/intern/cycles/kernel/osl/nodes/node_output_volume.osl       
2011-10-12 14:16:05 UTC (rev 40958)
+++ branches/cycles/intern/cycles/kernel/osl/nodes/node_output_volume.osl       
2011-10-12 15:42:35 UTC (rev 40959)
@@ -1,25 +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.
- */
-
-#include "stdosl.h"
-
-volume node_output_volume(closure color Volume = background())
-{
-       Ci = Volume;
-}
-

Modified: branches/cycles/intern/cycles/kernel/osl/osl_shader.cpp
===================================================================
--- branches/cycles/intern/cycles/kernel/osl/osl_shader.cpp     2011-10-12 
14:16:05 UTC (rev 40958)
+++ branches/cycles/intern/cycles/kernel/osl/osl_shader.cpp     2011-10-12 
15:42:35 UTC (rev 40959)
@@ -218,8 +218,8 @@
        /* execute shader for this point */
        int shader = sd->shader & SHADER_MASK;
 
-       if(kg->osl.surface_state[shader])
-               ctx->execute(OSL::pvt::ShadUseSurface, 
*(kg->osl.surface_state[shader]), *globals);
+       if(kg->osl.state[shader])

@@ Diff output truncated at 10240 characters. @@
_______________________________________________
Bf-blender-cvs mailing list
[email protected]
http://lists.blender.org/mailman/listinfo/bf-blender-cvs

Reply via email to