From 507486867dd85cac75ad2696ace7be651981f879 Mon Sep 17 00:00:00 2001 From: Jeroen Bakker Date: Thu, 2 Nov 2023 14:26:34 +0100 Subject: [PATCH 1/3] EEVEE-Next: Initial pass blender manual This is an initial pass adding parts of EEVEE-Next to the manual. It includes the following sections - Limitations - Light probes - Introduction - Material nodes Some parts have been tagged with todo as this has to be written or reviewed by Clement. Mostly the shadowing pipeline. --- manual/render/eevee/index.rst | 1 + manual/render/eevee/introduction.rst | 12 +- manual/render/eevee/light_probes/index.rst | 6 +- .../eevee/light_probes/introduction.rst | 4 +- .../eevee/light_probes/irradiance_volumes.rst | 110 ------------------ manual/render/eevee/light_probes/plane.rst | 62 ++++++++++ .../light_probes/reflection_cubemaps.rst | 94 --------------- .../eevee/light_probes/reflection_planes.rst | 88 -------------- manual/render/eevee/light_probes/sphere.rst | 64 ++++++++++ manual/render/eevee/light_probes/volume.rst | 88 ++++++++++++++ manual/render/eevee/limitations.rst | 64 +++------- manual/render/eevee/limitations_shadow.rst | 12 ++ .../render/eevee/materials/introduction.rst | 11 -- .../render/eevee/materials/nodes_support.rst | 53 ++------- .../screen_space_reflections.rst | 2 +- 15 files changed, 266 insertions(+), 405 deletions(-) delete mode 100644 manual/render/eevee/light_probes/irradiance_volumes.rst create mode 100644 manual/render/eevee/light_probes/plane.rst delete mode 100644 manual/render/eevee/light_probes/reflection_cubemaps.rst delete mode 100644 manual/render/eevee/light_probes/reflection_planes.rst create mode 100644 manual/render/eevee/light_probes/sphere.rst create mode 100644 manual/render/eevee/light_probes/volume.rst create mode 100644 manual/render/eevee/limitations_shadow.rst diff --git a/manual/render/eevee/index.rst b/manual/render/eevee/index.rst index 88942a638..ed512b3e7 100644 --- a/manual/render/eevee/index.rst +++ b/manual/render/eevee/index.rst @@ -15,3 +15,4 @@ lighting.rst light_probes/index.rst limitations.rst + limitations_shadow.rst diff --git a/manual/render/eevee/introduction.rst b/manual/render/eevee/introduction.rst index a8107e6f5..8f888801d 100644 --- a/manual/render/eevee/introduction.rst +++ b/manual/render/eevee/introduction.rst @@ -3,23 +3,23 @@ Introduction ************ -EEVEE is Blender's realtime render engine built using :term:`OpenGL` focused on -speed and interactivity while achieving the goal of rendering :abbr:`PBR (Physically Based Rendering)` materials. +EEVEE is Blender's realtime render engine focused on speed and interactivity while achieving the +goal of rendering :abbr:`PBR (Physically Based Rendering)` materials. EEVEE can be used interactively in the 3D Viewport but also produce high quality final renders. .. figure:: /images/render_eevee_introduction_viewport.png EEVEE in the 3D Viewport -- "Tiger" by Daniel Bystedt. -EEVEE materials are created using the same shader nodes as Cycles, making it easy to render existing scenes. -For Cycles users, this makes EEVEE work great for previewing materials in realtime. +EEVEE materials are created using the same shader nodes as Cycles, making it easy to render existing +scenes. For Cycles users, this makes EEVEE work great for previewing materials in realtime. -Unlike Cycles, EEVEE is not a raytrace render engine. +EEVEE is a based on rasterization and not (like Cycles) a path traced render engine. Instead of computing each ray of light, EEVEE uses a process called rasterization. Rasterization estimates the way light interacts with objects and materials using numerous algorithms. While EEVEE is designed to use :abbr:`PBR (Physically Based Rendering)` principles, it is not perfect and Cycles will always provide more physically accurate renders. -Because EEVEE uses rasterization it has a large set of :doc:`limitations `. +Because EEVEE uses rasterization it has a set of :doc:`limitations `. .. figure:: /images/render_eevee_introduction_final-render.png diff --git a/manual/render/eevee/light_probes/index.rst b/manual/render/eevee/light_probes/index.rst index 67f0477dc..16c78ebbb 100644 --- a/manual/render/eevee/light_probes/index.rst +++ b/manual/render/eevee/light_probes/index.rst @@ -9,6 +9,6 @@ :maxdepth: 2 introduction.rst - irradiance_volumes.rst - reflection_cubemaps.rst - reflection_planes.rst + volume.rst + sphere.rst + plane.rst diff --git a/manual/render/eevee/light_probes/introduction.rst b/manual/render/eevee/light_probes/introduction.rst index 508c5d1f6..1e518fd5a 100644 --- a/manual/render/eevee/light_probes/introduction.rst +++ b/manual/render/eevee/light_probes/introduction.rst @@ -3,10 +3,10 @@ Introduction ************ -Probe objects are used by EEVEE as support objects. +Light probe objects are used by EEVEE as support objects. They record lighting information locally in order to light the scene using indirect lighting. -There are three different probe types. One for diffuse lighting, two for specular lighting. +There are three different types of light probes. One for diffuse lighting, two for specular lighting. These types of objects are only useful for EEVEE (and by extension, the Material Preview mode). They are meant to guide the engine to compute better lighting quickly. diff --git a/manual/render/eevee/light_probes/irradiance_volumes.rst b/manual/render/eevee/light_probes/irradiance_volumes.rst deleted file mode 100644 index 10ecbff19..000000000 --- a/manual/render/eevee/light_probes/irradiance_volumes.rst +++ /dev/null @@ -1,110 +0,0 @@ - -****************** -Irradiance Volumes -****************** - -Diffuse indirect lighting is stored in volumetric arrays. -These arrays are defined by the user using Irradiance Volume objects. -They control how arrays are placed in the world as well as their resolution. - -Lighting is computed at the dot positions visible when the Irradiance Volume object is selected. - -.. seealso:: - - :doc:`Indirect Lighting `. - -If Ambient Occlusion is enabled, it will be applied onto diffuse indirect lighting. -If both Ambient Occlusion and "Bent Normals" are enabled -the indirect lighting will be sampled from the least occluded direction and appear more correct. - -.. reference:: - - :Panel: :menuselection:`Object Data --> Probe` - -Distance - A probe object only influences the lighting of nearby surfaces. - This influence zone is defined by the Distance parameter and object scaling. - The influence distance varies a bit, depending on the probe type. - - For Irradiance Volumes, the influence inside the volume is always 100%. - The influence decays only outside of the volume until - the distance to the volume reaches the Distance parameter value (in local space). - -Falloff - Percentage of the influence distance during which the influence of a probe fades linearly. - -Intensity - Intensity factor of the recorded lighting. - Making this parameter anything other than 1.0 is not physically correct. Use it for tweaking or artistic purposes. - -Resolution - Spatial resolution for Irradiance Volumes is determined per probe. - The local volume is divided into a regular grid of the specified dimensions. - One irradiance sample will be computed for each cell in this grid. - -Clipping - Defines the near and far clip distances when capturing the scene. - - .. warning:: - - Clipping distances are applied at the samples positions and *not* at the grid origin. - -Visibility Collection - In some cases, it is useful to limit which objects appear in the light probe's captured lighting. - For instance, an object that is too close to a capture point might be better excluded. - This is what the visibility collection does. - Only objects that are in this collection will be visible when this probes captures the scene. - - There is also an option to invert this behavior and effectively hide the objects in this collection. - - .. note:: - - This is only a filtering option. That means that if an object is not visible at render time - it won't be visible during the probe render. - - -Visibility -========== - -For every grid point a small Variance Shadow Map is rendered. -This visibility cubemap is used to reduce light leaking behind occluders. -You can tweak the size of this map inside the render settings and -tweak the bias and blur factors per grid inside the Probe Properties tab. - - Bias - Reduces self-shadowing. - - Bleed Bias - Increases the "contrast" of the depth test result. - - Blur - Amount of blur to apply when filtering the visibility shadow map. - Does not increase runtime cost but has a small effect on baking time. - - -Blending -======== - -The lighting values from an Irradiance Volume will fade outwards until the volume bounds are reached. -They will fade into the world's lighting or another Irradiance Volume's lighting. - -If multiple Irradiance Volumes overlap, smaller (in volume) ones will always have more priority. - -If an object is not inside any Irradiance Volume, or if the indirect lighting has not been baked, -the world's diffuse lighting will be used to shade it. - -.. tip:: - - - When lighting indoor environments, try to align grids with the room shape. - - Try not to put too much resolution in empty areas or areas with a low amount of lighting variation. - - You can fix bad samples by adding a smaller grid near the problematic area. - - -Viewport Display -================ - -Influence - Show the influence bounds in the 3D Viewport. The inner sphere is where the falloff starts. - -Clipping - Show the clipping distance in the 3D Viewport. diff --git a/manual/render/eevee/light_probes/plane.rst b/manual/render/eevee/light_probes/plane.rst new file mode 100644 index 000000000..010267ee5 --- /dev/null +++ b/manual/render/eevee/light_probes/plane.rst @@ -0,0 +1,62 @@ + +****************** +Light Probe Planes +****************** + +These special types of light probe object are suited to smooth planar surfaces. +They basically capture the scene with a flipped camera. + +Using planar light probes adds more render time as the scene needs to be rendered as many times as +there are light probe planes in the view. + +Light probe planes only work when ray tracing method is set to `Screen-Trace`. If ray tracing +is enabled, light probe planes will serve as support buffers. This accelerates the tracing process +and completes the missing data from the view space. This also make reflection more correct for the +affected surfaces that have medium roughness and disturbed normals (i.e. normal maps). + +.. note:: + + Reflections and Volumetrics are not supported inside Light probe planes. + + +Placement +========= + +If Backface Culling is not enabled, snapping the light probe plane to the planar surface +will effectively capture the underside of the surface. + +You can manually move the light probe plane above the surface enough for it to not appear in the capture. +Alternatively you can disable the light probe visibility in the object panel. + +.. reference:: + + :Panel: :menuselection:`Object Data --> Probe` + +Clipping Offset + Define how much below the plane the near clip is when capturing the scene. + Increasing this can fix reflection contact problems. + +Distance + A probe object only influences the lighting of nearby surfaces. + This influence zone is defined by the Distance parameter and object scaling. + The influence distance varies is a bit, depending on the probe type. + + For light probe planes the influence distance is the distance from the plane. + Only surfaces whose normals are aligned with the Reflection Plane will receive the captured reflection. + + +Viewport Display +================ + +.. reference:: + + :Panel: :menuselection:`Object Data --> Viewport Display` + +Influence + Show the influence bounds in the 3D Viewport. + +Arrow Size + Size of the arrow showing the reflection plane normal. + +Show Preview Plane + Show the captured reflected image onto a fully reflective plane in the 3D Viewport. diff --git a/manual/render/eevee/light_probes/reflection_cubemaps.rst b/manual/render/eevee/light_probes/reflection_cubemaps.rst deleted file mode 100644 index b38b903cc..000000000 --- a/manual/render/eevee/light_probes/reflection_cubemaps.rst +++ /dev/null @@ -1,94 +0,0 @@ - -******************* -Reflection Cubemaps -******************* - -Specular Indirect Lighting is stored in an array of cubemaps. These are defined by the Reflection Cubemap objects. -They specify where to sample the scene's lighting and where to apply it. - -.. seealso:: - - :doc:`Indirect Lighting `. - -*Screen Space Reflections* are much more precise than reflection cubemaps. -If enabled, they have priority and cubemaps are used as a fall back if a ray misses. - -If *Ambient Occlusion* is enabled, it will be applied in a physically plausible manner to specular indirect lighting. - -.. note:: - - The cube probes are encoded into tetrahedral maps. Some distortions may occur on the negative Z hemisphere. - Those are more visible with higher roughness values. - - -Blending -======== - -The lighting values from a Reflection Cubemap will fade outwards until the volume bounds are reached. -They will fade into the world's lighting or another Reflection Cubemap's lighting. -If multiple Reflection Cubemaps overlap, smaller (in volume) ones will always have more priority. -If an object is not inside any Reflection Cubemap influence, -or if the indirect lighting has not been baked, the world's cubemap will be used to shade it. - -.. reference:: - - :Panel: :menuselection:`Object Data --> Probe` - -Distance - A probe object only influences the lighting of nearby surfaces. - This influence zone is defined by the Distance parameter and object scaling. - The influence distance varies is a bit, depending on the probe type. - - For Reflection Cubemaps the influence volume can either be a box or a sphere centered on the probe's origin. - -Falloff - Percentage of the influence distance during which the influence of a probe fades linearly. - -Intensity - Intensity factor of the recorded lighting. - Making this parameter anything other than 1.0 is not physically correct. - Use it for tweaking or artistic purposes. - -Clipping - Define the near and far clip distances when capturing the scene. - -Visibility Collection - Sometimes, it is useful to limit which objects appear in the light probe's captured lighting. - For instance, an object that is too close to a capture point might be better excluded. - This is what the visibility collection does. - Only objects that are in this collection will be visible when this probe will capture the scene. - - There is also an option to invert this behavior and effectively hide the objects inside this collection. - - .. note:: - - This is only a filtering option. - That means if an object is not visible at render time it won't be visible during the probe render. - - -Custom Parallax -=============== - -.. reference:: - - :Panel: :menuselection:`Object Data --> Custom Parallax` - -By default, the influence volume is also the parallax volume. -The parallax volume is a volume on which is projected the recorded lighting. -It should roughly fit it surrounding area. In some cases it may be better to -adjust the parallax volume without touching the influence parameters. -In this case, just enable the *Custom Parallax* and -change the shape and distance of the parallax volume independently. - - -Viewport Display -================ - -Influence - Show the influence bounds in the 3D Viewport. The inner sphere is where the falloff starts. - -Clipping - Show the clipping distance in the 3D Viewport. - -Parallax - Show the *Custom Parallax* shape in the 3D Viewport. diff --git a/manual/render/eevee/light_probes/reflection_planes.rst b/manual/render/eevee/light_probes/reflection_planes.rst deleted file mode 100644 index 86c34bbe5..000000000 --- a/manual/render/eevee/light_probes/reflection_planes.rst +++ /dev/null @@ -1,88 +0,0 @@ - -***************** -Reflection Planes -***************** - -These special types of Probe object are suited to smooth planar surfaces. -They basically capture the whole scene with a flipped camera. - -Using reflection planes is really heavy on the render time -because the scene needs to be rendered as many times as there is Reflection Planes in the view. - -Unless Screen Space Reflection is enabled, -Reflection Planes only work on specular surfaces that have their roughness around 0. - -If Screen Space Reflection is enabled, Reflection Planes will serve as support buffers. -This accelerates the tracing process and completes the missing data from the view space. -This also make reflection more correct for the affected surfaces that have medium roughness and -disturbed normals (i.e. normal maps). - -.. note:: - - Subsurface Scattering, Screen Space Reflections and - Volumetrics are not supported inside Reflection Plane's reflection. - - -Placement -========= - -If Backface Culling is not enabled, snapping the Reflection Plane to the planar surface -will effectively capture the underside of the surface. - -You can manually move the Reflection Plane above the surface enough for it to not appear in the capture. -Alternatively you can put a floor object inside a collection and -use this collection as a Visibility Collection (inverted) inside the Reflection Plane's probe settings. - -.. reference:: - - :Panel: :menuselection:`Object Data --> Probe` - -Distance - A probe object only influences the lighting of nearby surfaces. - This influence zone is defined by the Distance parameter and object scaling. - The influence distance varies is a bit, depending on the probe type. - - For Reflection Planes the influence distance is the distance from the plane. - Only surfaces whose normals are aligned with the Reflection Plane will receive the captured reflection. - -Falloff - Percentage of the influence distance during which the influence of a probe fades linearly. - Also defines how much shading normals needs to be aligned with the plane to receive reflections. - -Clipping Offset - Define how much below the plane the near clip is when capturing the scene. - Increasing this can fix reflection contact problems. - -Visibility Collection - In some cases, it is useful to limit which objects appear in the light probe's captured lighting. - For instance, an object that is too close to a capture point might be better excluded. - This is what the visibility collection does. - Only objects that are in this collection will be visible when this probe will capture the scene. - - There is also an option to invert this behavior and effectively hide the objects inside this collection. - - .. note:: - - This is only a filtering option. - That means that if an object is not visible at render time it won't be visible during the probe render. - - .. note:: - - Due to a limitation, dupli-objects cannot be hidden by using this option. - - -Viewport Display -================ - -.. reference:: - - :Panel: :menuselection:`Object Data --> Viewport Display` - -Influence - Show the influence bounds in the 3D Viewport. - -Arrow Size - Size of the arrow showing the reflection plane normal. - -Show Preview Plane - Show the captured reflected image onto a fully reflective plane in the 3D Viewport. diff --git a/manual/render/eevee/light_probes/sphere.rst b/manual/render/eevee/light_probes/sphere.rst new file mode 100644 index 000000000..5508cb6f7 --- /dev/null +++ b/manual/render/eevee/light_probes/sphere.rst @@ -0,0 +1,64 @@ + +****************** +Light Probe Sphere +****************** + +Specular Indirect Lighting can be stored in a light probe sphere. + +.. seealso:: + + :doc:`Indirect Lighting `. + +*Ray traced reflections* are more precise than spherical light probes. +If enabled, they have priority and spherical light probes are used as a fall back if a ray misses. + +.. note:: + + Spherical light probes are encoded into tetrahedral maps. Some distortions may occur on the + negative Z hemisphere. Those are more visible with higher roughness values. + + +.. reference:: + + :Panel: :menuselection:`Object Data --> Probe` + +Shape/Type + Select the shape of the influence volume. Can be set to Sphere or Box. + +Size + A probe object only influences the lighting of nearby surfaces. + This influence zone is defined by the size parameter and object scaling. + +Falloff + Percentage of the influence distance during which the influence of a probe fades linearly. + +Clipping + Define the near and far clip distances when capturing the scene. + + +Custom Parallax +=============== + +.. reference:: + + :Panel: :menuselection:`Object Data --> Custom Parallax` + +By default, the influence volume is also the parallax volume. +The parallax volume is a volume on which the recorded light is projected. +It should roughly fit it surrounding area. In some cases it may be better to +adjust the parallax volume without touching the influence parameters. +In this case, just enable the *Custom Parallax* and +change the shape and radius of the parallax volume independently. + + +Viewport Display +================ + +Influence + Show the influence bounds in the 3D Viewport. The inner sphere is where the falloff starts. + +Clipping + Show the clipping distance in the 3D Viewport. + +Parallax + Show the *Custom Parallax* shape in the 3D Viewport. diff --git a/manual/render/eevee/light_probes/volume.rst b/manual/render/eevee/light_probes/volume.rst new file mode 100644 index 000000000..c0822a32b --- /dev/null +++ b/manual/render/eevee/light_probes/volume.rst @@ -0,0 +1,88 @@ + +****************** +Light Probe Volume +****************** + +Diffuse indirect lighting is stored in a light probe volume object. + +Lighting is computed at the dot positions visible when the Irradiance Volume object is selected. + +If an object is not inside any Irradiance Volume, or if the indirect lighting has not been baked, +the world's diffuse lighting will be used to shade it. + +.. tip:: + + - When lighting indoor environments, try to align grids with the room shape. + - Try not to put too much resolution in empty areas or areas with a low amount of lighting variation. + - You can fix bad samples by adding a smaller grid near the problematic area. + + +.. reference:: + + :Panel: :menuselection:`Object Data --> Probe` + +Resolution + Spatial resolution for volumetric light probes is determined per probe. + The local volume is divided into a regular grid of the specified dimensions. + Irradiance light sample will be computed for each cell in this grid. + +Intensity + Intensity factor of the recorded lighting. + Making this parameter anything other than 1.0 is not physically correct. Use it for tweaking or + artistic purposes. + +Bake Samples + Number of ray directions to evaluate when baking. + +Surfel Density + Number of surfels per unit distance. Higher values improves quality. + +Capture Distance + The maximum distance to capture light from. + +Clamp Direct + Clamp incoming direct light. 0.0 disables direct light clamping. + +Clamp Indirect + Clamp incoming indirect light. 0.0 disables indirect light clamping. + +Normal Bias + Offset sampling of the irradiance grid in the surface normal direction to reduce light bleeding. + +Facing Bias + Smoother irradiance interpolation but introduce light bleeding. + +Capture Surface Bias + Moves capture points position away from surfaces to avoid artifacts. + +Capture Escape Bias + Moves capture points outside objects. + +Dilation Threshold + Ratio of front-facing surface hits under which a grid sample will reuse neighbors grid sample + lighting. + +Dilation radius + Radius in grid sample to search valid grid samples to copy into invalid grid samples. + +Capture world + Bake incoming light fromn the world, instead of just visibility, for more accurate lighting, + but lose correct blending to surrounding irradiance volumes. + +Capture Indirect + Bake light bounces from light source for more accurate lighting. + +Capture Emission + Bake emissive surfaces for more accurate lighting. + + + + +Viewport Display +================ + +Influence + Show the influence bounds in the 3D Viewport. The inner sphere is where the falloff starts. + +Clipping + Show the clipping distance in the 3D Viewport. diff --git a/manual/render/eevee/limitations.rst b/manual/render/eevee/limitations.rst index 07034a91d..ab9c377a6 100644 --- a/manual/render/eevee/limitations.rst +++ b/manual/render/eevee/limitations.rst @@ -18,34 +18,25 @@ Cameras Lights ====== -- Only 128 active lights can be supported by EEVEE in a scene. -- Only 8 Shadowed sun lights can be supported at the same time. -- As of now, lights can only have one color and do not support light node trees. +- For now lights can only have one color and do not support light node trees. Light Probes ============ -- EEVEE only supports up to 128 active Reflection Cubemaps. -- EEVEE only supports up to 64 active Irradiance Volumes. -- EEVEE only supports up to 16 active Reflection Planes inside the view frustum. +- EEVEE supports up to 128 active light probe spheres. +- EEVEE supports up to 16 active light probe planes inside the view frustum. Indirect Lighting ================= -- Volumetrics don't receive light from Irradiance Volumes but do receive world's diffuse lighting. -- EEVEE does not support "specular to diffuse" light bounces nor "specular to specular" light bounces. -- All specular lighting is turned off during baking. - - -.. _eevee-limitations-shadows: +- Light probe capture does not support specular reflections. Specular energy is treated as diffuse. Shadows ======= -- Only 128 active lights can be supported by EEVEE in a scene. -- Only 8 Shadowed sun lights can be supported at the same time. +- See :ref:`eevee-limitations-shadows` for a detailed explanation of shadow limitations. .. _eevee-limitations-volumetrics: @@ -55,10 +46,8 @@ Volumetrics - Only single scattering is supported. - Volumetrics are rendered only for the camera "rays". They don't appear in reflections/refractions and probes. -- Volumetrics don't receive light from Irradiance Volumes but do receive diffuse lighting from the world. - Volumetric shadowing only work in volumetrics. They won't cast shadows onto solid objects in the scene. - Volumetric shadowing only work for volumes inside the view frustum. -- Volumetric lighting do not respect the lights shapes. They are treated as point lights. .. _eevee-limitations-dof: @@ -74,7 +63,7 @@ Depth of Field Screen Space Effects ==================== -EEVEE is not a ray tracing engine and cannot do ray-triangle intersection. +EEVEE is not a path tracing engine and cannot do ray-triangle intersection. Instead of this, EEVEE uses the depth buffer as an approximated scene representation. This reduces the complexity of scene scale effects and enables a higher performance. However, only what is in inside the view can be considered when computing these effects. @@ -98,26 +87,21 @@ Ambient Occlusion ----------------- - Objects are treated as infinitely thick, producing overshadowing if the *Distance* is really large. +- Objects are treated as uniformly thick, producing over- or under-shadowing depending on the + thickness value. -.. _eevee-limitations-reflections: +.. _eevee-limitations-raytracing: -Screen Space Reflections ------------------------- +Raytracing +---------- -- Only one glossy BSDF can emit screen space reflections. -- The evaluated BSDF is currently arbitrarily chosen. - Screen Space Reflections will reflect transparent objects and objects using Screen Space Refraction but without accurate positioning due to the one layer depth buffer. - - -.. _eevee-limitations-refraction: - -Screen Space Refraction ------------------------ - +- Blended materials and materials using raytrace refractions will not appear in dithered materials. +- Blender materials are not compatible with raytracing. - Only one refraction event is correctly modeled. -- Only opaque and alpha hashed materials can be refracted. +- Only dithered materials *not* using Raytrace Refractions can be refracted. .. _eevee-limitations-sss: @@ -133,14 +117,6 @@ Subsurface Scattering leading to light leaking from surface to surface. -Motion Blur -=========== - -:doc:`Motion Blur ` -is only available in final renders and is not shown in the 3D Viewport -and thus :ref:`Viewport Renders `. - - .. _eevee-limitations-materials: Materials @@ -154,14 +130,8 @@ Refractions Using Screen Space refraction will refract what is visible inside the view, and use the nearest probe if there is no hit. - Screen Space Reflections and Ambient Occlusion are not compatible with Screen Space Refraction; - they will be disabled on the surfaces that use it. - Surfaces that use Screen Space Refraction will not appear in Screen Space Reflections at the right place. - Surfaces that use Screen Space Refraction will not cast Ambient Occlusion onto other surfaces. - -Volume Objects - Object volume shaders will affect the whole bounding box of the object. - The shape of the volume must be adjusted using procedural texturing inside the shader. + Surfaces that use raytrace refraction will not cast ambient occlusion onto other materials not + using this option. Shader Nodes @@ -214,4 +184,4 @@ multiple :abbr:`GPU (Graphic Processing Unit, also known as Graphics Card)` syst Headless Rendering ================== -There is currently no support for using EEVEE on headless systems (i.e. without a Display Manager). +Headless rendering is not supported on headless Windows systems. diff --git a/manual/render/eevee/limitations_shadow.rst b/manual/render/eevee/limitations_shadow.rst new file mode 100644 index 000000000..2263309f2 --- /dev/null +++ b/manual/render/eevee/limitations_shadow.rst @@ -0,0 +1,12 @@ +.. _eevee-limitations-shadows: + +****************** +Limitations shadow +****************** + +.. todo:: + + This section still needs to be written. Explaining the limitations of the SVM shadowing + algorithm. + + diff --git a/manual/render/eevee/materials/introduction.rst b/manual/render/eevee/materials/introduction.rst index 06b003a2a..1558afddc 100644 --- a/manual/render/eevee/materials/introduction.rst +++ b/manual/render/eevee/materials/introduction.rst @@ -12,14 +12,3 @@ Nodes Support Due to realtime constraints, not all Cycles features are available in EEVEE. See :doc:`/render/eevee/materials/nodes_support`. - -Performance -=========== - -Performance is highly dependent on the number of BSDF nodes present in the node tree. - -.. tip:: - - Prefer using the Principled BSDF instead of multiple BSDF nodes because EEVEE is optimized for it. - -.. seealso:: :ref:`Limitations `. diff --git a/manual/render/eevee/materials/nodes_support.rst b/manual/render/eevee/materials/nodes_support.rst index 5838598f2..a94597421 100644 --- a/manual/render/eevee/materials/nodes_support.rst +++ b/manual/render/eevee/materials/nodes_support.rst @@ -56,20 +56,17 @@ Emission Treated as indirect lighting and will only show up in :abbr:`SSR (Screen Space Reflection)`\ s and Probes. Glass / Refraction BSDF - Does not refract lights. Does not support Beckmann distribution. - See :ref:`Refraction limitations `. + Does not refract lights objects. Does not support Beckmann distribution. + See :ref:`Raytracing limitations `. Glossy BSDF Does not support Beckmann and Ashikhmin-Shirley distributions. Subsurface Scattering - Random Walk sampling is not supported. Per color channel Radius is specified by the default socket value. - Any link plugged into this socket gets ignored. - Texture Blur is not accurate for any value other than 0.0 and 1.0. + Random Walk sampling, IOR and Anisotropic are not supported. Transparent BSDF - Transparency will only have an effect if the Material blend mode is not Opaque. - Colored and additive transparency are only compatible with "Alpha Blend" mode. + Colored and additive transparency are only compatible with blended modes. Translucent BSDF Does not diffuse the light inside the object. It only lights the object with reversed normals. @@ -90,8 +87,7 @@ Principled Volume Same as Volume Scatter. See :ref:`Volume Limitation `. Holdout - Partially supported, using :ref:`Blend Modes ` - other than *Alpha* may give incorrect results. + Partially supported, using dithered mode may give incorrect results. Anisotropic BSDF Not supported. @@ -115,9 +111,6 @@ Input Nodes Ambient Occlusion The sample count is not used. -Camera Data - EveHair Inforything is compatible. - Geometry Pointiness is not supported. @@ -133,37 +126,26 @@ Attribute Bevel Not supported. -Fresnel - Everything is compatible. - Curves Info The Random output uses a different :abbr:`RNG (Random Number Generator)` algorithm. Range and statistical distribution of the values should be the same but the values will be different. -Layer Weight - Everything is compatible. - Light Path EEVEE has no real concept of rays. But in order to ease the workflow between Cycles and EEVEE some of the outputs are only supported in particular cases. This node makes it possible to tweak indirect lighting in the shader. - Only a subset of the outputs are supported and the ray depth does not exactly have the same meaning. - In order for the *Is Camera*, *Is Shadow*, *Is Diffuse*, and *Is Glossy* outputs to work, - the object must be inside an :doc:`Irradiance Volume ` - and :doc:`/render/eevee/render_settings/indirect_lighting` must be baked. - - *Is Camera*: Supported. - *Is Shadow*: Supported. - - *Is Diffuse*: Supported. - - *Is Glossy*: Supported. + - *Is Diffuse*: Set to 1.0 when baking light probe volume. Otherwise is set to 0.0. + - *Is Glossy*: Set to 1.0 when baking light probe sphere or plane. Otherwise is set to 0.0. - *Is Singular*: Not supported. Same as Is Glossy. - *Is Reflection*: Not supported. Same as Is Glossy. - *Is Transmission*: Not supported. Same as Is Glossy. - *Ray Length*: Not supported. Defaults to 1.0. - - *Ray Depth*: Indicates the current bounce when baking the light cache. - - *Diffuse Depth*: Same as Ray Depth but only when baking diffuse light. - - *Glossy Depth*: Same as Ray Depth but only when baking specular light. + - *Ray Depth*: Not supported. Defaults to 0.0. + - *Diffuse Depth*: Partially supported. Set to 1.0 when baking light probe volume. Otherwise is set to 0.0. + - *Glossy Depth*: Partially supported. Set to 1.0 when baking light probe sphere or plane. Otherwise is set to 0.0. - *Transparent Depth*: Not supported. Defaults to 0. - *Transmission Depth*: Not supported. Same as Glossy Depth. @@ -172,15 +154,9 @@ Light Path *Is Glossy* does not work with Screen Space Reflections/Refractions but does work with reflection planes (whether used with SSR or not). -Object Info - Everything is compatible. - Particle Info Not supported. -Tangent - Everything is compatible. - Texture Coordinate *From Instancer* is not supported. @@ -219,12 +195,3 @@ Other Nodes Light Falloff Not supported. - -Bump - Imprecision due to less precise derivatives. - -Displacement/Vector Displacement - Not supported. - -Material Output - Displacement output behavior is broken compared to Cycles. diff --git a/manual/render/eevee/render_settings/screen_space_reflections.rst b/manual/render/eevee/render_settings/screen_space_reflections.rst index 1ea3816db..7d56e978a 100644 --- a/manual/render/eevee/render_settings/screen_space_reflections.rst +++ b/manual/render/eevee/render_settings/screen_space_reflections.rst @@ -45,4 +45,4 @@ Edge Fading Clamp Clamp the reflected color intensity to remove noise and :term:`Fireflies`. -.. seealso:: :ref:`Limitations `. +.. seealso:: :ref:`Limitations `. -- 2.30.2 From 7a6743b7da0c4f0df09c45723e625843e0d7b9de Mon Sep 17 00:00:00 2001 From: Jeroen Bakker Date: Mon, 13 Nov 2023 09:47:38 +0100 Subject: [PATCH 2/3] Render, Light, World and Material settings --- manual/render/eevee/light_probes/sphere.rst | 2 +- .../render/eevee/materials/nodes_support.rst | 3 - manual/render/eevee/materials/settings.rst | 217 ++++++------------ .../render_settings/ambient_occlusion.rst | 40 ---- manual/render/eevee/render_settings/bloom.rst | 30 --- .../render_settings/{hair.rst => curves.rst} | 0 .../eevee/render_settings/depth_of_field.rst | 8 - .../eevee/render_settings/horizon_scan.rst | 18 ++ manual/render/eevee/render_settings/index.rst | 17 +- .../render_settings/indirect_lighting.rst | 73 ------ .../eevee/render_settings/light_probes.rst | 35 +++ .../render/eevee/render_settings/lights.rst | 10 + .../eevee/render_settings/motion_blur.rst | 30 +-- ...n_space_reflections.rst => raytracing.rst} | 64 ++++-- .../render/eevee/render_settings/sampling.rst | 16 +- .../render/eevee/render_settings/shadows.rst | 55 +---- .../render_settings/subsurface_scattering.rst | 31 --- .../{volumetrics.rst => volumes.rst} | 4 + manual/render/eevee/world.rst | 30 ++- manual/render/layers/passes.rst | 6 +- .../render/shader_nodes/input/light_path.rst | 4 +- 21 files changed, 249 insertions(+), 444 deletions(-) delete mode 100644 manual/render/eevee/render_settings/ambient_occlusion.rst delete mode 100644 manual/render/eevee/render_settings/bloom.rst rename manual/render/eevee/render_settings/{hair.rst => curves.rst} (100%) create mode 100644 manual/render/eevee/render_settings/horizon_scan.rst delete mode 100644 manual/render/eevee/render_settings/indirect_lighting.rst create mode 100644 manual/render/eevee/render_settings/light_probes.rst create mode 100644 manual/render/eevee/render_settings/lights.rst rename manual/render/eevee/render_settings/{screen_space_reflections.rst => raytracing.rst} (54%) delete mode 100644 manual/render/eevee/render_settings/subsurface_scattering.rst rename manual/render/eevee/render_settings/{volumetrics.rst => volumes.rst} (92%) diff --git a/manual/render/eevee/light_probes/sphere.rst b/manual/render/eevee/light_probes/sphere.rst index 5508cb6f7..e30bcf970 100644 --- a/manual/render/eevee/light_probes/sphere.rst +++ b/manual/render/eevee/light_probes/sphere.rst @@ -7,7 +7,7 @@ Specular Indirect Lighting can be stored in a light probe sphere. .. seealso:: - :doc:`Indirect Lighting `. + :doc:`Indirect Lighting `. *Ray traced reflections* are more precise than spherical light probes. If enabled, they have priority and spherical light probes are used as a fall back if a ray misses. diff --git a/manual/render/eevee/materials/nodes_support.rst b/manual/render/eevee/materials/nodes_support.rst index a94597421..bdb1d0e8c 100644 --- a/manual/render/eevee/materials/nodes_support.rst +++ b/manual/render/eevee/materials/nodes_support.rst @@ -52,9 +52,6 @@ Although most BSDFs are supported, many of them are approximations and are not f Diffuse BSDF Roughness is not supported. Only Lambertian diffusion is supported. -Emission - Treated as indirect lighting and will only show up in :abbr:`SSR (Screen Space Reflection)`\ s and Probes. - Glass / Refraction BSDF Does not refract lights objects. Does not support Beckmann distribution. See :ref:`Raytracing limitations `. diff --git a/manual/render/eevee/materials/settings.rst b/manual/render/eevee/materials/settings.rst index 36f95d5a9..1f5c655e5 100644 --- a/manual/render/eevee/materials/settings.rst +++ b/manual/render/eevee/materials/settings.rst @@ -7,157 +7,6 @@ Material Settings :Panel: :menuselection:`Properties --> Material --> Settings` - -.. _bpy.types.Material.use_backface_culling: - -Backface Culling -================ - -Backface Culling hides the back side of faces. - - -.. _bpy.types.Material.blend_method: - -Blend Mode -========== - -After calculating the color of a surface, the blend mode defines how it is added to the color buffer. -Depending on this, the final color will be different. - -.. note:: - - Alpha Blending is considered a "Transparent" blend mode - and has implications regarding screen space effects. - -Opaque - The previous color will be overwritten by the surface color. - The alpha component is ignored. This is the fastest option. - -Alpha Clip - The previous color will be overwritten by the surface color, - but only if the alpha value is above the *Clip Threshold* value. - -Alpha Hashed - The previous color will be overwritten by the surface color, - but only if the alpha value is above a random clip threshold. - This statistical approach is noisy but is able to approximate alpha blending without any sorting problem. - Increasing the sample count in the render settings will reduce the resulting noise. - -Alpha Blending - Use alpha blending to overlay the surface color on top of the previous color. - - -Sorting Problem ---------------- - -When writing to the color buffer using transparent blend modes, -the order in which the color blending happens is important as it can change the final output color. -As of now EEVEE does not support per-fragment (pixel) sorting or per-triangle sorting. -Only per-object sorting is available and is automatically done on all transparent surfaces based on object origin. - -.. note:: - - Per-object sorting has a performance cost and having thousands of - these objects in a scene will greatly degrade performance. - -.. _bpy.types.Material.show_transparent_back: - -Show Backface - If enabled, all transparent fragments will be rendered. - If disabled, only the front-most surface fragments will be rendered. - Disable this option to ensure correct appearance of transparency from any point of view. - When using *Alpha Blending* this option should be disabled because with *Alpha Blending*, - the order in which triangles are sorted is important. - - -.. _bpy.types.Material.shadow_method: - -Shadow Mode -=========== - -Type of shadows used for a transparent surface. -EEVEE does not support colored shadow maps. - -Half transparent shadows can be produced by using hashed transparent shadows and -a larger Soft value on the shadow map. - -.. note:: - - This option does not change the behavior of contact shadows which are traced using the depth buffer. - If the material is writing to the depth buffer - (in other words, if the blend mode is set to either *Opaque*, *Alpha Clip* or *Alpha Hashed*), - contact shadows will be cast by the surface material regardless of the *Transparent Shadow* type. - -None - The surface will not cast any shadow. - -Opaque - The surface will cast shadows like an opaque surface. - -Alpha Clip - The surface will cast shadows like an opaque surface, - but only areas where the alpha value is above the *Clip Threshold* value. - -Alpha Hashed - The surface will cast shadows like an opaque surface, - but only areas where the alpha value is above a random threshold. - - -.. _bpy.types.Material.alpha_threshold: - -Clip Threshold -============== - -Threshold value for Alpha Clip mode in *Blend Mode* and *Shadow Mode*. - - -Screen Space Refraction -======================= - -Enabling Screen Space Refraction on a surface means that refraction BSDFs -will do a ray trace against the depth buffer to find the most accurate refracted color. -This has a big performance cost if the surface covers a lot of pixels. - -Screen Space Reflections and Ambient Occlusion are not compatible with Screen Space Refraction. -They will be disabled on the surfaces that use it. -Surfaces that use Screen Space Refraction will not appear in Screen Space Reflections at the right place. -Surfaces that use Screen Space Refraction will not cast Ambient Occlusion onto other surfaces. - -If this option is disabled or if the Screen Space Refraction ray tracing fails, -the refracted ray will use the color of the nearest probe. - -.. _bpy.types.Material.use_screen_refraction: - -Screen Space Refraction - Enables screen space refraction. - -.. _bpy.types.Material.refraction_depth: - -Refraction Depth - If Refraction Depth is not 0.0, all refraction BSDFs in the shader will act as if - the object is a thin slab of the refraction material having this thickness. - This will model a second refraction event that will double the absorption color and - start the refraction ray after this second event. - - This option greatly increases the quality of thin glass objects. - - -.. _bpy.types.Material.use_sss_translucency: - -Subsurface Translucency -======================= - -EEVEE's Subsurface Scattering algorithm works by blurring the irradiance in screen space. -This means that if no visible part of the surface is lit, the effect disappears. - -However, true Subsurface Scattering goes beneath the surface and can travel a large distance. -This is why a human ear lit from behind appears red on the front side. - -That is what this effect mimics. This translucency approximation only works -with lights that have shadow maps and only on Subsurface BSDFs (not the Translucency BSDFs). -It does not work with indirect lighting. The soft parameter of the shadow maps also affects this effect. - - Pass Index ========== @@ -168,3 +17,69 @@ the :doc:`ID Mask Node ` in the Compositor. .. note:: :doc:`Volume Objects ` are not supported. + + +.. _bpy.types.Material.surface: + +Surface +======= + +Backface Culling + Backface Culling hides the back side of faces. + + Camera + Use back face culling to hide the back side of the face. + + Shadow + Use back face culling when casting shadows. + +Max Displacement + The maximum distance a vertex can be displaced. Displacements over this threshold may cause + visibility issues. + +Transparent shadows + Use transparent shadows for this material if it contains a Transparent BSDF, Disabling will + render faster but not give accurate shadows. + +.. _bpy.types.Material.render_method: + +Render Method + Controls the blending and the compatibility with certain features. + + Dithered + Allows for grayscale hashed transparency, and compatible with render passes and raytracing. + Also know as deferred rendering. + + Blended + Allows the colored transparency, but incompatible with render passes and raytracing. Also + known as forward rendering. + +Transparency Overlap + Render multiple transparent layers. May introduce transparency sorting problems. + +Light Probe Volume + Single Sided + Consider materials single sided for light probe volume captures. Additionally helps rejecting + inside the object, to avoid light leaking. + + +.. _bpy.types.Material.volume: + +Volume +====== + +Intersection + Determines which inner part of the mesh will produce volumetric effect. + + Fast + Each gace is considered as a medium interface. Gives correct results for manifold geometry + that contains no inner part. + + Accurate + Faces are considered as medium interface only when they have different consecutive facing. + Gives correct results as long as the max ray depth is not exceeded. Has significant memory + overhead compared to the fast method. + + + + diff --git a/manual/render/eevee/render_settings/ambient_occlusion.rst b/manual/render/eevee/render_settings/ambient_occlusion.rst deleted file mode 100644 index 7f8f252b3..000000000 --- a/manual/render/eevee/render_settings/ambient_occlusion.rst +++ /dev/null @@ -1,40 +0,0 @@ -.. _bpy.types.SceneEEVEE.gtao: - -***************** -Ambient Occlusion -***************** - -Ambient occlusion is computed using :abbr:`GTAO (Ground Truth Ambient Occlusion)` and applied to indirect lighting. -The bent normal option will make the diffuse lighting come from only the least occluded direction. - -Ambient occlusion can be rendered as a separate pass in the Render Layers panel. - -.. note:: - - This effect needs to be enabled for the :doc:`Ambient Occlusion ` node to work. - -.. reference:: - - :Panel: :menuselection:`Render --> Ambient Occlusion` - -Distance - Distance of object that contributes to the ambient occlusion effect. - -Factor - Blend factor for the ambient occlusion effect. - -Trace Precision - Increases precision of the effect but introduces more noise and lowers the maximum trace distance. - Increased precision also increases the performance cost. - Lower precision will also miss occluders and lead to undershadowing. - -Bent Normals - Compute the least occluded direction. - This direction can be used to sample the diffuse irradiance in a more realistic way. - -Bounce Approximation - An approximation to simulate light bounces giving less occlusion on brighter objects. - It only takes into account the surface color and not its surroundings. - This is not applied to the ambient occlusion pass. - -.. seealso:: :ref:`Limitations `. diff --git a/manual/render/eevee/render_settings/bloom.rst b/manual/render/eevee/render_settings/bloom.rst deleted file mode 100644 index 291cdebed..000000000 --- a/manual/render/eevee/render_settings/bloom.rst +++ /dev/null @@ -1,30 +0,0 @@ -.. _bpy.types.SceneEEVEE.bloom: - -***** -Bloom -***** - -Bloom is a post-process effect that diffuses very bright pixels. This mimics lens artifacts of real cameras. -This allows a better sense of what the actual intensities of the pixels are. - -.. reference:: - - :Panel: :menuselection:`Render --> Bloom` - -Threshold - Filters out pixels under this level of brightness. - -Knee - Makes transition between under/over-threshold gradual. - -Radius - Bloom spread distance. - -Color - Color applied to the bloom effect. - -Intensity - Blend factor. - -Clamp - Maximum intensity a bloom pixel can have. diff --git a/manual/render/eevee/render_settings/hair.rst b/manual/render/eevee/render_settings/curves.rst similarity index 100% rename from manual/render/eevee/render_settings/hair.rst rename to manual/render/eevee/render_settings/curves.rst diff --git a/manual/render/eevee/render_settings/depth_of_field.rst b/manual/render/eevee/render_settings/depth_of_field.rst index b7441dfc1..3b500556f 100644 --- a/manual/render/eevee/render_settings/depth_of_field.rst +++ b/manual/render/eevee/render_settings/depth_of_field.rst @@ -48,14 +48,6 @@ Neighbor Rejection Lower values will improve the performance but will also reduce the quality of highlights. Brightness is in the scene's referred color space. -Denoise Amount - This will reduce the flickering by clamping the color of - each pixels to their neighborhood's average instead of their maximum. - Higher values gives more stable results but may darken the scene. - -High Quality Slight Defocus - Increase the quality of almost in-focus regions. - Jitter Camera Randomize the camera position for every scene render sample to increase precision. Enabling this option can change the scene's actual sample count. diff --git a/manual/render/eevee/render_settings/horizon_scan.rst b/manual/render/eevee/render_settings/horizon_scan.rst new file mode 100644 index 000000000..e4ecb68b8 --- /dev/null +++ b/manual/render/eevee/render_settings/horizon_scan.rst @@ -0,0 +1,18 @@ +************ +Horizon Scan +************ + +.. reference:: + + :Panel: :menuselection:`Render --> Horizon Scan` + +Precision + Precision of the horizon scan. + +Thickness + Constant thickness of the surfaces considered when doing horizon scan and by extension ambient + occlusion. + +Bias + Bias the horozon angles to reduce self intersection artifacts. + diff --git a/manual/render/eevee/render_settings/index.rst b/manual/render/eevee/render_settings/index.rst index 35cfeab9a..5ae1c5027 100644 --- a/manual/render/eevee/render_settings/index.rst +++ b/manual/render/eevee/render_settings/index.rst @@ -8,16 +8,15 @@ :maxdepth: 2 sampling.rst - grease_pencil.rst - ambient_occlusion.rst - bloom.rst depth_of_field.rst - subsurface_scattering.rst - screen_space_reflections.rst - motion_blur - volumetrics.rst + horizon_scan.rst + raytracing.rst + volumes.rst performance.rst - hair.rst + curves.rst + lights.rst shadows.rst - indirect_lighting.rst + light_probes.rst film.rst + motion_blur.rst + grease_pencil.rst diff --git a/manual/render/eevee/render_settings/indirect_lighting.rst b/manual/render/eevee/render_settings/indirect_lighting.rst deleted file mode 100644 index 1527a4175..000000000 --- a/manual/render/eevee/render_settings/indirect_lighting.rst +++ /dev/null @@ -1,73 +0,0 @@ -.. _bpy.ops.scene.light_cache: -.. _bpy.types.SceneEEVEE.gi: - -***************** -Indirect Lighting -***************** - -While not strictly correct, all lighting that is not coming straight out -from a light object is considered as indirect lighting in EEVEE. -That means distant :term:`HDRI` lighting (or World) is considered as indirect lighting. -Mesh objects using an Emission node are also considered as indirect lighting. - -In EEVEE, indirect lighting is separated into two component: Diffuse and Specular. -Both have different needs and representation. For efficiency, -the indirect lighting data is precomputed on demand into a static lighting cache. - -As of now the light cache is static and needs to be computed before rendering. -It cannot be updated per frame (unless via scripting). -This limitation is being worked on and will be removed in future versions. - -Only view independent lighting can be baked. This is why Reflection Planes are not stored inside the light cache. - -The visibility and collections used during the baking process are the ones in the current Active View Layer. - -To enable light bounces through large environments, the light baking process can be run multiple times -while injecting the previous bake result into the bake. - -Light bounces only concerns diffuse lighting. - - -.. reference:: - - :Panel: :menuselection:`Render --> Indirect Lighting` - -Auto Bake - Enabling this option will trigger baking when a probe is changed; useful when positioning probes objects. - -Diffuse Bounces - Number of bounces to compute when baking the diffuse irradiance. - Total baking time is more or less multiplied by the number of bounce. - -Cubemap Size - Size of the reflection cubemaps. - -Diffuse Occlusion - Each irradiance sample also stores a shadow map that is used to minimize indirect light leaking. - This parameter defines the size of this shadow map. - -Irradiance Smoothing - Smooths irradiance interpolation but introduces light bleeding. - The irradiance visibility term can make the lighting not interpolate smoothly on some surfaces. - This setting relaxes the weight of that interpolation. - -Clamp Glossy - Clamp pixel intensity to reduce noise inside glossy reflections from reflection cubemaps (0 is disabled). - -Filter Quality - Takes more samples during cubemap filtering to remove artifacts. For now, this only has an effect on cubemaps. - - -Display -======= - -Cubemap Size - Display the Reflection Cubemaps present in the cache directly in the 3D Viewport. - -Irradiance Size - Display the Irradiance Samples present in the cache in the 3D Viewport. - -.. note:: - - Cache data display only works in the 3D Viewport and - only if the viewport uses world lighting in Material Preview or Rendered mode. diff --git a/manual/render/eevee/render_settings/light_probes.rst b/manual/render/eevee/render_settings/light_probes.rst new file mode 100644 index 000000000..60cf19ca4 --- /dev/null +++ b/manual/render/eevee/render_settings/light_probes.rst @@ -0,0 +1,35 @@ +.. _bpy.ops.scene.light_cache: +.. _bpy.types.SceneEEVEE.gi: + +************ +Light Probes +************ + +While not strictly correct, all lighting that is not coming straight out +from a light object is considered as indirect lighting in EEVEE. +That means distant :term:`HDRI` lighting (or World) is considered as indirect lighting. + +In EEVEE, indirect lighting is separated into two component: Diffuse and Specular. +Both have different needs and representation. For efficiency, +the diffuse indirect lighting data is precomputed on demand into a static lighting cache. + +As of now the diffuse light cache is static and needs to be computed before rendering. +It cannot be updated per frame (unless via scripting). +This limitation is being worked on and will be removed in future versions. + + +.. reference:: + + :Panel: :menuselection:`Render --> Light Probes` + +Sphere +====== +Resolution + Resolution when using Light Probe Spheres. + +Volume +====== + +Pool Size + Size of the irradiance pool, a bigger pool size allows for more irradiance grid in the scene, + but might not fit into GPU memory and decreases performance. diff --git a/manual/render/eevee/render_settings/lights.rst b/manual/render/eevee/render_settings/lights.rst new file mode 100644 index 000000000..adb87d49a --- /dev/null +++ b/manual/render/eevee/render_settings/lights.rst @@ -0,0 +1,10 @@ +****** +Lights +****** + +.. reference:: + + :Panel: :menuselection:`Render --> Lights` + +Light Threshold + Minimum light intensity for a light to contribute to the lighting. diff --git a/manual/render/eevee/render_settings/motion_blur.rst b/manual/render/eevee/render_settings/motion_blur.rst index e08b122d1..812a878da 100644 --- a/manual/render/eevee/render_settings/motion_blur.rst +++ b/manual/render/eevee/render_settings/motion_blur.rst @@ -35,33 +35,6 @@ Background Separation Used by the post-process blur to avoid blurring the background over the foreground. Lower values will reduce background bleeding onto foreground elements. -Max Blur - Maximum blur distance a pixel can spread over. - A value of 0 will disable the post-process blur and only use the accumulation blur. - - .. note:: - - High maximum blur values may also reduce the quality. - - EEVEE uses a fast post-process vector blur using a vector motion pass. - This blurs the image between three time steps using pixel velocity. - This technique is fast and produces clean gradients, but issues can occur at object borders - or if the motion is locally too complex; - for example, if there are many vector variations in a small area. - - This technique uses random sampling and the noise amount is proportional to the sample count found in - :menuselection:`Properties --> Render --> Sampling --> Render Samples`. - - .. note:: - - Memory usage (VRAM) will be three times higher for objects using deformation motion blur - if using post-process blur. - - .. note:: - - Alpha blended surface or volumetric effects will not have the correct velocity and will not - be correctly blurred by this technique. Use the accumulation blur for that. - Steps This controls the number of steps used by the accumulation blur and thus its accuracy. More steps means longer render time. @@ -79,6 +52,9 @@ Steps By adding more steps you can also reduce the *Max Blur* options because the post-process blur has to cover a smaller distance. +Shutter Curve + Use a custom shutter curve. + Example ======= diff --git a/manual/render/eevee/render_settings/screen_space_reflections.rst b/manual/render/eevee/render_settings/raytracing.rst similarity index 54% rename from manual/render/eevee/render_settings/screen_space_reflections.rst rename to manual/render/eevee/render_settings/raytracing.rst index 7d56e978a..40dd5b8ee 100644 --- a/manual/render/eevee/render_settings/screen_space_reflections.rst +++ b/manual/render/eevee/render_settings/raytracing.rst @@ -1,23 +1,55 @@ -.. _bpy.types.SceneEEVEE.ssr: +.. _bpy.types.SceneEEVEE.raytracing: -************************ -Screen Space Reflections -************************ - -If this effect is enabled, all Materials will use the depth buffer and -the previous frame color to create more accurate reflection than reflection probes. - -If a *Reflection Plane* is near a reflective surface, -it will be used as the source for tracing rays more efficiently and fix the partial visibility problem. - -.. figure:: /images/render_eevee_render-settings_screen-space-reflections_planar-reflection-combo.jpg - -However, the reflected color will not contain the following effects: -Subsurface scattering, volumetrics, screen space reflections, screen space refractions. +********** +Raytracing +********** .. reference:: - :Panel: :menuselection:`Render --> Screen Space Reflections` + :Panel: :menuselection:`Render --> Raytracing` + +Method + Select the tracing method used to find scene-ray intersecions + + Screen-Trace + Raytrace against the depth buffer + + None + No intersection with scene geometry + +Settings + Split the settings per ray type (Reflection/Refraction/Diffuse) + + Unified + All the ray types use the same settings + + Split + Settings are individual to each ray type + +Ray Type +======== + +When the settings are split per ray type this section will be repeated for reflection, refraction +and diffuse rays. + +Resolution + Number of rays per pixel. Choice out of 1, 1/4 and 1/16 rays per pixel. + +Clamp + Clamp ray intensity to reduce noise. Use 0 to disable. + +Denoising + Denoising can be enabled to reduce noise in raytraced effects. + + Spatial Reuse + Reuse the rays from neighbor pixels. + + Temporal Accumulation + Accumulate samples by reprojectiong last ray tracing results. + + Bilateral Filter + Blur the resolved radiance using a bilateral filter. + Refractions Screen space refractions work the same way as screen space reflections and use the same parameters. diff --git a/manual/render/eevee/render_settings/sampling.rst b/manual/render/eevee/render_settings/sampling.rst index 9451ad3e3..b508de492 100644 --- a/manual/render/eevee/render_settings/sampling.rst +++ b/manual/render/eevee/render_settings/sampling.rst @@ -13,12 +13,20 @@ TAA is sample based so the more samples the more aliasing is reduced at the cost :Panel: :menuselection:`Render --> Sampling` Viewport +======== + +Samples The number of samples to use in the 3D Viewport. When setting this to zero the viewport will be resampled continuously. -Render - The number of samples to use in the final render. .. _bpy.types.SceneEEVEE.use_taa_reprojection: -Viewport Denoising - Reduces noise while moving the viewport or during animation playback. +Temporal Reprojection + Reduces noise while moving the viewport or during animation playback. Can leave some ghosting. + +Render +====== + +Samples + The number of samples to use in the final render. + diff --git a/manual/render/eevee/render_settings/shadows.rst b/manual/render/eevee/render_settings/shadows.rst index c06f302fe..e8c8c3fb6 100644 --- a/manual/render/eevee/render_settings/shadows.rst +++ b/manual/render/eevee/render_settings/shadows.rst @@ -5,56 +5,21 @@ Shadows ******* These settings influence shadows which appear on objects because there is another object (the occluder) -between them and a Light. EEVEE uses a technique called Shadow Mapping to calculate these shadows. -A shadow map is calculated by looking around from the position of each Light and finding the objects -which are closest to the Light. These objects are called the nearest occluders. -Everything which is behind (or, you can say, covered by) the nearest occluders will be in shadow. - -The shadow map is a cube (hence the term "cubemap") and the Light is in the middle of this cube. -The cube has six sides and each side is divided into a grid. -You can set the resolution of the grid (for example, 512 × 512 pixels) with the *Cube Size* setting below. -During shadow calculation, the nearest occluders are only searched at grid points but not between grid points. -Because of this, the edge of the calculated shadow will appear pixelated at low Cube Size settings. - -.. note:: - - Settings for the shadows and illumination caused by light bouncing between objects (indirect lighting) - can be found on the Indirect Lighting tab. +between them and a Light. .. reference:: :Panel: :menuselection:`Render --> Shadows` -Cube Size - Number of pixels on one side of the shadow cube-map (see above) - used to calculate the shadow of Point, Area and Spot lights. - If you want to make the edge of shadows less pixelated, then increase this value. - But be aware that this increases memory usage and decreases performance since a 512 px cube-map - has 6 × 512 × 512 pixels in it. +Pool Size + Size of the shadow pool, a bigger pool size allows for more shadows in the scene, but might not + fit into GPU memory. -Cascade Size - Size of one cascade used by *Cascaded Shadow Maps*. This is only for Sun lights. +Rays + Amount of shadow rays to trace for each light. -High Bitdepth - This option can help reduce some artifacts due to float imprecision inside the shadow maps. - This option effectively doubles the memory usage of shadow maps and will slow down their update. +Steps + Amount of shadow map sample per shadow ray. -Soft Shadows - Randomize the shadow map's origin to create soft shadows. It needs a lot of samples to get rid of the banding. - -Light Threshold - The minimum amount of light for a light to contribute for lighting. - This light threshold does not take the light shape into account and may not suit every case. - That is why Blender provides a :ref:`per-light override ` - where you can just set the cut off distance. - - The influence distance is also used as shadow far clip distance, which might affect how shadows look. - This influence distance does not affect sun lights that still have a far clip distance. - - .. seealso:: - - :ref:`Custom Distance `. - -.. note:: - - The Soft Shadows method is not physically based and will not match Cycles for very large lights. +Normal Bias + Move along their normal. diff --git a/manual/render/eevee/render_settings/subsurface_scattering.rst b/manual/render/eevee/render_settings/subsurface_scattering.rst deleted file mode 100644 index 10ef9edde..000000000 --- a/manual/render/eevee/render_settings/subsurface_scattering.rst +++ /dev/null @@ -1,31 +0,0 @@ -.. _bpy.types.SceneEEVEE.sss: - -********************* -Subsurface Scattering -********************* - -This effect mimics real subsurface scattering by blurring the diffuse lighting in screen space. - -.. reference:: - - :Panel: :menuselection:`Render --> Subsurface Scattering` - -Samples - Number of samples to compute the scattering effect. - -Jitter Threshold - For the effect to be efficient, samples need to be coherent and not random. - This can lead to a cross-shaped pattern when the scattering radius is high. - Increasing the Jitter Threshold will rotate the samples below this radius percentage - in a random pattern in order to hide the visible pattern. - This affects the performance if the scattering radius is large. - -.. note:: - - :ref:`Subsurface Translucency ` - needs to be enabled in order to make the light go through an object - (like simulating a human ear lit from behind). - - This option only works with shadowed lights and does not work with indirect lighting. - -.. seealso:: :ref:`Limitations `. diff --git a/manual/render/eevee/render_settings/volumetrics.rst b/manual/render/eevee/render_settings/volumes.rst similarity index 92% rename from manual/render/eevee/render_settings/volumetrics.rst rename to manual/render/eevee/render_settings/volumes.rst index 64c5111e6..0656943bf 100644 --- a/manual/render/eevee/render_settings/volumetrics.rst +++ b/manual/render/eevee/render_settings/volumes.rst @@ -32,6 +32,10 @@ Samples Distribution Blend between linear and exponential sample distribution. Higher values puts more samples near the camera. +Max Depth + Maximum surface intersection count used by accurate volume intersection method. Will create + artifacts if it is exceeded. + .. _bpy.types.SceneEEVEE.volumetric_light: diff --git a/manual/render/eevee/world.rst b/manual/render/eevee/world.rst index 7eb406ba2..b3bc1371d 100644 --- a/manual/render/eevee/world.rst +++ b/manual/render/eevee/world.rst @@ -10,6 +10,34 @@ In EEVEE, the world lighting contribution is first rendered and stored in smaller resolution textures before being applied to the objects. This makes the lighting less precise than Cycles. +Mist Pass +========= + +.. reference:: + + :Panel: :menuselection:`World --> Mist Pass` + +Start + Starting distance of the mist, measured from the camera. + +Depth + Distance over which the mist effect fades in. + +Falloff + Type of transition used to face mist. + + +Light Probe +=========== + +.. reference:: + + :Panel: :menuselection:`World --> Light Probe` + +Resolution + The resolution used to store the light from the world. + + .. seealso:: - :doc:`Indirect Lighting `. + :doc:`Indirect Lighting `. diff --git a/manual/render/layers/passes.rst b/manual/render/layers/passes.rst index 79e53b7dd..2bbedfcda 100644 --- a/manual/render/layers/passes.rst +++ b/manual/render/layers/passes.rst @@ -187,7 +187,7 @@ Bloom .. _bpy.types.ViewLayerEEVEE.use_pass_transparent: Transparency - Contain :ref:`Alpha Blended ` surfaces, + Contain :ref:`Blended ` surfaces, so they can be adjusted in the compositor and later mixed with opaque passes. This pass only supports monochromatic opacity. @@ -329,8 +329,8 @@ The passes can be combined to produce the final image as follows: Known Limitations ================= -- Alpha blended materials are not rendered in render passes except the combined pass. - Use the *Alpha Clip* or *Alpha Hashed* as :ref:`Blending Mode ` +- Blended materials are not rendered in render passes except the combined pass. + Use the *Dithered* as :ref:`Render Method ` to render transparent materials in render passes. - Depth of field is not rendered in render passes except the combined pass. It is possible to add the depth of field back in the Compositor using diff --git a/manual/render/shader_nodes/input/light_path.rst b/manual/render/shader_nodes/input/light_path.rst index 4754822c2..fff5ba296 100644 --- a/manual/render/shader_nodes/input/light_path.rst +++ b/manual/render/shader_nodes/input/light_path.rst @@ -72,8 +72,8 @@ This node makes it possible to tweak indirect lighting in the shader. Only a subset of the outputs are supported and the ray depth does not exactly have the same meaning. In order for the *Is Camera*, *Is Shadow*, *Is Diffuse*, and *Is Glossy* outputs to work, -the object must be inside an :doc:`Irradiance Volume ` -and :doc:`/render/eevee/render_settings/indirect_lighting` must be baked. +the object must be inside an :doc:`Irradiance Volume ` +and :doc:`/render/eevee/render_settings/light_probes` must be baked. - *Is Camera*: Supported. - *Is Shadow*: Supported. -- 2.30.2 From 6ab3e4498c1cb213bba48f56087176990c2d19ea Mon Sep 17 00:00:00 2001 From: Jeroen Bakker Date: Mon, 13 Nov 2023 10:37:55 +0100 Subject: [PATCH 3/3] Use :: for enum elements --- manual/render/eevee/materials/settings.rst | 8 ++++---- manual/render/eevee/render_settings/raytracing.rst | 8 ++++---- 2 files changed, 8 insertions(+), 8 deletions(-) diff --git a/manual/render/eevee/materials/settings.rst b/manual/render/eevee/materials/settings.rst index 1f5c655e5..7427a2f9d 100644 --- a/manual/render/eevee/materials/settings.rst +++ b/manual/render/eevee/materials/settings.rst @@ -46,11 +46,11 @@ Transparent shadows Render Method Controls the blending and the compatibility with certain features. - Dithered + :Dithered: Allows for grayscale hashed transparency, and compatible with render passes and raytracing. Also know as deferred rendering. - Blended + :Blended: Allows the colored transparency, but incompatible with render passes and raytracing. Also known as forward rendering. @@ -71,11 +71,11 @@ Volume Intersection Determines which inner part of the mesh will produce volumetric effect. - Fast + :Fast: Each gace is considered as a medium interface. Gives correct results for manifold geometry that contains no inner part. - Accurate + :Accurate: Faces are considered as medium interface only when they have different consecutive facing. Gives correct results as long as the max ray depth is not exceeded. Has significant memory overhead compared to the fast method. diff --git a/manual/render/eevee/render_settings/raytracing.rst b/manual/render/eevee/render_settings/raytracing.rst index 40dd5b8ee..e170307b7 100644 --- a/manual/render/eevee/render_settings/raytracing.rst +++ b/manual/render/eevee/render_settings/raytracing.rst @@ -11,19 +11,19 @@ Raytracing Method Select the tracing method used to find scene-ray intersecions - Screen-Trace + :Screen-Trace: Raytrace against the depth buffer - None + :None: No intersection with scene geometry Settings Split the settings per ray type (Reflection/Refraction/Diffuse) - Unified + :Unified: All the ray types use the same settings - Split + :Split: Settings are individual to each ray type Ray Type -- 2.30.2