And Tada!
[attachment=23401:Snapshot1.jpg]
A couple of things I've changed. When creating the depth stencil view - I also created a depth stencil state with stencil enabled and depth enabled.
My program would constantly crash like a mad man - found out it was the XMVECTOR and XMMATRIX inside a 32 bit Dynamic Library. The engine will be brough into the x64 bit later on. So as far as setting up the view and projection matrixes from the light source - I multiplied them both and stored them into a XMFLOAT4x4 inside the ShadowMap class.
Now this isn't multisampled - I could multisample it then blur it a bit with gaussian blur. I just don't like the dark area way above on the plane floor. Is this another depth buffer issue when it starts to self shadow or is this normal?
The jagged lines got better with perspective set instead of orthographic view. I read perspective is good for spot lights and point lights and Orthrographic is good for Directional Lights.
Another issue I noticed is sometimes the shadow map will detatch from the box when I move it around make it float. The bais is set to 0.001f - would I have to perhaps configure the DepthBias inside the Rasterization State?
Another thing I changed was the shadow map resolution from whatever the scene height and width was to 2048. The program crashes when I try to use 4096x4096.
I believe changing the resolution higher made the shadow map turn out nicer; also changing the near plane and far plane to be 1.0f to 1000.0f.
I read on MSDN that a depth texel sampled too big will cause shadow acne. Also depth texel that sampled to close to the light cameras view port will cause sharp and changed lines. Shadow map resolution will also cause jagged shapes inside the shadow map. I may have got some of this confused what MSDN - I'm trying to remember it all.
Instead of the camera position being (100, -100, 100) I changed it to (-10,50,-50) which helped as well.
On the DepthStencilView I thought the higher the depth stencil resolution DXGI_FORMAT_D32_FLOAT would be better but I couldn't notice any differience. So I changed it back to DXGI_FORMAT_D24_UNORM_S8_UINT;