[Bf-blender-cvs] SVN commit: /data/svn/bf-blender [55961] trunk/blender: Fix for material icon rendering with cycles
Sergey Sharybin
sergey.vfx at gmail.com
Thu Apr 11 14:49:58 CEST 2013
Revision: 55961
http://projects.blender.org/scm/viewvc.php?view=rev&root=bf-blender&revision=55961
Author: nazgul
Date: 2013-04-11 12:49:57 +0000 (Thu, 11 Apr 2013)
Log Message:
-----------
Fix for material icon rendering with cycles
Materials icons used to miss transparent background
and were using world environment which didn't give
so nice results.
Reviewed by Brecht, thanks!
Modified Paths:
--------------
trunk/blender/intern/cycles/blender/blender_shader.cpp
trunk/blender/source/blender/editors/render/render_preview.c
Modified: trunk/blender/intern/cycles/blender/blender_shader.cpp
===================================================================
--- trunk/blender/intern/cycles/blender/blender_shader.cpp 2013-04-11 12:37:33 UTC (rev 55960)
+++ trunk/blender/intern/cycles/blender/blender_shader.cpp 2013-04-11 12:49:57 UTC (rev 55961)
@@ -886,7 +886,16 @@
}
PointerRNA cscene = RNA_pointer_get(&b_scene.ptr, "cycles");
- background->transparent = get_boolean(cscene, "film_transparent");
+
+ /* when doing preview render check for BI's transparency settings,
+ * this is so because bledner's preview render routines are not able
+ * to tweak all cycles's settings depending on different circumstances
+ */
+ if(b_engine.is_preview() == false)
+ background->transparent = get_boolean(cscene, "film_transparent");
+ else
+ background->transparent = b_scene.render().alpha_mode() == BL::RenderSettings::alpha_mode_TRANSPARENT;
+
background->use = render_layer.use_background;
if(background->modified(prevbackground))
Modified: trunk/blender/source/blender/editors/render/render_preview.c
===================================================================
--- trunk/blender/source/blender/editors/render/render_preview.c 2013-04-11 12:37:33 UTC (rev 55960)
+++ trunk/blender/source/blender/editors/render/render_preview.c 2013-04-11 12:49:57 UTC (rev 55961)
@@ -382,6 +382,10 @@
}
else {
sce->lay = 1 << MA_SPHERE_A;
+
+ /* same as above, use current scene world to light sphere */
+ if (BKE_scene_use_new_shading_nodes(scene))
+ sce->world = scene->world;
}
}
else {
@@ -1026,6 +1030,7 @@
{
IconPreview *ip = (IconPreview *)customdata;
IconPreviewSize *cur_size = ip->sizes.first;
+ int use_new_shading = BKE_scene_use_new_shading_nodes(ip->scene);
while (cur_size) {
ShaderPreview *sp = MEM_callocN(sizeof(ShaderPreview), "Icon ShaderPreview");
@@ -1038,8 +1043,12 @@
sp->pr_method = PR_ICON_RENDER;
sp->pr_rect = cur_size->rect;
sp->id = ip->id;
- sp->pr_main = G_pr_main;
+ if (use_new_shading)
+ sp->pr_main = G_pr_main_cycles;
+ else
+ sp->pr_main = G_pr_main;
+
common_preview_startjob(sp, stop, do_update, progress);
shader_preview_free(sp);
More information about the Bf-blender-cvs
mailing list