0

I found that "pass" is single execution of rendering pipeline.

Is this correct? If so, if single execution of rendering pipeline outputs depth map in specific light perspective, is it called "shadow pass" or "light pass"?

YoonSeok OH
  • 647
  • 2
  • 7
  • 15

1 Answers1

1

A (render) pass tells the graphics API how you intend to make use of the framebuffers associated to that render pass.
In this way the API can know which framebuffers are used allowing optimizations if, for example, the contents of the depth buffer are not needed after the render pass.
The shadow pass is the render pass that renders the scene from the light perspective into the shadow maps.

Kevin Spaghetti
  • 620
  • 4
  • 16
  • Thanks for your comment. Would it be correct to understand definition of "pass" as "tells the graphics API how you intend to make use of the framebuffers"? From [microsoft graphics example](https://github.com/microsoft/DirectX-Graphics-Samples), [Frank Luna DX12](https://github.com/yottaawesome/intro-to-dx12), [Opengl](https://learnopengl.com/Advanced-Lighting/Shadows/Shadow-Mapping), this "pass" is used commonly. – YoonSeok OH Jun 06 '23 at 11:58
  • It seems if "pass" is "single execution of pipeline". It is equal to "a series of command list recording operation of a pipeline" such as from command allocator reset to execute command lists, regardless of graphics or compute. – YoonSeok OH Jun 06 '23 at 12:02
  • This makes sense in ["Shadow mapping therefore consists of two passes: first we render the depth map, and in the second pass we render the scene as normal"](https://learnopengl.com/Advanced-Lighting/Shadows/Shadow-Mapping). However, in ["Since the same scene is rendered six times in the first rendering pass we call this Multipass Shadow Mapping."](https://ogldev.org/www/tutorial43/tutorial43.html) – YoonSeok OH Jun 06 '23 at 12:05
  • In forward rendering, shadow mapping of a point light requires 6 "rendering" (6 depth map output), and 1 "rendering". Does this 6 rendering of outputting depth maps is counted as 1 "shadow pass"? or 6 "shadow passes"? This is the part I am confused. – YoonSeok OH Jun 06 '23 at 12:09
  • It depends on how you want to do it. You can render the scene to the 6 framebuffers in one render operation (one render pass with 6 render targets) or split it up in multiple render operations (6 render passes each with one render target). – Kevin Spaghetti Jun 06 '23 at 18:17
  • What does it mean by it depends? What determines whether pass count is 2 or 3? In case of shadow mapping, definitely there will be at least 2 different passes which are rendering depth map and rendering as usual. So firstly I thought no matter how many lights or renderings, all process of producing depth map is just 1 pass. However, ["six shadow map rendering passes"](https://ogldev.org/www/tutorial43/tutorial43.html) this line sounds like pass is counted per buffer, 6 shadow passes and 1 render pass total of 7 passes. – YoonSeok OH Jun 06 '23 at 19:08
  • In the link you provided "render pass" is used to mean a grouping of rendering operations because OpenGL has no explicit notion of render passes (everything is handled by the driver) like Vulkan has. So in the link the author considers every render operation that writes to a shadow map a render pass. I suspect that the term pass in the "Shadow mapping consists of two passes ..." is used informally to mean two steps. – Kevin Spaghetti Jun 06 '23 at 19:55