<p>Percentage Closer Filtering with some amount of blur (ie. a minimum filter size in texture space) is the most basic method I know of. For example, see <a href="http://http.developer.nvidia.com/GPUGems/gpugems_ch11.html" rel="nofollow noreferrer">GPU Gems</a>. My experience is that it is also quite robust.</p>

CC BY-SA 3.0
2017-03-23T17:04:31.433Z
2017-03-23T17:04:31.433Z
Olivier
<p>Ah, shadows. They still are bothering after so many people spent years trying to improve them.<br>
Whether your engine is deferred or forward, the shadow pass should be quite the same, and suffer the same issues.<br>
You are correct, this is a famous problem. Some methods can improve these artifacts in some cases, see the methods mentioned already, or for example "light-perspective-cascades", "variance shadow maps", "shadow atlas" (compute optimal resolution for shadows of each light given available memory, and arrange them accordingly in a big buffer), "moment shadow mapping".<br>
Some other workarounds are "baking" the shadow maps if light and object do not move.
I am missing a lot, but don't recall seeing a solution that works well when resolution / number of filtering passes / samples is restricted...  </p>

CC BY-SA 3.0
2017-03-23T17:30:51.187Z
2017-03-23T17:30:51.187Z
wip
<p>One technique is <a href="http://www.graphics.cornell.edu/pubs/2001/FFBG01.pdf" rel="nofollow noreferrer">adaptive shadow maps</a> where you use a low resolution map for shadows that are rendered far away from the camera, a mid-resolution map for stuff that's in the mid range, and a high resolution map for stuff that's close.</p>

CC BY-SA 3.0
2017-03-23T02:51:41.967Z
2017-03-23T02:51:41.967Z
user1118321
<p>I am building my own graphic engine.</p>

<p>My depth texture is significantly smaller than that of the screen.</p>

<p>The low resolution depth map results in rigid shadow like this...</p>

<p><a href="https://i.sstatic.net/kniJw.png" rel="noreferrer"><img src="https://i.sstatic.net/kniJw.png" alt="enter image description here"></a></p>

<p>I am sure this is a common issue.</p>

<p>I would like to learn "go to" technique to resolve this issue.</p>

CC BY-SA 3.0
2017-03-22T09:04:51.003Z
The simplest option is to get higher resolution of your shadow map in areas you care about.
ratchet freak
CC BY-SA 3.0
2017-03-22T12:58:04.123Z
Percentage Closer Filtering
Quinchilion
CC BY-SA 3.0
2017-03-24T01:47:10.407Z
PCF isn't really that good. In fact, PCF is the naive brute force solution for shadow map filtering. It definitely does not deserve to be called "the go to" solution. Even the simplest exponential shadow maps can be linearly filtered without destroying performance.
MickLH
CC BY-SA 3.0
2017-03-24T01:51:54.443Z
A realistic solution for a game engine is something more like using cascade shadow map partitioning in conjunction with a linearly filterable depth representation that you can pre-filter to the desired degree of smoothness.
MickLH
<shadow><shadow-mapping>
In forward rendering what's the go to technique to smooth out rigid shadow due to low resolution shadowmap texture?
Blue Bug
# In forward rendering what's the go to technique to smooth out rigid shadow due to low resolution shadowmap texture?

(Asked by: username_0 on 2017-03-21)

I am building my own graphic engine.

My depth texture is significantly smaller than that of the screen.

The low resolution depth map results in rigid shadow like this...

[![enter image description here](https://i.sstatic.net/kniJw.png)](https://i.sstatic.net/kniJw.png)

I am sure this is a common issue.

I would like to learn "go to" technique to resolve this issue.

**Tags:** shadow, shadow-mapping

> **Comments:**
> **username_1**: The simplest option is to get higher resolution of your shadow map in areas you care about.  
> **username_2**: Percentage Closer Filtering  
> **username_3**: PCF isn't really that good. In fact, PCF is the naive brute force solution for shadow map filtering. It definitely does not deserve to be called "the go to" solution. Even the simplest exponential shadow maps can be linearly filtered without destroying performance.  
> **username_3**: A realistic solution for a game engine is something more like using cascade shadow map partitioning in conjunction with a linearly filterable depth representation that you can pre-filter to the desired degree of smoothness.  

---

## 3 answers

### Answer by username_4 on 2017-03-23. Score: 3 | Accepted answer

Percentage Closer Filtering with some amount of blur (ie. a minimum filter size in texture space) is the most basic method I know of. For example, see [GPU Gems](http://http.developer.nvidia.com/GPUGems/gpugems_ch11.html). My experience is that it is also quite robust.


---

### Answer by username_5 on 2017-03-23. Score: 3

Ah, shadows. They still are bothering after so many people spent years trying to improve them.  
Whether your engine is deferred or forward, the shadow pass should be quite the same, and suffer the same issues.  
You are correct, this is a famous problem. Some methods can improve these artifacts in some cases, see the methods mentioned already, or for example "light-perspective-cascades", "variance shadow maps", "shadow atlas" (compute optimal resolution for shadows of each light given available memory, and arrange them accordingly in a big buffer), "moment shadow mapping".  
Some other workarounds are "baking" the shadow maps if light and object do not move.
I am missing a lot, but don't recall seeing a solution that works well when resolution / number of filtering passes / samples is restricted...


---

### Answer by username_6 on 2017-03-23. Score: 2

One technique is [adaptive shadow maps](http://www.graphics.cornell.edu/pubs/2001/FFBG01.pdf) where you use a low resolution map for shadows that are rendered far away from the camera, a mid-resolution map for stuff that's in the mid range, and a high resolution map for stuff that's close.


---

