2013-12-12 38 views
0

比方说,我有一个具有以下两个三角形的元件:不同坐标系下的模型OpenGL ES如何转换?

<triangle A="1018;655;0" B="1018;655;61,5" C="1030;655;61,5" /> 
<triangle A="1030;655;0" B="1077;655;0" C="1030;655;61,5" /> 

每个三角形有3个顶点其中0 1200之间和

由值现在我喜欢在OpenGL ES 2可视化这些元素

我现在正在做的是,寻找最大的价值,并通过这个值来分割所有的元素,以获得0和1之间的新值。每个三角形的这个值,我的渲染器能够可视化物体。

我不认为这是正确的方法。

我得到了以下矩阵:模型,视图,投影。我的计算机图形课程是在一段时间之前,但是不可能使用默认的三角值并从对象空间到视图/世界空间进行特定的转换?

有什么好的解决方案可用?或者我必须提供值介于0和1之间的对象,而我的方法是正确的方法。

回答

1

这取决于你在使用什么。如果使用glOrtho(与glFrustum相反),则只需插入较大的值作为参数,通常使用屏幕坐标。

至于截锥体(更可能在你的情况),你仍然可以做同样的事情,但你会改变视野(你会增加它的视角)。所以为了保持这一切,你应该扩大模型或简单地把它放在很远的地方。请注意,将它放在很远的地方可能需要增加平截头体调用中的zFar参数。

通常情况下,你得到的模型对于你的场景来说要么大到小,要么是过小,但这不是简单的矩阵调用无法处理的。所有你需要做的就是在绘制模型之前推动模型矩阵并缩放(glScalef),然后在绘制调用之后弹出它。这样你应该得到想要的效果,其余的代码是完整的。

+0

感谢您的回复。我也这么想! – Frame91