diff options
author | Clément Foucault <foucault.clem@gmail.com> | 2022-06-28 19:33:25 +0300 |
---|---|---|
committer | Clément Foucault <foucault.clem@gmail.com> | 2022-06-30 23:45:42 +0300 |
commit | f18067aa032a35e8a6cc990b5c250567d0f4d78f (patch) | |
tree | d7521c5a487952d2f9855ba7492943a6713b0516 /release | |
parent | a9696f04a012ce23ef419afe489378d1ce840638 (diff) |
EEVEE-Next: Add Film and RenderBuffers module
This modules handles renderpasses allocation and filling. Also handles
blitting to viewport framebuffer and render result reading.
Changes against the old implementation:
- the filling of the renderpasses happens all at once requiring
only 1 geometry pass.
- The filtering is optimized with weights precomputed on CPU and
reuse of neighboor pixels.
- Only one accumulation buffer for renderpasses (no ping-pong).
- Accumulation happens in one pass for every passes using a single
dispatch or fullscreen triangle pass.
TAA and history reprojection is not yet implemented.
AOVs support is present but with a 16 AOV limit for now.
Cryptomatte is not yet implemented.
Diffstat (limited to 'release')
-rw-r--r-- | release/scripts/startup/bl_ui/properties_render.py | 45 | ||||
-rw-r--r-- | release/scripts/startup/bl_ui/properties_world.py | 8 |
2 files changed, 49 insertions, 4 deletions
diff --git a/release/scripts/startup/bl_ui/properties_render.py b/release/scripts/startup/bl_ui/properties_render.py index c20992166ad..148dd3ce22d 100644 --- a/release/scripts/startup/bl_ui/properties_render.py +++ b/release/scripts/startup/bl_ui/properties_render.py @@ -390,6 +390,27 @@ class RENDER_PT_eevee_sampling(RenderButtonsPanel, Panel): col.prop(props, "use_taa_reprojection") +class RENDER_PT_eevee_next_sampling(RenderButtonsPanel, Panel): + bl_label = "Sampling" + COMPAT_ENGINES = {'BLENDER_EEVEE_NEXT'} + + @classmethod + def poll(cls, context): + return (context.engine in cls.COMPAT_ENGINES) + + def draw(self, context): + layout = self.layout + layout.use_property_split = True + layout.use_property_decorate = False # No animation. + + scene = context.scene + props = scene.eevee + + col = layout.column(align=True) + col.prop(props, "taa_render_samples", text="Render") + col.prop(props, "taa_samples", text="Viewport") + + class RENDER_PT_eevee_indirect_lighting(RenderButtonsPanel, Panel): bl_label = "Indirect Lighting" bl_options = {'DEFAULT_CLOSED'} @@ -482,6 +503,27 @@ class RENDER_PT_eevee_film(RenderButtonsPanel, Panel): sub.prop(props, "overscan_size", text="") +class RENDER_PT_eevee_next_film(RenderButtonsPanel, Panel): + bl_label = "Film" + bl_options = {'DEFAULT_CLOSED'} + COMPAT_ENGINES = {'BLENDER_EEVEE_NEXT'} + + @classmethod + def poll(cls, context): + return (context.engine in cls.COMPAT_ENGINES) + + def draw(self, context): + layout = self.layout + layout.use_property_split = True + + scene = context.scene + rd = scene.render + props = scene.eevee + + col = layout.column() + col.prop(rd, "filter_size") + + def draw_curves_settings(self, context): layout = self.layout scene = context.scene @@ -702,6 +744,9 @@ classes = ( RENDER_PT_eevee_indirect_lighting_display, RENDER_PT_eevee_film, + RENDER_PT_eevee_next_sampling, + RENDER_PT_eevee_next_film, + RENDER_PT_gpencil, RENDER_PT_opengl_sampling, RENDER_PT_opengl_lighting, diff --git a/release/scripts/startup/bl_ui/properties_world.py b/release/scripts/startup/bl_ui/properties_world.py index 34186785f2c..b0ea36abd6b 100644 --- a/release/scripts/startup/bl_ui/properties_world.py +++ b/release/scripts/startup/bl_ui/properties_world.py @@ -19,7 +19,7 @@ class WorldButtonsPanel: class WORLD_PT_context_world(WorldButtonsPanel, Panel): bl_label = "" bl_options = {'HIDE_HEADER'} - COMPAT_ENGINES = {'BLENDER_RENDER', 'BLENDER_EEVEE', 'BLENDER_WORKBENCH'} + COMPAT_ENGINES = {'BLENDER_RENDER', 'BLENDER_EEVEE', 'BLENDER_EEVEE_NEXT', 'BLENDER_WORKBENCH'} @classmethod def poll(cls, context): @@ -41,7 +41,7 @@ class WORLD_PT_context_world(WorldButtonsPanel, Panel): class EEVEE_WORLD_PT_mist(WorldButtonsPanel, Panel): bl_label = "Mist Pass" bl_options = {'DEFAULT_CLOSED'} - COMPAT_ENGINES = {'BLENDER_EEVEE'} + COMPAT_ENGINES = {'BLENDER_EEVEE', 'BLENDER_EEVEE_NEXT'} @classmethod def poll(cls, context): @@ -63,14 +63,14 @@ class EEVEE_WORLD_PT_mist(WorldButtonsPanel, Panel): class WORLD_PT_custom_props(WorldButtonsPanel, PropertyPanel, Panel): - COMPAT_ENGINES = {'BLENDER_RENDER', 'BLENDER_EEVEE', 'BLENDER_WORKBENCH'} + COMPAT_ENGINES = {'BLENDER_RENDER', 'BLENDER_EEVEE', 'BLENDER_EEVEE_NEXT', 'BLENDER_WORKBENCH'} _context_path = "world" _property_type = bpy.types.World class EEVEE_WORLD_PT_surface(WorldButtonsPanel, Panel): bl_label = "Surface" - COMPAT_ENGINES = {'BLENDER_EEVEE'} + COMPAT_ENGINES = {'BLENDER_EEVEE', 'BLENDER_EEVEE_NEXT'} @classmethod def poll(cls, context): |