我正在为一个类项目实现一个光栅化器,目前我仍然坚持使用什么方法/如何将顶点坐标转换为查看窗格坐标。
我给出了一个三角形的2d坐标的顶点列表,比如
0 0 1
2 0 1
0 1 1
例如,和我在尺寸为400X400像素的查看窗格(使用OpenGL和GLUT)中绘图。
我的问题是我如何决定在查看窗格中放置这些顶点的位置,假设
1)我希望坐标以屏幕中心的0,0为中心
2)我想填满大部分屏幕(比如说这个例子,屏幕是最大x坐标+ 1个长度宽等)
3)我拥有任何和所有OpenGL和GLUT的标准库函数。
谢谢!
答案 0 :(得分:1)
http://www.opengl.org/sdk/docs/man/xhtml/glOrtho.xml
以0为中心使用对称左/右和底/顶。注意近/远有些任意但通常选择(在示例中)为-1 .. + 1,这可能是z = 1时三角形的问题。
如果您关心纵横比,请确保左右和底部与窗口的宽度/高度成比例。
答案 1 :(得分:0)
您应该考虑作为体积视图的视锥体,并通过转换对象来考虑它们的位置来计算坐标,this非常彻底地解释理论。
基本上你必须使用根据视图特征计算的指定投影矩阵来投影对象: