How does EEVEE work?

The name of the pictureThe name of the pictureThe name of the pictureClash 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)



enter image description here



—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!










share|improve this question





























    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)



    enter image description here



    —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!










    share|improve this question

























      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)



      enter image description here



      —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!










      share|improve this question















      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)



      enter image description here



      —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






      share|improve this question















      share|improve this question













      share|improve this question




      share|improve this question








      edited 14 mins ago

























      asked 1 hour ago









      Nicola Sap

      3,044933




      3,044933




















          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:



            enter image description here



            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:



            enter image description here



            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.







          share|improve this answer




















          • 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











          Your Answer




          StackExchange.ifUsing("editor", function ()
          return StackExchange.using("mathjaxEditing", function ()
          StackExchange.MarkdownEditor.creationCallbacks.add(function (editor, postfix)
          StackExchange.mathjaxEditing.prepareWmdForMathJax(editor, postfix, [["$", "$"], ["\\(","\\)"]]);
          );
          );
          , "mathjax-editing");

          StackExchange.ready(function()
          var channelOptions =
          tags: "".split(" "),
          id: "502"
          ;
          initTagRenderer("".split(" "), "".split(" "), channelOptions);

          StackExchange.using("externalEditor", function()
          // Have to fire editor after snippets, if snippets enabled
          if (StackExchange.settings.snippets.snippetsEnabled)
          StackExchange.using("snippets", function()
          createEditor();
          );

          else
          createEditor();

          );

          function createEditor()
          StackExchange.prepareEditor(
          heartbeatType: 'answer',
          convertImagesToLinks: false,
          noModals: false,
          showLowRepImageUploadWarning: true,
          reputationToPostImages: null,
          bindNavPrevention: true,
          postfix: "",
          onDemand: true,
          discardSelector: ".discard-answer"
          ,immediatelyShowMarkdownHelp:true
          );



          );













           

          draft saved


          draft discarded


















          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






























          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:



            enter image description here



            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:



            enter image description here



            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.







          share|improve this answer




















          • 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















          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:



            enter image description here



            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:



            enter image description here



            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.







          share|improve this answer




















          • 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













          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:



            enter image description here



            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:



            enter image description here



            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.







          share|improve this answer












          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:



            enter image description here



            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:



            enter image description here



            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.








          share|improve this answer












          share|improve this answer



          share|improve this answer










          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

















          • 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


















           

          draft saved


          draft discarded















































           


          draft saved


          draft discarded














          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













































































          Comments

          Popular posts from this blog

          What does second last employer means? [closed]

          List of Gilmore Girls characters

          Confectionery