OpenGL:2D顶点坐标到2D查看坐标?

时间:2010-11-16 02:20:34

标签: opengl graphics transform glut

我正在为一个类项目实现一个光栅化器,目前我仍然坚持使用什么方法/如何将顶点坐标转换为查看窗格坐标。

我给出了一个三角形的2d坐标的顶点列表,比如

 0 0 1  
 2 0 1  
 0 1 1
例如,

和我在尺寸为400X400像素的查看窗格(使用OpenGL和GLUT)中绘图。

我的问题是我如何决定在查看窗格中放置这些顶点的位置,假设

1)我希望坐标以屏幕中心的0,0为中心 2)我想填满大部分屏幕(比如说这个例子,屏幕是最大x坐标+ 1个长度宽等)
3)我拥有任何和所有OpenGL和GLUT的标准库函数。

谢谢!

2 个答案:

答案 0 :(得分:1)

http://www.opengl.org/sdk/docs/man/xhtml/glOrtho.xml

以0为中心使用对称左/右和底/顶。注意近/远有些任意但通常选择(在示例中)为-1 .. + 1,这可能是z = 1时三角形的问题。

如果您关心纵横比,请确保左右和底部与窗口的宽度/高度成比例。

答案 1 :(得分:0)

您应该考虑作为体积视图的视锥体,并通过转换对象来考虑它们的位置来计算坐标,this非常彻底地解释理论。

基本上你必须使用根据视图特征计算的指定投影矩阵来投影对象:

  • 根据z(深度)值缩放它们:缩放y和x,使其成比例地与z
  • 成比例
  • 缩放和移动坐标以适合视图的宽度