[Bf-blender-cvs] [00f1bc16850] blender2.8: Eevee: Render: Add support for multiview.

Clément Foucault noreply at git.blender.org
Thu Feb 1 20:49:11 CET 2018


Commit: 00f1bc168505bcffe150f5f75db79778bdead51e
Author: Clément Foucault
Date:   Thu Feb 1 20:45:21 2018 +0100
Branches: blender2.8
https://developer.blender.org/rB00f1bc168505bcffe150f5f75db79778bdead51e

Eevee: Render: Add support for multiview.

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

M	source/blender/draw/engines/eevee/eevee_render.c
M	source/blender/draw/intern/draw_manager.c

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

diff --git a/source/blender/draw/engines/eevee/eevee_render.c b/source/blender/draw/engines/eevee/eevee_render.c
index 92ea737906c..cccaf03b033 100644
--- a/source/blender/draw/engines/eevee/eevee_render.c
+++ b/source/blender/draw/engines/eevee/eevee_render.c
@@ -339,7 +339,7 @@ void EEVEE_render_draw(EEVEE_Data *vedata, struct RenderEngine *engine, struct D
 	}
 
 	/* Init render result. */
-	const char *viewname = NULL;
+	const char *viewname = RE_GetActiveRenderView(engine->re);
 	const float *render_size = DRW_viewport_size_get();
 
 	RenderResult *rr = RE_engine_begin_result(engine, 0, 0, (int)render_size[0], (int)render_size[1], NULL, viewname);
diff --git a/source/blender/draw/intern/draw_manager.c b/source/blender/draw/intern/draw_manager.c
index baa2f46a87a..27496d31171 100644
--- a/source/blender/draw/intern/draw_manager.c
+++ b/source/blender/draw/intern/draw_manager.c
@@ -75,6 +75,7 @@
 #include "IMB_colormanagement.h"
 
 #include "RE_engine.h"
+#include "RE_pipeline.h"
 
 #include "UI_interface.h"
 #include "UI_resources.h"
@@ -3603,6 +3604,7 @@ void DRW_render_to_image(RenderEngine *re, struct Depsgraph *depsgraph)
 	RenderEngineType *engine_type = re->type;
 	DrawEngineType *draw_engine_type = engine_type->draw_engine;
 	RenderData *r = &scene->r;
+	Render *render = re->re;
 
 	/* Reset before using it. */
 	memset(&DST, 0x0, sizeof(DST));
@@ -3626,7 +3628,14 @@ void DRW_render_to_image(RenderEngine *re, struct Depsgraph *depsgraph)
 	glDisable(GL_SCISSOR_TEST);
 	glViewport(0, 0, size[0], size[1]);
 
-	engine_type->draw_engine->render_to_image(data, re, depsgraph);
+	for (SceneRenderView *srv = r->views.first; srv; srv = srv->next) {
+		if (BKE_scene_multiview_is_render_view_active(r, srv) == false)
+			continue;
+
+		RE_SetActiveRenderView(render, srv->name);
+
+		engine_type->draw_engine->render_to_image(data, re, depsgraph);
+	}
 
 	/* TODO grease pencil */



More information about the Bf-blender-cvs mailing list