WIP: EEVEE-Next: Initial pass blender manual #104615

Closed
Jeroen Bakker wants to merge 5 commits from Jeroen-Bakker/blender-manual:eevee-next/first-iteration into main

When changing the target branch, be careful to rebase the branch in your fork to match. See documentation.
33 changed files with 514 additions and 848 deletions

View File

@ -15,3 +15,4 @@
lighting.rst
light_probes/index.rst
limitations.rst
limitations_shadow.rst

View File

@ -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.

I think the previous wording was clearer.

I think the previous wording was clearer.
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 </render/eevee/limitations>`.
Because EEVEE uses rasterization it has a set of :doc:`limitations </render/eevee/limitations>`.
.. figure:: /images/render_eevee_introduction_final-render.png

View File

@ -9,6 +9,6 @@
:maxdepth: 2
introduction.rst
irradiance_volumes.rst
reflection_cubemaps.rst
reflection_planes.rst
volume.rst
sphere.rst
plane.rst

View File

@ -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.

View File

@ -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 </render/eevee/render_settings/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.

View File

@ -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.

View File

@ -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 </render/eevee/render_settings/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.

View File

@ -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.

View File

@ -0,0 +1,64 @@
******************
Light Probe Sphere
******************
Specular Indirect Lighting can be stored in a light probe sphere.
.. seealso::
:doc:`Indirect Lighting </render/eevee/render_settings/light_probes>`.
*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.

View File

@ -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.

View File

@ -25,34 +25,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:
@ -62,10 +53,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:
@ -81,7 +70,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.
@ -105,26 +94,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:

in dithered materials reflections

in dithered materials **reflections**
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:
@ -140,14 +124,6 @@ Subsurface Scattering
leading to light leaking from surface to surface.
Motion Blur
===========
:doc:`Motion Blur </render/eevee/render_settings/motion_blur>`
is only available in final renders and is not shown in the 3D Viewport
and thus :ref:`Viewport Renders <bpy.ops.render.opengl>`.
.. _eevee-limitations-materials:
Materials
@ -161,14 +137,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
@ -221,4 +191,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.

View File

@ -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.

View File

@ -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 <eevee-limitations-materials>`.

View File

@ -51,24 +51,18 @@ 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. Does not support Beckmann distribution.
See :ref:`Refraction limitations <eevee-limitations-refraction>`.
Does not refract lights objects. Does not support Beckmann distribution.
See :ref:`Raytracing limitations <eevee-limitations-raytracing>`.
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.
@ -89,8 +83,7 @@ Principled Volume
Same as Volume Scatter. See :ref:`Volume Limitation <eevee-limitations-volumetrics>`.
Holdout
Partially supported, using :ref:`Blend Modes <bpy.types.Material.blend_method>`
other than *Alpha* may give incorrect results.
Partially supported, using dithered mode may give incorrect results.
Anisotropic BSDF
Not supported.
@ -114,9 +107,6 @@ Input Nodes
Ambient Occlusion
The *Only Local* option is not supported.
Camera Data
EveHair Inforything is compatible.
Geometry
Pointiness is not supported.
@ -132,37 +122,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 </render/eevee/light_probes/irradiance_volumes>`
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.
@ -171,15 +150,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.
@ -218,12 +191,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.

View File

@ -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 </compositing/types/mask/id_mask>` in the Compositor.
.. note::
:doc:`Volume Objects </modeling/volumes/introduction>` 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.

View File

@ -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 </render/shader_nodes/input/ao>` 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 <eevee-limitations-ao>`.

View File

@ -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.

View File

@ -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.

View File

@ -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.

horozon

horozon

View File

@ -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

View File

@ -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.

View File

@ -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.

View File

@ -0,0 +1,10 @@
******
Lights
******
.. reference::
:Panel: :menuselection:`Render --> Lights`
Light Threshold
Minimum light intensity for a light to contribute to the lighting.

View File

@ -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
=======

View File

@ -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
========
</