VSM and ATI

Started by
17 comments, last by AndyTX 17 years, 9 months ago
Hello, I just tried my VSM implementation on an ATI and it looks much worse than on an nVidia. It seems like there is no texture filtering supported on 64 bit render targets or perhaps I am doing something wrong. I compared an X1800 with a 7900GTX. I have added a few screenshots with comparisons (the error is not very visibly here .. I should have taken better screenshots :() Screenshots can be found a bit bigger here: - overview compare bigger - Shadow ATI normal - Shadow ATI VSM - Shadow ATI VSM Blur (here error best visible) - Shadow nVidia normal - Shadow nVidia VSM - Shadow nVidia VSM Blur Both of them use the same shaders .. If this is normal I think I will try the fetch4 instruction on the ATI. Are there any samples on how to efficiently use these somewhere .. Any suggestions on this, Regards, Kenzo
Advertisement
I can't really see the error in the ATI VSM blur image, but if I recall correctly, ATI doesn't filter floating point textures because they don't (didn't) consider that essential.
Quote:Original post by Guoshima
Hello,

I just tried my VSM implementation on an ATI and it looks much worse than on an nVidia. It seems like there is no texture filtering supported on 64 bit render targets(...)

That's it. Their is no filter on floating textures on ATI cards (tested on a X700 pro)

EDIT: oops , doubled...
yep switch to an integer format instead ...
Those are really cool screenshots! Only Geforce 6 & 7's support 16 bit fp filtering. Some ATI hardware supports 16 bit fixed point filtering, so you should either switch to that or an integer format.
thanx for the help .. ! Any info btw on fetch4 .. has anyone used this one before already ?

Regards,
Kenzo
Quote:Original post by Guoshima
thanx for the help .. ! Any info btw on fetch4 .. has anyone used this one before already ?

Regards,
Kenzo


I belive there are samples for Fetch4 in the ATi SDK.
Guoshima, would you mind giving a few details about your settings in those shots? What format are you using for the depth buffer, and how big is it? How many times are you blurring the depth buffer, and what kernel? I am curious because I don't see any color bleeding in your shots, and in my implemenation blurring the depth buffer just makes the bleeding worse.
sure .. for my Dirlight VSM I am currently using 3 shadows maps. Settings are:
- size: 1024
- near: 1m
- far: 500m
- shadowbias: 0.0057
- blurscale: 0.74
- vsm epsilon: 0.00063

in this shot you don't see any bleeding, that's true, but in other scenes sometimes the bleeding becomes visible again. It really depends on the scene. Then I can play again with my parameters to remove 'm, but then it becomes visible somewhere else, so don't worry. I haven't found a good solution for this yet. Which really helped me for this was making sure my floating point values are between -1 and 1, and if possible devide over 4 channels (which I am not doing here).

Regards,
Kenzo
Hmm .. just found out that I can't use Alpha testing on G16R16 render targets. Which is really annoying if I want to render my leaves of the trees into a shadow map. Any suggestions which format I can use then for ATI support ..

Regards,
Kenzo

This topic is closed to new replies.

Advertisement