VSM and ATI
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
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...
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
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
- 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
This topic is closed to new replies.
Advertisement
Popular Topics
Advertisement