计算世界空间中的像素着色器坐标(Calculating world space coordinate

2019-09-23 18:48发布

我有个像素着色器,我想计算在我的世界空间坐标方面每一个像素的位置。 我会怎么做呢? 什么会我需要什么?

我有一个ps_input具有个float4持仓结构: SV_POSITION 。 我假设这是很重要的,但里面存储的值似乎是一种有趣的。

我似乎无法找出它们涉及到什么。 例如,如果一个像素是2D,怎么就对此事AW组件,或az组件?

我使用DirectX和像素着色器是在HLSLC++的CPU在我的编程语言。

任何帮助,将不胜感激。

Answer 1:

如果我记得这个正确,SV_POSITION只有0-> w ^ 0-> H,那么它描述它是在屏幕上。 本网站包含更多的信息: http://msdn.microsoft.com/en-us/library/windows/desktop/bb509647(v=vs.85).aspx

为了让像素到世界空间,你改变你的pixelcordinate回worlspace。 it'sa有点棘手与数学和所有的(我认为这是!),但这篇文章应该帮助你! http://jcoluna.wordpress.com/2011/01/27/reconstructing-view-space-position-from-depth/

其他明智的搜索像素viewspace。 我知道你想要的世界空间,但一切都转化为viewspace可能更快。



文章来源: Calculating world space coordinates in the pixel shader