排查bug,从法线到renderdoc,再到nsight,最后居然是交换链image format不同。。

3月左右,想着把learnopengl 里pbr章节的东西在vk里做一下,vk官方demo也有pbr的基础demo,最后还是从uvSphere生成球结点开始,发现生成的球正常应该两个三角形组成一个球,结果两个三角形一部分重叠了,整个球非常奇怪,最后在查,没记错好像在gamedev里翻到了个正确的算法,很好,开始着色shader,写完了发现结果非常的白,ambient同官方一样却非常的高,相邻sphere,不同金属都和粗糙度的球光照结果非常不正常,第一个想法是会不会法线生成有点问题?把官方demo的geomerty demo里的法线pipeline抄过来,运行,哎?vk debug layer 一直告诉我uniform块在多个阶段定义有问题,问大佬,大佬让我删了再试试,删了后法线依然报。。debug看代码法线第一帧没问题。然后把所有uniform都注释了,还在报错。。绝望的我把项目清理。。莫名其妙又好了,法线终于画出来了,看了下法线没问题啊,又去排查会不会是shader里数据错了?打开renderDoc,进去看vs阶段,MVP、摄像机位置、材质参数都对,到了fs里uniform数据就乱了,检查uniform块fs和vs里定义和顺序都一样啊。。换nsight看看,发现数据没问题。。。又回到开始的,那为什么真么白,突然想到shader里的映射和矫正,会不会是我帧缓冲、展示、交换链里的iamge format有区别?看了下,果然,一个SRGB,一个SNORMAL…改了结果终于正确了,开始看看filament是怎么做pbr的。。

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值