diff options
author | Dalai Felinto <dfelinto@gmail.com> | 2018-02-20 18:55:02 +0300 |
---|---|---|
committer | Dalai Felinto <dfelinto@gmail.com> | 2018-02-28 00:25:54 +0300 |
commit | 06420c5fe8fda54c543f26f9d95d2c6fcf5161cd (patch) | |
tree | 2cb566ad03dd15a34f3d04d0826c33aa096efada /source/blenderplayer/bad_level_call_stubs | |
parent | bd119ab0177a380a1736677278c02790d8235be4 (diff) |
Refactor depsgraph/render logic to serve evaluated depsgraph to engines
User notes
----------
Compositing, rendering of multi-layers in Eevee should be fully working now.
Development notes
-----------------
Up until now we were still using the same depsgraph for rendering and viewport
evaluation. And we had to go out of our ways to be sure the depsgraphs were
updated.
Now we iterate over the (to be rendered) view layers and create a depsgraph to
each one, fully evaluated and call the render engines (Cycles, Eevee, ...) with
this viewlayer/depsgraph/evaluation context.
At this time we are not handling data persistency, Depsgraph is created from
scratch prior to rendering each frame. So I got rid of most of the partial
update calls we had during the render pipeline.
Cycles: Brecht Van Lommel did a patch to tackle some of the required Cycles
changes but this commit mark these changes as TODOs. Basically Cycles needs to
render one layer at a time.
Reviewers: sergey, brecht
Differential Revision: https://developer.blender.org/D3073
Diffstat (limited to 'source/blenderplayer/bad_level_call_stubs')
-rw-r--r-- | source/blenderplayer/bad_level_call_stubs/CMakeLists.txt | 1 | ||||
-rw-r--r-- | source/blenderplayer/bad_level_call_stubs/stubs.c | 4 |
2 files changed, 2 insertions, 3 deletions
diff --git a/source/blenderplayer/bad_level_call_stubs/CMakeLists.txt b/source/blenderplayer/bad_level_call_stubs/CMakeLists.txt index d2c2129532a..0a50c0876fb 100644 --- a/source/blenderplayer/bad_level_call_stubs/CMakeLists.txt +++ b/source/blenderplayer/bad_level_call_stubs/CMakeLists.txt @@ -33,6 +33,7 @@ set(INC ../../blender/blenlib ../../blender/blenkernel ../../blender/blenloader + ../../blender/depsgraph ../../blender/makesdna ../../blender/makesrna ../../../intern/glew-mx diff --git a/source/blenderplayer/bad_level_call_stubs/stubs.c b/source/blenderplayer/bad_level_call_stubs/stubs.c index 3098bb88cf8..894bad1ab8a 100644 --- a/source/blenderplayer/bad_level_call_stubs/stubs.c +++ b/source/blenderplayer/bad_level_call_stubs/stubs.c @@ -280,7 +280,7 @@ int multitex_ext(struct Tex *tex, float texvec[3], float dxt[3], float dyt[3], i int multitex_ext_safe(struct Tex *tex, float texvec[3], struct TexResult *texres, struct ImagePool *pool, bool scene_color_manage, const bool skip_load_image) RET_ZERO int multitex_nodes(struct Tex *tex, float texvec[3], float dxt[3], float dyt[3], int osatex, struct TexResult *texres, const short thread, short which_output, struct ShadeInput *shi, struct MTex *mtex, struct ImagePool *pool) RET_ZERO -struct Material *RE_sample_material_init(struct Material *orig_mat, struct Scene *scene) RET_NULL +struct Material *RE_sample_material_init(const struct EvaluationContext *eval_ctx, struct Material *orig_mat, struct Scene *scene) RET_NULL void RE_sample_material_free(struct Material *mat) RET_NONE void RE_sample_material_color( struct Material *mat, float color[3], float *alpha, const float volume_co[3], const float surface_co[3], @@ -774,8 +774,6 @@ void RE_instance_get_particle_info(struct ObjectInstanceRen *obi, float *index, void RE_FreeAllPersistentData(void) RET_NONE float RE_fresnel_dielectric(float incoming[3], float normal[3], float eta) RET_ZERO void RE_engine_register_pass(struct RenderEngine *engine, struct Scene *scene, struct ViewLayer *view_layer, const char *name, int channels, const char *chanid, int type) RET_NONE -struct ViewLayer *RE_engine_get_view_layer(struct Render *re) RET_NULL -void RE_SetDepsgraph(struct Render *re, struct Depsgraph *graph) RET_NONE /* Draw */ void OBJECT_collection_settings_create(struct IDProperty *properties) RET_NONE |