PCF

Here are some screen captures of the program when I was computing PCF

(Inspired by http://www.opengl-tutorial.org/intermediate-tutorials/tutorial-16-shadow-mapping/ and the hw9 of Icg course)

First implementation :

For the percentage closer filtering we used the Poisson distribution over 16 samples and so it blurs the shadow and there is no more aliasing on the shadow's borders.

But we can see some acne and aliasing in the first implementation on curved surfaces :

Acne on curved surfaces

 

After some research the conclusion we had was that the samples spread wasn't large enough, so we tried to spread them much more and the surface appears really good even if we loose some bluring effect. (nb: If we spread too much we go back into aliasing of bias shadow mapping problem, sharp shadows) : 

Surface no Acne

 

Then we tried to use a rotated poisson disk to have a nicer look at the edges of shadows here are some pictures with rotated and not rotated poisson disk and another blurring method consisting on randomizing the indexes you take from poisson distribution, and with all others parameters the same (buffer size = 4096, spread = 150)

Random Indexes : 

Random indexes

 

Poisson :

Poisson

 

Rotated poisson :

Rotated poisson

 

And we can definitely see that the rotated poisson gives the better result, the edges are smooth and we don't see lines separating shadowed and non-shadowed area. So we just keep this implementation.