HLSL协调系统方向

时间:2012-05-29 18:38:15

标签: directx shader hlsl

这个问题可能看起来很简单,但我无法找到HLSL如何处理自己的坐标系。

我只想知道位于(0,0)的位置(左上角或左下角),由于我是这些着色器概念的初学者,我无法自行扣除

感谢您的帮助!

2 个答案:

答案 0 :(得分:5)

我相信你想了解DirectX的坐标系。 HLSL是一种着色语言,并没有定义协调空间。

以下是一些可以帮助您入门的链接。

  1. Coordinate system
  2. Pixel and Texture coordinate systems

答案 1 :(得分:1)

在顶点着色器中,您可以使用多个坐标系或空格......

通常你的顶点数据到达世界坐标......

然后顶点数据由WordViewProjection矩阵转换,从世界坐标转换为同质投影坐标,这是顶点着色器返回的值......

如果顶点位于屏幕内部,如果将x和y坐标除以w分量,则会得到范围内的点(-1..1,-1..1)...我是不确定,但我认为(-1,-1)是左上角...你只需要测试它

你可以向显卡发送两个三角形,代表四边形,在这个空间中有屏幕角(-1,-1,0),(1,-1,0),(1,1,0),( -1,1,0),这样您就不需要通过任何矩阵变换顶点数据。

你还没有解释你想做什么..但我想你想做一个后期处理......

如果是这种情况......你可以使用纹理坐标在像素着色器中工作......这样左上角点将是(0,0),右下角点将是(1,1)

您可以在这里找到代码和扩展说明:http://ploobs.com.br/?p=1092