标准化设备坐标

时间:2013-03-28 22:24:51

标签: graphics 2d coordinates coordinate-systems

我正在编写一个处理2D图形形状的库。

我只是想知道我的坐标系为什么应该从x轴和y轴的 [ - 1,1] enter image description here

对于x,

而不是 [0,宽度] 而对于y, [0,高度] enter image description here

我选择了后一种系统,因为我觉得它很容易实现。

1 个答案:

答案 0 :(得分:7)

来自Jim Blinn的 A Trip Down The Graphics Pipeline ,p。 138。

  

让我们从最初看起来最简单的转换开始:规范化设备坐标到像素空间。转换是

s_x * X_NDC + d_x = X_pixel
s_y * Y_NDC + d_y = Y_pixel
  

用户/程序员在NDC中进行所有屏幕设计。 NDC隐藏的硬件有三个令人讨厌的现实:

     
      
  1. x y 中的实际像素数。

  2.   
  3. x y 中的非均匀像素间距。

  4.   
  5. Y 坐标的向上与向下。如有必要,NDC到像素的转换将反转 Y ,以便NDC中的 Y 指向。

  6.         

    ...

s_x = ( N_x - epsilon ) / 2
d_x = ( N_x - epsilon ) / 2

s_y = ( N_y - epsilon ) / (-2*a)
d_y = ( N_y - epsilon ) / 2

epsilon = .001
a = N_y/N_x  (physical screen aspect ratio)