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 或者没有