How does EEVEE work?
Clash Royale CLAN TAG#URR8PPP
.everyoneloves__top-leaderboard:empty,.everyoneloves__mid-leaderboard:empty margin-bottom:0;
up vote
3
down vote
favorite
We all know what Cycles is, at least to a first approximation: Cycles is
a path tracing engine [...] Specifically, cycles is a "backwards" path tracer, which means that it traces light rays by sending them from the camera instead of sending them from light source(s)
—from this community wiki
(understanding its implementation clearly requires some more technicalities, like the BVH, the specificity of volumetric shaders etc, but even without all those details it's pretty clear what's the "idea" behind it).
As for EEVEE, we know what it's for: it is a «modern, high-quality viewport that will perform better than the current Blender viewport» (link); we know what it is not for: it «uses approximations on the behavior of light and will not be as accurate» as Cycles (link). But I think it hasn't been written yet "what it does".
How would you shortly explain the workings of EEVEE to a friend (or to a class of non experts)? What are the main steps that go into the rendering process? Lit/shaded areas, occlusion, (possibly even subsurface scattering and volumetrics, that I guess must be somewhat tricky), etc...
Thanks!
rendering eevee
add a comment |Â
up vote
3
down vote
favorite
We all know what Cycles is, at least to a first approximation: Cycles is
a path tracing engine [...] Specifically, cycles is a "backwards" path tracer, which means that it traces light rays by sending them from the camera instead of sending them from light source(s)
—from this community wiki
(understanding its implementation clearly requires some more technicalities, like the BVH, the specificity of volumetric shaders etc, but even without all those details it's pretty clear what's the "idea" behind it).
As for EEVEE, we know what it's for: it is a «modern, high-quality viewport that will perform better than the current Blender viewport» (link); we know what it is not for: it «uses approximations on the behavior of light and will not be as accurate» as Cycles (link). But I think it hasn't been written yet "what it does".
How would you shortly explain the workings of EEVEE to a friend (or to a class of non experts)? What are the main steps that go into the rendering process? Lit/shaded areas, occlusion, (possibly even subsurface scattering and volumetrics, that I guess must be somewhat tricky), etc...
Thanks!
rendering eevee
add a comment |Â
up vote
3
down vote
favorite
up vote
3
down vote
favorite
We all know what Cycles is, at least to a first approximation: Cycles is
a path tracing engine [...] Specifically, cycles is a "backwards" path tracer, which means that it traces light rays by sending them from the camera instead of sending them from light source(s)
—from this community wiki
(understanding its implementation clearly requires some more technicalities, like the BVH, the specificity of volumetric shaders etc, but even without all those details it's pretty clear what's the "idea" behind it).
As for EEVEE, we know what it's for: it is a «modern, high-quality viewport that will perform better than the current Blender viewport» (link); we know what it is not for: it «uses approximations on the behavior of light and will not be as accurate» as Cycles (link). But I think it hasn't been written yet "what it does".
How would you shortly explain the workings of EEVEE to a friend (or to a class of non experts)? What are the main steps that go into the rendering process? Lit/shaded areas, occlusion, (possibly even subsurface scattering and volumetrics, that I guess must be somewhat tricky), etc...
Thanks!
rendering eevee
We all know what Cycles is, at least to a first approximation: Cycles is
a path tracing engine [...] Specifically, cycles is a "backwards" path tracer, which means that it traces light rays by sending them from the camera instead of sending them from light source(s)
—from this community wiki
(understanding its implementation clearly requires some more technicalities, like the BVH, the specificity of volumetric shaders etc, but even without all those details it's pretty clear what's the "idea" behind it).
As for EEVEE, we know what it's for: it is a «modern, high-quality viewport that will perform better than the current Blender viewport» (link); we know what it is not for: it «uses approximations on the behavior of light and will not be as accurate» as Cycles (link). But I think it hasn't been written yet "what it does".
How would you shortly explain the workings of EEVEE to a friend (or to a class of non experts)? What are the main steps that go into the rendering process? Lit/shaded areas, occlusion, (possibly even subsurface scattering and volumetrics, that I guess must be somewhat tricky), etc...
Thanks!
rendering eevee
rendering eevee
edited 14 mins ago
asked 1 hour ago


Nicola Sap
3,044933
3,044933
add a comment |Â
add a comment |Â
1 Answer
1
active
oldest
votes
up vote
3
down vote
EEVEE is an engine that does rasterization (like Blender Internal or like game-engines), not ray-tracing (like Cycles).
rasterization is a technique where the scene's geometry is projected onto a raster of pixels:
Occlusion is determined by using z-buffer values, every pixel's color is determined with shader code based on surface normals and light positions (generally Blinn-Phong & Lambertian shading), edges are anti-aliased.
To make the output look nice, additional "trickery" is needed, like:
- light maps / light probes
- ambient occlusion
- blurred shadows
- screen space reflections
- distance-sorted transparency
- ..etc
raytracing shoots multiple rays into the scene per pixel from camera, lets them bounce around the scene, rays obey laws of physics and if they reach light source they shade every surface they went through or bounced off with the light's color and energy:
Occlusion, soft shadows, anti-aliased edges, reflections/refraction, global-illumination, caustics (with bi-dir tracing), .. it all happens naturally, because light itself is being simulated. It is computationally much more demanding than rasterization, the more rays (more samples) used per pixel, the more accurate (less noisier) the image.
With rasterization the final pixel color is determined with one computation of the pixel shader, there is no noise, that's why it's fast.
Thanks Jaroslav! I get how rasterization determines what is visible and what is not. But how does it determine what is lit?
– Nicola Sap
34 mins ago
@NicolaSap Shadows are precomputed into a texture thrown by each light onto objecs and shading of objects (specular and diffuse reflection) is determined by the Blinn-Phong and Lambert formulas based on light positions and normals of surfaces.
– Jaroslav Jerryno Novotny
31 mins ago
Ok thanks! This is a good answer (and, of course, the best so far), but I'd encourage an answer going a bit more into these aspects. i.e. what are the main steps that go into the rendering process?
– Nicola Sap
19 mins ago
add a comment |Â
1 Answer
1
active
oldest
votes
1 Answer
1
active
oldest
votes
active
oldest
votes
active
oldest
votes
up vote
3
down vote
EEVEE is an engine that does rasterization (like Blender Internal or like game-engines), not ray-tracing (like Cycles).
rasterization is a technique where the scene's geometry is projected onto a raster of pixels:
Occlusion is determined by using z-buffer values, every pixel's color is determined with shader code based on surface normals and light positions (generally Blinn-Phong & Lambertian shading), edges are anti-aliased.
To make the output look nice, additional "trickery" is needed, like:
- light maps / light probes
- ambient occlusion
- blurred shadows
- screen space reflections
- distance-sorted transparency
- ..etc
raytracing shoots multiple rays into the scene per pixel from camera, lets them bounce around the scene, rays obey laws of physics and if they reach light source they shade every surface they went through or bounced off with the light's color and energy:
Occlusion, soft shadows, anti-aliased edges, reflections/refraction, global-illumination, caustics (with bi-dir tracing), .. it all happens naturally, because light itself is being simulated. It is computationally much more demanding than rasterization, the more rays (more samples) used per pixel, the more accurate (less noisier) the image.
With rasterization the final pixel color is determined with one computation of the pixel shader, there is no noise, that's why it's fast.
Thanks Jaroslav! I get how rasterization determines what is visible and what is not. But how does it determine what is lit?
– Nicola Sap
34 mins ago
@NicolaSap Shadows are precomputed into a texture thrown by each light onto objecs and shading of objects (specular and diffuse reflection) is determined by the Blinn-Phong and Lambert formulas based on light positions and normals of surfaces.
– Jaroslav Jerryno Novotny
31 mins ago
Ok thanks! This is a good answer (and, of course, the best so far), but I'd encourage an answer going a bit more into these aspects. i.e. what are the main steps that go into the rendering process?
– Nicola Sap
19 mins ago
add a comment |Â
up vote
3
down vote
EEVEE is an engine that does rasterization (like Blender Internal or like game-engines), not ray-tracing (like Cycles).
rasterization is a technique where the scene's geometry is projected onto a raster of pixels:
Occlusion is determined by using z-buffer values, every pixel's color is determined with shader code based on surface normals and light positions (generally Blinn-Phong & Lambertian shading), edges are anti-aliased.
To make the output look nice, additional "trickery" is needed, like:
- light maps / light probes
- ambient occlusion
- blurred shadows
- screen space reflections
- distance-sorted transparency
- ..etc
raytracing shoots multiple rays into the scene per pixel from camera, lets them bounce around the scene, rays obey laws of physics and if they reach light source they shade every surface they went through or bounced off with the light's color and energy:
Occlusion, soft shadows, anti-aliased edges, reflections/refraction, global-illumination, caustics (with bi-dir tracing), .. it all happens naturally, because light itself is being simulated. It is computationally much more demanding than rasterization, the more rays (more samples) used per pixel, the more accurate (less noisier) the image.
With rasterization the final pixel color is determined with one computation of the pixel shader, there is no noise, that's why it's fast.
Thanks Jaroslav! I get how rasterization determines what is visible and what is not. But how does it determine what is lit?
– Nicola Sap
34 mins ago
@NicolaSap Shadows are precomputed into a texture thrown by each light onto objecs and shading of objects (specular and diffuse reflection) is determined by the Blinn-Phong and Lambert formulas based on light positions and normals of surfaces.
– Jaroslav Jerryno Novotny
31 mins ago
Ok thanks! This is a good answer (and, of course, the best so far), but I'd encourage an answer going a bit more into these aspects. i.e. what are the main steps that go into the rendering process?
– Nicola Sap
19 mins ago
add a comment |Â
up vote
3
down vote
up vote
3
down vote
EEVEE is an engine that does rasterization (like Blender Internal or like game-engines), not ray-tracing (like Cycles).
rasterization is a technique where the scene's geometry is projected onto a raster of pixels:
Occlusion is determined by using z-buffer values, every pixel's color is determined with shader code based on surface normals and light positions (generally Blinn-Phong & Lambertian shading), edges are anti-aliased.
To make the output look nice, additional "trickery" is needed, like:
- light maps / light probes
- ambient occlusion
- blurred shadows
- screen space reflections
- distance-sorted transparency
- ..etc
raytracing shoots multiple rays into the scene per pixel from camera, lets them bounce around the scene, rays obey laws of physics and if they reach light source they shade every surface they went through or bounced off with the light's color and energy:
Occlusion, soft shadows, anti-aliased edges, reflections/refraction, global-illumination, caustics (with bi-dir tracing), .. it all happens naturally, because light itself is being simulated. It is computationally much more demanding than rasterization, the more rays (more samples) used per pixel, the more accurate (less noisier) the image.
With rasterization the final pixel color is determined with one computation of the pixel shader, there is no noise, that's why it's fast.
EEVEE is an engine that does rasterization (like Blender Internal or like game-engines), not ray-tracing (like Cycles).
rasterization is a technique where the scene's geometry is projected onto a raster of pixels:
Occlusion is determined by using z-buffer values, every pixel's color is determined with shader code based on surface normals and light positions (generally Blinn-Phong & Lambertian shading), edges are anti-aliased.
To make the output look nice, additional "trickery" is needed, like:
- light maps / light probes
- ambient occlusion
- blurred shadows
- screen space reflections
- distance-sorted transparency
- ..etc
raytracing shoots multiple rays into the scene per pixel from camera, lets them bounce around the scene, rays obey laws of physics and if they reach light source they shade every surface they went through or bounced off with the light's color and energy:
Occlusion, soft shadows, anti-aliased edges, reflections/refraction, global-illumination, caustics (with bi-dir tracing), .. it all happens naturally, because light itself is being simulated. It is computationally much more demanding than rasterization, the more rays (more samples) used per pixel, the more accurate (less noisier) the image.
With rasterization the final pixel color is determined with one computation of the pixel shader, there is no noise, that's why it's fast.
answered 37 mins ago


Jaroslav Jerryno Novotny
36.7k168151
36.7k168151
Thanks Jaroslav! I get how rasterization determines what is visible and what is not. But how does it determine what is lit?
– Nicola Sap
34 mins ago
@NicolaSap Shadows are precomputed into a texture thrown by each light onto objecs and shading of objects (specular and diffuse reflection) is determined by the Blinn-Phong and Lambert formulas based on light positions and normals of surfaces.
– Jaroslav Jerryno Novotny
31 mins ago
Ok thanks! This is a good answer (and, of course, the best so far), but I'd encourage an answer going a bit more into these aspects. i.e. what are the main steps that go into the rendering process?
– Nicola Sap
19 mins ago
add a comment |Â
Thanks Jaroslav! I get how rasterization determines what is visible and what is not. But how does it determine what is lit?
– Nicola Sap
34 mins ago
@NicolaSap Shadows are precomputed into a texture thrown by each light onto objecs and shading of objects (specular and diffuse reflection) is determined by the Blinn-Phong and Lambert formulas based on light positions and normals of surfaces.
– Jaroslav Jerryno Novotny
31 mins ago
Ok thanks! This is a good answer (and, of course, the best so far), but I'd encourage an answer going a bit more into these aspects. i.e. what are the main steps that go into the rendering process?
– Nicola Sap
19 mins ago
Thanks Jaroslav! I get how rasterization determines what is visible and what is not. But how does it determine what is lit?
– Nicola Sap
34 mins ago
Thanks Jaroslav! I get how rasterization determines what is visible and what is not. But how does it determine what is lit?
– Nicola Sap
34 mins ago
@NicolaSap Shadows are precomputed into a texture thrown by each light onto objecs and shading of objects (specular and diffuse reflection) is determined by the Blinn-Phong and Lambert formulas based on light positions and normals of surfaces.
– Jaroslav Jerryno Novotny
31 mins ago
@NicolaSap Shadows are precomputed into a texture thrown by each light onto objecs and shading of objects (specular and diffuse reflection) is determined by the Blinn-Phong and Lambert formulas based on light positions and normals of surfaces.
– Jaroslav Jerryno Novotny
31 mins ago
Ok thanks! This is a good answer (and, of course, the best so far), but I'd encourage an answer going a bit more into these aspects. i.e. what are the main steps that go into the rendering process?
– Nicola Sap
19 mins ago
Ok thanks! This is a good answer (and, of course, the best so far), but I'd encourage an answer going a bit more into these aspects. i.e. what are the main steps that go into the rendering process?
– Nicola Sap
19 mins ago
add a comment |Â
Sign up or log in
StackExchange.ready(function ()
StackExchange.helpers.onClickDraftSave('#login-link');
);
Sign up using Google
Sign up using Facebook
Sign up using Email and Password
Post as a guest
StackExchange.ready(
function ()
StackExchange.openid.initPostLogin('.new-post-login', 'https%3a%2f%2fblender.stackexchange.com%2fquestions%2f120372%2fhow-does-eevee-work%23new-answer', 'question_page');
);
Post as a guest
Sign up or log in
StackExchange.ready(function ()
StackExchange.helpers.onClickDraftSave('#login-link');
);
Sign up using Google
Sign up using Facebook
Sign up using Email and Password
Post as a guest
Sign up or log in
StackExchange.ready(function ()
StackExchange.helpers.onClickDraftSave('#login-link');
);
Sign up using Google
Sign up using Facebook
Sign up using Email and Password
Post as a guest
Sign up or log in
StackExchange.ready(function ()
StackExchange.helpers.onClickDraftSave('#login-link');
);
Sign up using Google
Sign up using Facebook
Sign up using Email and Password
Sign up using Google
Sign up using Facebook
Sign up using Email and Password