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.
21 changed files with 249 additions and 444 deletions
Showing only changes of commit 7a6743b7da - Show all commits

View File

@ -7,7 +7,7 @@ Specular Indirect Lighting can be stored in a light probe sphere.
.. seealso::
:doc:`Indirect Lighting </render/eevee/render_settings/indirect_lighting>`.
: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.

View File

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

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
========
When the settings are split per ray type this section will be repeated for reflection, refraction

will be repeated > is repeated

`will be repeated` > `is repeated`
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.

View File

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

Can leave some ghosting. > This can create some ghosting artifact.

Can leave some ghosting. > This can create some ghosting artifact.
Render
======
Samples
The number of samples to use in the final render.

View File

@ -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 <bpy.types.Light.cutoff_distance>`
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 <bpy.types.Light.cutoff_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.

View File

@ -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 <bpy.types.Material.use_sss_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 <eevee-limitations-sss>`.

View File

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

View File

@ -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 </render/eevee/render_settings/indirect_lighting>`.
:doc:`Indirect Lighting </render/eevee/render_settings/light_probes>`.

View File

@ -187,7 +187,7 @@ Bloom
.. _bpy.types.ViewLayerEEVEE.use_pass_transparent:
Transparency
Contain :ref:`Alpha Blended <bpy.types.Material.blend_method>` surfaces,
Contain :ref:`Blended <bpy.types.Material.render_method>` 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 <bpy.types.Material.blend_method>`
- Blended materials are not rendered in render passes except the combined pass.

except the combined pass and the Effect > Transparent pass.

I believe this option also needs to figure in the manual if it is not already present.

except the combined pass **and the Effect > Transparent pass**. I believe this option also needs to figure in the manual if it is not already present.
Use the *Dithered* as :ref:`Render Method <bpy.types.Material.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

View File

@ -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 </render/eevee/light_probes/irradiance_volumes>`
and :doc:`/render/eevee/render_settings/indirect_lighting` must be baked.
the object must be inside an :doc:`Irradiance Volume </render/eevee/light_probes/volume>`

Irradiance Volume > Volume Light Probe

Maybe check other occurences.

Irradiance Volume > Volume Light Probe Maybe check other occurences.
and :doc:`/render/eevee/render_settings/light_probes` must be baked.
- *Is Camera*: Supported.
- *Is Shadow*: Supported.