[Bf-blender-cvs] [8ba6103e66b] blender2.8: SceneRenderLayer > SceneLayer: Convert Lay

Dalai Felinto noreply at git.blender.org
Wed Nov 22 10:18:13 CET 2017


Commit: 8ba6103e66b0e8bcbe70e6ed8f91500fdc7df3ee
Author: Dalai Felinto
Date:   Wed Nov 15 15:01:57 2017 -0200
Branches: blender2.8
https://developer.blender.org/rB8ba6103e66b0e8bcbe70e6ed8f91500fdc7df3ee

SceneRenderLayer > SceneLayer: Convert Lay

There are parts of the old (Blender Internal) rendering pipeline that is still
using lay, e.g., in shi->lay.

Honestly it will be easier to purge the entire Blender Internal code away instead
of taking things from it bit by bit.

===================================================================

M	intern/cycles/blender/blender_sync.cpp
M	intern/cycles/blender/blender_sync.h
M	source/blender/blenkernel/intern/scene.c
M	source/blender/blenloader/intern/versioning_280.c
M	source/blender/editors/space_view3d/view3d_draw.c
M	source/blender/editors/space_view3d/view3d_draw_legacy.c
M	source/blender/editors/space_view3d/view3d_intern.h
M	source/blender/gpu/GPU_material.h
M	source/blender/gpu/intern/gpu_draw.c
M	source/blender/gpu/intern/gpu_material.c
M	source/blender/makesdna/DNA_scene_types.h
M	source/blender/makesrna/intern/rna_scene.c
M	source/blender/render/extern/include/RE_pipeline.h
M	source/blender/render/intern/source/convertblender.c
M	source/blender/render/intern/source/pipeline.c
M	source/blender/render/intern/source/render_result.c
M	source/blender/render/intern/source/rendercore.c
M	source/blender/render/intern/source/shadeinput.c
M	source/blender/render/intern/source/zbuf.c
M	source/gameengine/Ketsji/BL_BlenderShader.cpp

===================================================================

diff --git a/intern/cycles/blender/blender_sync.cpp b/intern/cycles/blender/blender_sync.cpp
index be2fadcc574..c5d203070db 100644
--- a/intern/cycles/blender/blender_sync.cpp
+++ b/intern/cycles/blender/blender_sync.cpp
@@ -404,7 +404,7 @@ void BlenderSync::sync_render_layers(BL::SpaceView3D& b_v3d, const char *layer)
 			render_layer.scene_layer = scene_layers & ~render_layer.exclude_layer;
 			render_layer.scene_layer |= render_layer.exclude_layer & render_layer.holdout_layer;
 
-			render_layer.layer = get_layer(b_rlay->layers());
+			render_layer.layer = (1 << 20) - 1;
 			render_layer.layer |= render_layer.holdout_layer;
 
 			render_layer.material_override = PointerRNA_NULL;
diff --git a/intern/cycles/blender/blender_sync.h b/intern/cycles/blender/blender_sync.h
index 57405b74ecc..79c0b006f9f 100644
--- a/intern/cycles/blender/blender_sync.h
+++ b/intern/cycles/blender/blender_sync.h
@@ -199,7 +199,7 @@ private:
 
 		string name;
 		uint scene_layer;
-		uint layer;
+		uint layer; /* This can be safely removed from Cycles. */
 		uint holdout_layer; /* This can be safely removed from Cycles. */
 		uint exclude_layer; /* This can be safely removed from Cycles. */
 		BL::Material material_override; /* This can be safely removed from Cycles. */
diff --git a/source/blender/blenkernel/intern/scene.c b/source/blender/blenkernel/intern/scene.c
index b1cbf24f715..383b55ab1ad 100644
--- a/source/blender/blenkernel/intern/scene.c
+++ b/source/blender/blenkernel/intern/scene.c
@@ -1632,7 +1632,6 @@ SceneRenderLayer *BKE_scene_add_render_layer(Scene *sce, const char *name)
 	BLI_addtail(&sce->r.layers, srl);
 
 	/* note, this is also in render, pipeline.c, to make layer when scenedata doesnt have it */
-	srl->lay = (1 << 20) - 1;
 	srl->layflag = 0x7FFF;   /* solid ztra halo edge strand */
 	srl->passflag = SCE_PASS_COMBINED | SCE_PASS_Z;
 	srl->pass_alpha_threshold = 0.5f;
diff --git a/source/blender/blenloader/intern/versioning_280.c b/source/blender/blenloader/intern/versioning_280.c
index 32aa908fe86..fa48abaf61e 100644
--- a/source/blender/blenloader/intern/versioning_280.c
+++ b/source/blender/blenloader/intern/versioning_280.c
@@ -346,6 +346,14 @@ void do_versions_after_linking_280(Main *main)
 													true);
 									}
 
+									if ((srl->lay & (1 << layer)) == 0) {
+										BKE_override_layer_collection_boolean_add(
+													layer_collection_parent,
+													ID_OB,
+													"cycles_visibility.camera",
+													false);
+									}
+
 									LayerCollection *layer_collection_child;
 									layer_collection_child = layer_collection_parent->layer_collections.first;
 
diff --git a/source/blender/editors/space_view3d/view3d_draw.c b/source/blender/editors/space_view3d/view3d_draw.c
index eeca75b7308..475e9cd07bf 100644
--- a/source/blender/editors/space_view3d/view3d_draw.c
+++ b/source/blender/editors/space_view3d/view3d_draw.c
@@ -793,13 +793,13 @@ static void view3d_draw_background_none(void)
 	glClear(GL_COLOR_BUFFER_BIT);
 }
 
-static void view3d_draw_background_world(Scene *scene, View3D *v3d, RegionView3D *rv3d)
+static void view3d_draw_background_world(Scene *scene, RegionView3D *rv3d)
 {
 	if (scene->world) {
 		GPUMaterial *gpumat = GPU_material_world(scene, scene->world);
 
 		/* calculate full shader for background */
-		GPU_material_bind(gpumat, 1, 1, 1.0f, false, rv3d->viewmat, rv3d->viewinv, rv3d->viewcamtexcofac, (v3d->scenelock != 0));
+		GPU_material_bind(gpumat, 1, 1, 1.0f, false, rv3d->viewmat, rv3d->viewinv, rv3d->viewcamtexcofac);
 
 		if (GPU_material_bound(gpumat)) {
 			/* TODO viewport (dfelinto): GPU_material_bind relies on immediate mode,
@@ -1949,7 +1949,7 @@ static void view3d_main_region_clear(Scene *scene, View3D *v3d, ARegion *ar)
 	glClear(GL_DEPTH_BUFFER_BIT);
 
 	if (scene->world && (v3d->flag3 & V3D_SHOW_WORLD)) {
-		VP_view3d_draw_background_world(scene, v3d, ar->regiondata);
+		VP_view3d_draw_background_world(scene, ar->regiondata);
 	}
 	else {
 		VP_view3d_draw_background_none();
@@ -2394,9 +2394,9 @@ void VP_view3d_draw_background_none(void)
 	}
 }
 
-void VP_view3d_draw_background_world(Scene *scene, View3D *v3d, RegionView3D *rv3d)
+void VP_view3d_draw_background_world(Scene *scene, RegionView3D *rv3d)
 {
-	view3d_draw_background_world(scene, v3d, rv3d);
+	view3d_draw_background_world(scene, rv3d);
 }
 
 void VP_view3d_main_region_clear(Scene *scene, View3D *v3d, ARegion *ar)
diff --git a/source/blender/editors/space_view3d/view3d_draw_legacy.c b/source/blender/editors/space_view3d/view3d_draw_legacy.c
index 5695508a9f5..9f1c27a09e7 100644
--- a/source/blender/editors/space_view3d/view3d_draw_legacy.c
+++ b/source/blender/editors/space_view3d/view3d_draw_legacy.c
@@ -1338,7 +1338,7 @@ typedef struct View3DShadow {
 static void gpu_render_lamp_update(Scene *scene, View3D *v3d,
                                    Object *ob, Object *par,
                                    float obmat[4][4], unsigned int lay,
-                                   ListBase *shadows, SceneRenderLayer *srl)
+                                   ListBase *shadows)
 {
 	GPULamp *lamp = GPU_lamp_from_blender(scene, ob, par);
 	
@@ -1349,8 +1349,6 @@ static void gpu_render_lamp_update(Scene *scene, View3D *v3d,
 		GPU_lamp_update_colors(lamp, la->r, la->g, la->b, la->energy);
 		
 		unsigned int layers = lay & v3d->lay;
-		if (srl)
-			layers &= srl->lay;
 
 		if (layers &&
 		    GPU_lamp_has_shadow_buffer(lamp) &&
@@ -1370,7 +1368,6 @@ static void gpu_update_lamps_shadows_world(const EvaluationContext *eval_ctx, Sc
 	Scene *sce_iter;
 	Base *base;
 	World *world = scene->world;
-	SceneRenderLayer *srl = v3d->scenelock ? BLI_findlink(&scene->r.layers, scene->r.actlay) : NULL;
 	
 	BLI_listbase_clear(&shadows);
 	
@@ -1379,7 +1376,7 @@ static void gpu_update_lamps_shadows_world(const EvaluationContext *eval_ctx, Sc
 		Object *ob = base->object;
 		
 		if (ob->type == OB_LAMP)
-			gpu_render_lamp_update(scene, v3d, ob, NULL, ob->obmat, ob->lay, &shadows, srl);
+			gpu_render_lamp_update(scene, v3d, ob, NULL, ob->obmat, ob->lay, &shadows);
 		
 		if (ob->transflag & OB_DUPLI) {
 			DupliObject *dob;
@@ -1387,7 +1384,7 @@ static void gpu_update_lamps_shadows_world(const EvaluationContext *eval_ctx, Sc
 			
 			for (dob = lb->first; dob; dob = dob->next)
 				if (dob->ob->type == OB_LAMP)
-					gpu_render_lamp_update(scene, v3d, dob->ob, ob, dob->mat, ob->lay, &shadows, srl);
+					gpu_render_lamp_update(scene, v3d, dob->ob, ob, dob->mat, ob->lay, &shadows);
 			
 			free_object_duplilist(lb);
 		}
diff --git a/source/blender/editors/space_view3d/view3d_intern.h b/source/blender/editors/space_view3d/view3d_intern.h
index e42a1e7f286..189e22a04d7 100644
--- a/source/blender/editors/space_view3d/view3d_intern.h
+++ b/source/blender/editors/space_view3d/view3d_intern.h
@@ -376,7 +376,7 @@ bool VP_legacy_use_depth(Scene *scene, View3D *v3d);
 void VP_drawviewborder(Scene *scene, ARegion *ar, View3D *v3d);
 void VP_drawrenderborder(ARegion *ar, View3D *v3d);
 void VP_view3d_draw_background_none(void);
-void VP_view3d_draw_background_world(Scene *scene, View3D *v3d, RegionView3D *rv3d);
+void VP_view3d_draw_background_world(Scene *scene, RegionView3D *rv3d);
 void VP_view3d_main_region_clear(Scene *scene, View3D *v3d, ARegion *ar);
 
 /* temporary legacy calls, only when there is a switch between new/old draw calls */
diff --git a/source/blender/gpu/GPU_material.h b/source/blender/gpu/GPU_material.h
index 71bf6c897e7..e1b20cefe99 100644
--- a/source/blender/gpu/GPU_material.h
+++ b/source/blender/gpu/GPU_material.h
@@ -254,7 +254,7 @@ void GPU_materials_free(void);
 
 void GPU_material_bind(
         GPUMaterial *material, int oblay, int viewlay, double time, int mipmap,
-        float viewmat[4][4], float viewinv[4][4], float cameraborder[4], bool scenelock);
+        float viewmat[4][4], float viewinv[4][4], float cameraborder[4]);
 void GPU_material_bind_uniforms(
         GPUMaterial *material, float obmat[4][4], float viewmat[4][4], float obcol[4],
         float autobumpscale, GPUParticleInfo *pi, float object_info[3]);
diff --git a/source/blender/gpu/intern/gpu_draw.c b/source/blender/gpu/intern/gpu_draw.c
index 3d50d3840fb..4e2a492367a 100644
--- a/source/blender/gpu/intern/gpu_draw.c
+++ b/source/blender/gpu/intern/gpu_draw.c
@@ -1463,7 +1463,6 @@ static struct GPUMaterialState {
 	DupliObject *dob;
 	Scene *gscene;
 	int glay;
-	bool gscenelock;
 	float (*gviewmat)[4];
 	float (*gviewinv)[4];
 	float (*gviewcamtexcofac);
@@ -1621,7 +1620,6 @@ void GPU_begin_object_materials(
 	GMS.is_opensubdiv = use_opensubdiv;
 	GMS.totmat = use_matcap ? 1 : ob->totcol + 1;  /* materials start from 1, default material is 0 */
 	GMS.glay = (v3d->localvd) ? v3d->localvd->lay : v3d->lay; /* keep lamps visible in local view */
-	GMS.gscenelock = (v3d->scenelock != 0);
 	GMS.gviewmat = rv3d->viewmat;
 	GMS.gviewinv = rv3d->viewinv;
 	GMS.gviewcamtexcofac = rv3d->viewcamtexcofac;
@@ -1837,7 +1835,7 @@ int GPU_object_material_bind(int nr, void *attribs)
 
 			GPU_material_bind(
 			        gpumat, GMS.gob->lay, GMS.glay, 1.0, !(GMS.gob->mode & OB_MODE_TEXTURE_PAINT),
-			        GMS.gviewmat, GMS.gviewinv, GMS.gviewcamtexcofac, GMS.gscenelock);
+			        GMS.gviewmat, GMS.gviewinv, GMS.gviewcamtexcofac);
 
 			auto_bump_scale = GMS.gob->derivedFinal != NULL ? GMS.gob->derivedFinal->auto_bump_scale : 1.0f;
 			GPU_material_bind_uniforms(gpumat, GMS.gob->obmat, GMS.gviewmat, GMS.gob->col, auto_bump_scale, &partile_info, object_info);
diff --git a/source/blender/gpu/intern/gpu_material.c b/source/blender/gpu/intern/gpu_material.c
index 4668ea2998d..0a8ef9dffc5 100644
--- a/source/blender/gpu/intern/gpu_material.c
+++ b/source/blender/gpu/intern/gpu_material.c
@@ -295,14 +295,10 @@ void GPU_material_free(ListBase *gpumaterial)
 
 void GPU_material_bind(
         GPUMaterial *material, int oblay, int viewlay, double time, int mipmap,
-        float viewmat[4][4], float viewinv[4][4], float camerafactors[4], bool scenelock)
+        float viewmat[4][4], float viewinv[4][4], float camerafactors[4])
 {
 	if (material->pass) {
 		GPUShader *shader = GPU_pass_shader(material->pass);
-		SceneRenderLayer *srl = scenelock ? BLI_findl

@@ Diff output truncated at 10240 characters. @@



More information about the Bf-blender-cvs mailing list