首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >不同坐标系下的OpenGL模型如何转换?

不同坐标系下的OpenGL模型如何转换?
EN

Stack Overflow用户
提问于 2013-12-12 04:59:40
回答 1查看 79关注 0票数 0

假设我有一个包含以下两个三角形的元素:

代码语言:javascript
复制
<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之间的值,而我的方法是正确的方法。

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2013-12-12 10:28:48

这在一定程度上取决于您使用的是什么。如果您使用glOrtho (相对于glFrustum),您所需要做的就是插入较大的值作为参数,屏幕坐标是常用的。

至于结果(在你的情况下更有可能),你仍然可以做同样的事情,但是你会改变视野(你会增加它的角度)。因此,为了保持所有的整体,你要么缩放模型,要么简单地把它放远。请注意,通过将它放置在很远的地方,您可能需要在播客调用中增加zFar参数。

通常情况下,对于场景来说,您得到的模型要么太大要么太小,但这不是简单的矩阵调用所不能处理的。您所要做的就是在绘制模型之前将模型矩阵和比例尺(glScalef)向下推,然后在绘图调用之后弹出它。通过这种方式,您应该可以获得所需的效果,而代码的其余部分是完整的。

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/20535395

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档