diff options
author | Clément Foucault <foucault.clem@gmail.com> | 2021-05-20 22:09:28 +0300 |
---|---|---|
committer | Clément Foucault <foucault.clem@gmail.com> | 2021-05-21 00:51:52 +0300 |
commit | 6dc49ec9924b21af4e67f30150394138cb17754b (patch) | |
tree | 24658d842531c91de3c6360222608cd0364d9db2 /source/blender/draw/engines/eevee/shaders/eevee_surface_deferred_frag.glsl | |
parent | 0c71240f14e6016728a9942c079d357bc9eb4b41 (diff) |
GPU/EEVEE: Refactor codegen and nodetree support
This is the first step towards the new evaluation scheme of EEVEE
closures.
This commit contains:
- Removal of GPU_SOURCE_BUILTIN type, prefering global instead. This
avoid many boilerplate code since most of the old builtins are now
datas that are always present (i.e: view matrices, normals).
- Rewritting of codegen in C++ to use `std::stringstream`.
- Added a callback to let engine decide what to do with codegen code.
This remove a lot of needs for defines because of code order
dependency. The engine can insert the nodetree code in custom ways
to create advance effects (i.e: add displacement or vertex lighting).
Engine now returns final shader strings.
- Closure nodes evaluation replacment is a placeholder for now.
Diffstat (limited to 'source/blender/draw/engines/eevee/shaders/eevee_surface_deferred_frag.glsl')
-rw-r--r-- | source/blender/draw/engines/eevee/shaders/eevee_surface_deferred_frag.glsl | 8 |
1 files changed, 4 insertions, 4 deletions
diff --git a/source/blender/draw/engines/eevee/shaders/eevee_surface_deferred_frag.glsl b/source/blender/draw/engines/eevee/shaders/eevee_surface_deferred_frag.glsl index b83df1090ab..442ce6ee584 100644 --- a/source/blender/draw/engines/eevee/shaders/eevee_surface_deferred_frag.glsl +++ b/source/blender/draw/engines/eevee/shaders/eevee_surface_deferred_frag.glsl @@ -12,13 +12,13 @@ layout(location = 3) out uvec4 out_volume_data; /* Volume Emission, Absorpt layout(location = 4) out vec4 out_emission_data; /* Emission. */ layout(location = 5) out vec4 out_transparency_data; /* Transparent BSDF, Holdout. */ -GlobalData g_data; - void main(void) { - g_data = init_from_interp(); + g_data = init_globals(); + + ntree_eval_set_defaults(); - nodetree_eval(g_data.N); + nodetree_surface(); out_diffuse_data = gbuffer_store_diffuse_data(g_diffuse_data); out_reflection_data = gbuffer_store_reflection_data(g_reflection_data); |