BLUR

ssao的blur遇到个麻烦

 花了两三天时间。。。终于大概知道原因了。

在nvidia的ssao(http://developer.download.nvidia.com/SDK/10.5/direct3d/Source/ScreenSpaceAO/doc/ScreenSpaceAO.pdf)中 用到了

cross bilateral filter这种blur这个比那种downsample的blur看起来高档多了

但是怎么都拿不出来

到采样那步的数据都对 r×blurFilterDistance造成一个偏移,这里都是对的 可以return出来

到后面edgesharpness

其实就是这个参数,在app里面注释掉这个参数传入数据blur就正确了

app里传的是1

取消传入,也就是会用一个shader对float的 默认值我试试0

这个猜想是不对的 0 和1 都对

只是那种传入不对,这种问题之前也遇到过 考虑到原始版本是一个宏。。。。。

就是有些参数用宏这种方式写就对。。。。。。。

#deifne edgesharpness (1.0f)

 

啊 好让人抓狂 

这里改好了 在hdao里用ssao的那种blur

但是 为什么ssao里那么写就对。。。 

 

这个问题解决了 不是什么define的问题

也没有那种ssao好使hdao不好使的诡异

是因为ssao中对后面的key 做了定义 从generate ao的时候把 depth分成整数和小数部分传入 用于计算

hdao没做这步所以 edgesharpness×了这堆不好使 加了就好使了

 

黑盒。。。。。不好 还是要每句都懂就少踩坑了

 

posted on 2014-09-03 17:53  minggoddess  阅读(293)  评论(0编辑  收藏  举报