Unity Shaderlab-从屏幕空间到世界空间的转换

问题描述 投票:0回答:1

我正在制作一个需要世界空间坐标的后处理着色器(统一)。我可以访问某个像素的深度信息,以及该像素的屏幕位置。如何找到该像素对应的世界位置,就像ViewportToWorldPos()函数一样?

c# matrix unity3d camera shaderlab
1个回答
0
投票

看看这个教程:http://flafla2.github.io/2016/10/01/raymarching.html

实质上:

  • 在屏幕的每个角落存储一个向量,作为常量传递,从摄像机位置到角落。
  • 根据屏幕空间位置或屏幕空间四元组的uvs插入向量
  • 将最终位置计算为cameraPosition + interpolatedVector * depth
© www.soinside.com 2019 - 2024. All rights reserved.