HDAO

dx11 hdao10.1

 除了dx的sample竟然搜不到什么文档。。。。

估计去问别人也是让我继续看代码。。

----------------------------------------

算法:

A. o .B

A和B是两个关于像素o对称的像素 他们组成一对twin pair 这是深度采样  

o是目标像素

对AB计算他们的camera space 的z value

if  both Za and Zb < Zo

then o is a valley

这里这个差值越大 即valley越深 那么给o这个texel的 occlusion factor越大

 ------------------------

用dx的sample抄抄基本就差不多了 效果看起来比ssao好很多

有个问题卡了我很久 就是项目之前没有在pixelshader拿两个values

用setcolortarget(surface,1)就可以 在另外的帖子里有讲 

在渲染流程的位置没放好

 

现在还有个问题就是。。。一开始时的时候aobuffer会很空。。。转一转就正常了。。转到头顶再转一转就会好 同样程序反过来做就又坏掉

用normaltex采样来看 一开始是蓝绿色的 这样一转就变成橙色的了

感觉和什么反掉了 dot有关 问题在第一遍渲染生成normaltex的时候

 

这个错误今天修掉了,是个有明显特征的错误,就是显示出来的normal值 (normal 作为rgb显示)会随着相机的某种转动(转到头顶再旋转)而发生改变

这种错误之前 做specularmap的时候,也遇到过 随着人物在场景中position的变化,输出值会发生改变

明显意味着这个值受到了worldmatrix的影响,那次我不该mul worldmatrix

这次也是同样的问题 按照dx的算法

需要 normal × worldview

得到normal.zxy output

对于我们的skinable 因为没有world这步变换 所以只要view 被mul就可以了

之前是worldview 或者没有

posted on 2014-08-11 22:09  minggoddess  阅读(1135)  评论(0编辑  收藏  举报