最近在搞HDRP中的渲染,发现一个很神奇的bug,传进去的数据是对的,通过shader内置的MVP矩阵变换后输入,结果不对,出现右移。调了一天没搞懂为啥,最后去问了一个大佬后得到解答。
经过hdrp渲染的矩阵一定要从hdrp camera上拿到投影矩阵然后通过
GL.GetGPUProjectionMatrix(hdCamera.camera.projectionMatrix, true)
来获得转换过后的投影矩阵,不然有时就会出现偏移!shader里面尽量不要使用UNITY_MATRIX!不过感觉使用M 和 V矩阵应该没问题,P矩阵一定要自己传进去。
补充:后来查明真正的问题是有东西改变了g buffer的大小,所以上面说的是一部分,还有最好在渲染之前设置你的view port