Re: [Algorithms] Deferred shadow mask generation From: - 2007-04-05 08:27:44 Attachments: Message as HTML ```Alright, I have checked your article and the paper mentioned (PSSM), = thanks for the pointer. =20 So If I have well understood: =20 In a first time you render all the shadowmap for your game: Render Shadowmap for projected ligt Render Shadowmap for omni light with cubemap or multiple frustum Etc=85 Render Cascaded Shadowmap for the sun light (with day and light cycle managed): Here for the directional light representing the Sun you render 4 Shadowmap for each 4 frustum slice transformed in light space in one texture (aka texture atlas) =20 Now render all gathered Shadowmap in a preprocess (Deferred Shadowing) = -> Shadow collector Render each Shadowmap collected from the viewer point of view and = store the shadow factor in a screen-sized texture Render Cascaded Shadowmap (Put the 4 light space matrix in constant register and select the right light projection to use via compare/dot product) And store the shadow factor=85 =20 When you said to store shadow factor in r, g or b channel, you mean that = the different shadow factor must not be blend together and should be left separated Until they are use for lighting calculation ? So in the above = description, spot light should be render in r channel and cascaded in g, then at = lighting do two texture fetch ? And I not understand why shadow collector is the z-prepass, don=92t you = need to do a z-prepass before to render in the shadow collector, You can save a lot of compare and texture fetch or I missed something ? =20 Thanks for your help. =20 Lagarde S=E9bastien Software engineer Neko entertainment =20 =20 _____ =20 De : gdalgorithms-list-bounces@... [mailto:gdalgorithms-list-bounces@...] De la part de Wolfgang Engel Envoy=E9 : mercredi 4 avril 2007 14:34 =C0 : 'Game Development Algorithms' Objet : Re: [Algorithms] Deferred shadow mask generation =20 Oh and the shadow collector pass is the Z pre-pass =85 =20 From: gdalgorithms-list-bounces@... [mailto:gdalgorithms-list-bounces@...] On Behalf Of Lagarde S=E9bastien Sent: Wednesday, April 04, 2007 4:55 AM To: gdalgorithms-list@... Subject: [Algorithms] Deferred shadow mask generation =20 Hello,=20 I heard that the Crytech engine2 use a specific technique they call =93deferred shadow mask generation=94 for blend all shadow buffer in one = shadow buffer Then practice a =93smart blur=94 on it to get soft shadows. This mask is then reuse later to render shadow in the scene. =20 Anyone heard about a similar technique like this or have some = information on how to gather many shadow buffer in one ? =20 Thank you. =20 Lagarde S=E9bastien Software engineer Neko entertainment =20 =20 ```

 [Algorithms] Deferred shadow mask generation From: - 2007-04-04 11:55:33 Attachments: Message as HTML ```Hello,=20 I heard that the Crytech engine2 use a specific technique they call =93deferred shadow mask generation=94 for blend all shadow buffer in one = shadow buffer Then practice a =93smart blur=94 on it to get soft shadows. This mask is then reuse later to render shadow in the scene. =20 Anyone heard about a similar technique like this or have some = information on how to gather many shadow buffer in one ? =20 Thank you. =20 Lagarde S=E9bastien Software engineer Neko entertainment =20 =20 ```
 [Algorithms] Deferred shadow mask generation From: - 2007-04-04 11:56:34 Attachments: Message as HTML ```Hello,=20 I heard that the Crytech engine2 use a specific technique they call =93deferred shadow mask generation=94 for blend all shadow buffer in one = shadow buffer Then practice a =93smart blur=94 on it to get soft shadows. This mask is then reuse later to render shadow in the scene. =20 Anyone heard about a similar technique like this or have some = information on how to gather many shadow buffer in one ? =20 Thank you. =20 Lagarde S=E9bastien Software engineer Neko entertainment =20 =20 ```
 Re: [Algorithms] Deferred shadow mask generation From: Wolfgang Engel - 2007-04-04 12:34:07 Attachments: Message as HTML ```Oh and the shadow collector pass is the Z pre-pass =85 =20 From: gdalgorithms-list-bounces@... [mailto:gdalgorithms-list-bounces@...] On Behalf Of Lagarde S=E9bastien Sent: Wednesday, April 04, 2007 4:55 AM To: gdalgorithms-list@... Subject: [Algorithms] Deferred shadow mask generation =20 Hello,=20 I heard that the Crytech engine2 use a specific technique they call =93deferred shadow mask generation=94 for blend all shadow buffer in one = shadow buffer Then practice a =93smart blur=94 on it to get soft shadows. This mask is then reuse later to render shadow in the scene. =20 Anyone heard about a similar technique like this or have some = information on how to gather many shadow buffer in one ? =20 Thank you. =20 Lagarde S=E9bastien Software engineer Neko entertainment =20 =20 ```
 Re: [Algorithms] Deferred shadow mask generation From: - 2007-04-05 08:27:44 Attachments: Message as HTML ```Alright, I have checked your article and the paper mentioned (PSSM), = thanks for the pointer. =20 So If I have well understood: =20 In a first time you render all the shadowmap for your game: Render Shadowmap for projected ligt Render Shadowmap for omni light with cubemap or multiple frustum Etc=85 Render Cascaded Shadowmap for the sun light (with day and light cycle managed): Here for the directional light representing the Sun you render 4 Shadowmap for each 4 frustum slice transformed in light space in one texture (aka texture atlas) =20 Now render all gathered Shadowmap in a preprocess (Deferred Shadowing) = -> Shadow collector Render each Shadowmap collected from the viewer point of view and = store the shadow factor in a screen-sized texture Render Cascaded Shadowmap (Put the 4 light space matrix in constant register and select the right light projection to use via compare/dot product) And store the shadow factor=85 =20 When you said to store shadow factor in r, g or b channel, you mean that = the different shadow factor must not be blend together and should be left separated Until they are use for lighting calculation ? So in the above = description, spot light should be render in r channel and cascaded in g, then at = lighting do two texture fetch ? And I not understand why shadow collector is the z-prepass, don=92t you = need to do a z-prepass before to render in the shadow collector, You can save a lot of compare and texture fetch or I missed something ? =20 Thanks for your help. =20 Lagarde S=E9bastien Software engineer Neko entertainment =20 =20 _____ =20 De : gdalgorithms-list-bounces@... [mailto:gdalgorithms-list-bounces@...] De la part de Wolfgang Engel Envoy=E9 : mercredi 4 avril 2007 14:34 =C0 : 'Game Development Algorithms' Objet : Re: [Algorithms] Deferred shadow mask generation =20 Oh and the shadow collector pass is the Z pre-pass =85 =20 From: gdalgorithms-list-bounces@... [mailto:gdalgorithms-list-bounces@...] On Behalf Of Lagarde S=E9bastien Sent: Wednesday, April 04, 2007 4:55 AM To: gdalgorithms-list@... Subject: [Algorithms] Deferred shadow mask generation =20 Hello,=20 I heard that the Crytech engine2 use a specific technique they call =93deferred shadow mask generation=94 for blend all shadow buffer in one = shadow buffer Then practice a =93smart blur=94 on it to get soft shadows. This mask is then reuse later to render shadow in the scene. =20 Anyone heard about a similar technique like this or have some = information on how to gather many shadow buffer in one ? =20 Thank you. =20 Lagarde S=E9bastien Software engineer Neko entertainment =20 =20 ```
 Re: [Algorithms] Deferred shadow mask generation From: Marco Salvi - 2007-04-05 08:43:11 Attachments: Message as HTML ```On 4/5/07, Lagarde S=E9bastien wrote: And I not understand why shadow collector is the z-prepass, don't you need > to do a z-prepass before to render in the shadow collector, > > You can save a lot of compare and texture fetch or I missed something ? > You can do it in both ways as you may want to gather your occlusion term in the z-prepass (in this case it wouldn't be a canonical z-prepass anymore) or you want to re-use per pixel depth values generated i= n the z-prepass in the occlusion term gathering pass, both ways can be a win on different platform/games. In our title we render a full precision depth buffer in the z-prepass and then we use it as a texture in subsquent rendering passes to gather the final per pixel occlusion/shadowing term, as in our case it happens to be way faster than the first method. Marco ```
 Re: [Algorithms] Deferred shadow mask generation From: Wolfgang Engel - 2007-04-05 15:42:38 Attachments: Message as HTML ```<<<=20 Now render all gathered Shadowmap in a preprocess (Deferred Shadowing) = -> Shadow collector Render each Shadowmap collected from the viewer point of view and = store the shadow factor in a screen-sized texture Render Cascaded Shadowmap (Put the 4 light space matrix in constant register and select the right light projection to use via compare/dot product) And store the shadow factor=85 <<<=20 You can render the four maps into the shadow collector in one pass. You just fetch the shadow collector then as a screen-space texture for = each object ... e.g. you use the vpos register in the pixel shader or = calculate the screen space position in the vertex shader. =20 So overall five render passes: four to create the shadow maps, one into = the shadow collector and the one in the shadow collector is also the Z = pre-pass. =20 <<<=20 When you said to store shadow factor in r, g or b channel, you mean that = the different shadow factor must not be blend together and should be left separated Until they are use for lighting calculation ? So in the above = description, spot light should be render in r channel and cascaded in g, then at = lighting do two texture fetch ? <<<=20 You might want to use different colors for different shadows. Cloud = shadows should be more faint and the shadows casted by objects on the ground stronger.=20 =20 Z pre-pass: you have to render like this anyway, why not just use the = shadow collector pass for this :-) =20 - Wolfgang =20 =20 =20 From: gdalgorithms-list-bounces@... [mailto:gdalgorithms-list-bounces@...] On Behalf Of Lagarde S=E9bastien Sent: Thursday, April 05, 2007 1:26 AM To: 'Game Development Algorithms' Subject: Re: [Algorithms] Deferred shadow mask generation =20 Alright, I have checked your article and the paper mentioned (PSSM), = thanks for the pointer. =20 So If I have well understood: =20 In a first time you render all the shadowmap for your game: Render Shadowmap for projected ligt Render Shadowmap for omni light with cubemap or multiple frustum Etc=85 Render Cascaded Shadowmap for the sun light (with day and light cycle managed): Here for the directional light representing the Sun you render 4 Shadowmap for each 4 frustum slice transformed in light space in one texture (aka texture atlas) =20 Now render all gathered Shadowmap in a preprocess (Deferred Shadowing) = -> Shadow collector Render each Shadowmap collected from the viewer point of view and = store the shadow factor in a screen-sized texture Render Cascaded Shadowmap (Put the 4 light space matrix in constant register and select the right light projection to use via compare/dot product) And store the shadow factor=85 =20 When you said to store shadow factor in r, g or b channel, you mean that = the different shadow factor must not be blend together and should be left separated Until they are use for lighting calculation ? So in the above = description, spot light should be render in r channel and cascaded in g, then at = lighting do two texture fetch ? And I not understand why shadow collector is the z-prepass, don=92t you = need to do a z-prepass before to render in the shadow collector, You can save a lot of compare and texture fetch or I missed something ? =20 Thanks for your help. =20 Lagarde S=E9bastien Software engineer Neko entertainment =20 =20 _____ =20 De : gdalgorithms-list-bounces@... [mailto:gdalgorithms-list-bounces@...] De la part de Wolfgang Engel Envoy=E9 : mercredi 4 avril 2007 14:34 =C0 : 'Game Development Algorithms' Objet : Re: [Algorithms] Deferred shadow mask generation =20 Oh and the shadow collector pass is the Z pre-pass =85 =20 From: gdalgorithms-list-bounces@... [mailto:gdalgorithms-list-bounces@...] On Behalf Of Lagarde S=E9bastien Sent: Wednesday, April 04, 2007 4:55 AM To: gdalgorithms-list@... Subject: [Algorithms] Deferred shadow mask generation =20 Hello,=20 I heard that the Crytech engine2 use a specific technique they call =93deferred shadow mask generation=94 for blend all shadow buffer in one = shadow buffer Then practice a =93smart blur=94 on it to get soft shadows. This mask is then reuse later to render shadow in the scene. =20 Anyone heard about a similar technique like this or have some = information on how to gather many shadow buffer in one ? =20 Thank you. =20 Lagarde S=E9bastien Software engineer Neko entertainment =20 =20 ```
 Re: [Algorithms] Deferred shadow mask generation From: Francis Boivin - 2007-04-05 15:52:24 Attachments: Message as HTML ```Are you also blurring the Shadow collector texture afterwards to get = smoother looking shadows? If so, how do you avoid the typical "halo" = effect when using such a technique? ________________________________ From: gdalgorithms-list-bounces@... = [mailto:gdalgorithms-list-bounces@...] On Behalf Of = Wolfgang Engel Sent: Thursday, April 05, 2007 11:42 AM To: 'Game Development Algorithms' Subject: Re: [Algorithms] Deferred shadow mask generation <<<=20 Now render all gathered Shadowmap in a preprocess (Deferred Shadowing) = -> Shadow collector Render each Shadowmap collected from the viewer point of view and = store the shadow factor in a screen-sized texture Render Cascaded Shadowmap (Put the 4 light space matrix in constant = register and select the right light projection to use via compare/dot = product) And store the shadow factor... <<<=20 You can render the four maps into the shadow collector in one pass. You just fetch the shadow collector then as a screen-space texture for = each object ... e.g. you use the vpos register in the pixel shader or = calculate the screen space position in the vertex shader. =20 So overall five render passes: four to create the shadow maps, one into = the shadow collector and the one in the shadow collector is also the Z = pre-pass. =20 <<<=20 When you said to store shadow factor in r, g or b channel, you mean that = the different shadow factor must not be blend together and should be = left separated Until they are use for lighting calculation ? So in the above = description, spot light should be render in r channel and cascaded in g, = then at lighting do two texture fetch ? <<<=20 You might want to use different colors for different shadows. Cloud = shadows should be more faint and the shadows casted by objects on the = ground stronger.=20 =20 Z pre-pass: you have to render like this anyway, why not just use the = shadow collector pass for this :-) =20 - Wolfgang =20 =20 =20 From: gdalgorithms-list-bounces@... = [mailto:gdalgorithms-list-bounces@...] On Behalf Of = Lagarde S=E9bastien Sent: Thursday, April 05, 2007 1:26 AM To: 'Game Development Algorithms' Subject: Re: [Algorithms] Deferred shadow mask generation =20 Alright, I have checked your article and the paper mentioned (PSSM), = thanks for the pointer. =20 So If I have well understood: =20 In a first time you render all the shadowmap for your game: Render Shadowmap for projected ligt Render Shadowmap for omni light with cubemap or multiple frustum Etc... Render Cascaded Shadowmap for the sun light (with day and light cycle = managed): Here for the directional light representing the Sun you render 4 Shadowmap for each 4 frustum slice transformed in light = space in one texture (aka texture atlas) =20 Now render all gathered Shadowmap in a preprocess (Deferred Shadowing) = -> Shadow collector Render each Shadowmap collected from the viewer point of view and = store the shadow factor in a screen-sized texture Render Cascaded Shadowmap (Put the 4 light space matrix in constant = register and select the right light projection to use via compare/dot = product) And store the shadow factor... =20 When you said to store shadow factor in r, g or b channel, you mean that = the different shadow factor must not be blend together and should be = left separated Until they are use for lighting calculation ? So in the above = description, spot light should be render in r channel and cascaded in g, = then at lighting do two texture fetch ? And I not understand why shadow collector is the z-prepass, don't you = need to do a z-prepass before to render in the shadow collector, You can save a lot of compare and texture fetch or I missed something ? =20 Thanks for your help. =20 Lagarde S=E9bastien Software engineer Neko entertainment =20 =20 ________________________________ De : gdalgorithms-list-bounces@... = [mailto:gdalgorithms-list-bounces@...] De la part de = Wolfgang Engel Envoy=E9 : mercredi 4 avril 2007 14:34 =C0 : 'Game Development Algorithms' Objet : Re: [Algorithms] Deferred shadow mask generation =20 Oh and the shadow collector pass is the Z pre-pass ... =20 From: gdalgorithms-list-bounces@... = [mailto:gdalgorithms-list-bounces@...] On Behalf Of = Lagarde S=E9bastien Sent: Wednesday, April 04, 2007 4:55 AM To: gdalgorithms-list@... Subject: [Algorithms] Deferred shadow mask generation =20 Hello,=20 I heard that the Crytech engine2 use a specific technique they call = "deferred shadow mask generation" for blend all shadow buffer in one = shadow buffer Then practice a "smart blur" on it to get soft shadows. This mask is then reuse later to render shadow in the scene. =20 Anyone heard about a similar technique like this or have some = information on how to gather many shadow buffer in one ? =20 Thank you. =20 Lagarde S=E9bastien Software engineer Neko entertainment =20 =20 ```
 Re: [Algorithms] Deferred shadow mask generation From: Wolfgang Engel - 2007-04-06 06:30:48 ```<<< If so, how do you avoid the typical "halo" effect when using such a techniq= ue? <<< Yes I actively ignore it :-) On 4/5/07, Francis Boivin wrote: > > Are you also blurring the Shadow collector texture afterwards to get > smoother looking shadows? If so, how do you avoid the typical "halo" eff= ect > when using such a technique? > ________________________________ > From: gdalgorithms-list-bounces@... > [mailto:gdalgorithms-list-bounces@...] On > Behalf Of Wolfgang Engel > Sent: Thursday, April 05, 2007 11:42 AM > > To: 'Game Development Algorithms' > Subject: Re: [Algorithms] Deferred shadow mask generation > > > > > <<< > > Now render all gathered Shadowmap in a preprocess (Deferred Shadowing) -> > Shadow collector > > Render each Shadowmap collected from the viewer point of view and stor= e > the shadow factor in a screen-sized texture > > Render Cascaded Shadowmap (Put the 4 light space matrix in constant > register and select the right light projection to use via compare/dot > product) > > And store the shadow factor=85 > > <<< > > You can render the four maps into the shadow collector in one pass. > > You just fetch the shadow collector then as a screen-space texture for ea= ch > object ... e.g. you use the vpos register in the pixel shader or calculat= e > the screen space position in the vertex shader. > > > > So overall five render passes: four to create the shadow maps, one into t= he > shadow collector and the one in the shadow collector is also the Z pre-pa= ss. > > > > <<< > > When you said to store shadow factor in r, g or b channel, you mean that = the > different shadow factor must not be blend together and should be left > separated > > Until they are use for lighting calculation ? So in the above description= , > spot light should be render in r channel and cascaded in g, then at light= ing > do two texture fetch ? > > <<< > > You might want to use different colors for different shadows. Cloud shado= ws > should be more faint and the shadows casted by objects on the ground > stronger. > > > > Z pre-pass: you have to render like this anyway, why not just use the sha= dow > collector pass for this :-) > > > > - Wolfgang > > > > > > > > > From: gdalgorithms-list-bounces@... > [mailto:gdalgorithms-list-bounces@...] On > Behalf Of Lagarde S=E9bastien > Sent: Thursday, April 05, 2007 1:26 AM > To: 'Game Development Algorithms' > Subject: Re: [Algorithms] Deferred shadow mask generation > > > > Alright, I have checked your article and the paper mentioned (PSSM), than= ks > for the pointer. > > > > So If I have well understood: > > > > In a first time you render all the shadowmap for your game: > > Render Shadowmap for projected ligt > > Render Shadowmap for omni light with cubemap or multiple frustum > > Etc=85 > > Render Cascaded Shadowmap for the sun light (with day and light cycle > managed): > > Here for the directional light representing the Sun > > you render 4 Shadowmap for each 4 frustum slice transformed in light > space in one texture (aka texture atlas) > > > > Now render all gathered Shadowmap in a preprocess (Deferred Shadowing) -> > Shadow collector > > Render each Shadowmap collected from the viewer point of view and stor= e > the shadow factor in a screen-sized texture > > Render Cascaded Shadowmap (Put the 4 light space matrix in constant > register and select the right light projection to use via compare/dot > product) > > And store the shadow factor=85 > > > > When you said to store shadow factor in r, g or b channel, you mean that = the > different shadow factor must not be blend together and should be left > separated > > Until they are use for lighting calculation ? So in the above description= , > spot light should be render in r channel and cascaded in g, then at light= ing > do two texture fetch ? > > And I not understand why shadow collector is the z-prepass, don't you nee= d > to do a z-prepass before to render in the shadow collector, > > You can save a lot of compare and texture fetch or I missed something ? > > > > Thanks for your help. > > > > Lagarde S=E9bastien > > Software engineer > > Neko entertainment > > > > > ________________________________ > > > De : gdalgorithms-list-bounces@... > [mailto:gdalgorithms-list-bounces@...] De > la part de Wolfgang Engel > Envoy=E9 : mercredi 4 avril 2007 14:34 > =C0 : 'Game Development Algorithms' > Objet : Re: [Algorithms] Deferred shadow mask generation > > > > Oh and the shadow collector pass is the Z pre-pass =85 > > > > > From: gdalgorithms-list-bounces@... > [mailto:gdalgorithms-list-bounces@...] On > Behalf Of Lagarde S=E9bastien > Sent: Wednesday, April 04, 2007 4:55 AM > To: gdalgorithms-list@... > Subject: [Algorithms] Deferred shadow mask generation > > > > Hello, > > I heard that the Crytech engine2 use a specific technique they call > "deferred shadow mask generation" for blend all shadow buffer in one shad= ow > buffer > > Then practice a "smart blur" on it to get soft shadows. > > This mask is then reuse later to render shadow in the scene. > > > > Anyone heard about a similar technique like this or have some information= on > how to gather many shadow buffer in one ? > > > > Thank you. > > > > Lagarde S=E9bastien > > Software engineer > > Neko entertainment > > > > > ------------------------------------------------------------------------- > Take Surveys. Earn Cash. Influence the Future of IT > Join SourceForge.net's Techsay panel and you'll get the chance to share y= our > opinions on IT & business topics through brief surveys-and earn cash > http://www.techsay.com/default.php?page=3Djoin.php&p=3Dsourceforge&CID=3D= DEVDEV > _______________________________________________ > GDAlgorithms-list mailing list > GDAlgorithms-list@... > https://lists.sourceforge.net/lists/listinfo/gdalgorithms-list > Archives: > http://sourceforge.net/mailarchive/forum.php?forum_name=3Dgdalgorithms-li= st > ```
 Re: [Algorithms] Deferred shadow mask generation From: Wolfgang Engel - 2007-04-04 12:20:53 Attachments: Message as HTML ```Hi, I did not know that Crytech is using this. I wrote an article in = ShaderX5 about this. It is called =93Cascaded Shadow Maps=94. The idea is to = render into four shadow maps first and then do one render pass from the point of = view of the player into screen-space. So you end up with five render passes. You = can call the last pass shadow collector. What you do then during the = lighting pass is fetch the shadow collector that is usually a 8:8:8:8 map for = each object. You can store outdoor cascaded shadow maps in the r channel, = indoor shadows in the g channel and cloud shadows in the b channel. While = fetching the shadow collector you multiply them. =20 - Wolfgang =20 From: gdalgorithms-list-bounces@... [mailto:gdalgorithms-list-bounces@...] On Behalf Of Lagarde S=E9bastien Sent: Wednesday, April 04, 2007 4:54 AM To: gdalgorithms-list@... Subject: [Algorithms] Deferred shadow mask generation =20 Hello,=20 I heard that the Crytech engine2 use a specific technique they call =93deferred shadow mask generation=94 for blend all shadow buffer in one = shadow buffer Then practice a =93smart blur=94 on it to get soft shadows. This mask is then reuse later to render shadow in the scene. =20 Anyone heard about a similar technique like this or have some = information on how to gather many shadow buffer in one ? =20 Thank you. =20 Lagarde S=E9bastien Software engineer Neko entertainment =20 =20 ```
 Re: [Algorithms] Deferred shadow mask generation From: Jamie Fowlston - 2007-04-04 12:37:36 ```We've also implemented a similar scheme which seems to work very nicely. For the OP: it's worth looking up "parallel split shadow maps" as well as "cascade shadow maps". The nomenclature in this area doesn't seem to be standardized yet. Jamie Wolfgang Engel wrote: > Hi, > > I did not know that Crytech is using this. I wrote an article in > ShaderX5 about this. It is called “Cascaded Shadow Maps”. The idea is to > render into four shadow maps first and then do one render pass from the > point of view of the player into screen-space. So you end up with five > render passes. You can call the last pass shadow collector. What you do > then during the lighting pass is fetch the shadow collector that is > usually a 8:8:8:8 map for each object. You can store outdoor cascaded > shadow maps in the r channel, indoor shadows in the g channel and cloud > shadows in the b channel. While fetching the shadow collector you > multiply them. > > > > - Wolfgang > > > > *From:* gdalgorithms-list-bounces@... > [mailto:gdalgorithms-list-bounces@...] *On Behalf Of > *Lagarde Sébastien > *Sent:* Wednesday, April 04, 2007 4:54 AM > *To:* gdalgorithms-list@... > *Subject:* [Algorithms] Deferred shadow mask generation > > > > Hello, > > I heard that the Crytech engine2 use a specific technique they call > “deferred shadow mask generation” for blend all shadow buffer in one > shadow buffer > > Then practice a “smart blur” on it to get soft shadows. > > This mask is then reuse later to render shadow in the scene. > > > > Anyone heard about a similar technique like this or have some > information on how to gather many shadow buffer in one ? > > > > Thank you. > > > > Lagarde Sébastien > > Software engineer > > Neko entertainment ```