首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >OpenGL -多个设备上的相同尺寸

OpenGL -多个设备上的相同尺寸
EN

Stack Overflow用户
提问于 2011-07-29 02:36:06
回答 1查看 174关注 0票数 3

我想让我的正方形适合屏幕的宽度。我已经成功地在我的设备上做到了如下所示:

代码语言:javascript
运行
复制
@Override
public void onDrawFrame(GL10 gl) {
    // Clears the screen and depth buffer.
    gl.glClear(GL10.GL_COLOR_BUFFER_BIT | GL10.GL_DEPTH_BUFFER_BIT);
    gl.glClearColor(1f, 1f, 1f, 1f);
    // Replace the current matrix with the identity matrix
    gl.glLoadIdentity();

    gl.glTranslatef(0f, 0f, -1.6f);

    new Plane(1f,1f).draw(gl);
}

所以我的飞机是1f宽,1f高。通过将部件移动到屏幕1.6f中,正方形恰好适合屏幕的宽度。但在其他设备上,正方形变得太大,部分落在屏幕之外。

怎样才能使正方形的宽度适合屏幕的宽度?

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2011-07-29 02:40:54

我刚开始使用android和openGL,所以可能会有一些我不知道的助手类。

问题出在宽高比(aspectRatio=screenWidth/screenHeight)上。这在不同的设备上是不同的,这会导致飞机离开屏幕。你应该根据宽高比来缩放所有的东西,或者制作一些始终横跨整个屏幕宽度但高度不同的窗口(高度会根据你想要的宽高比进行调整)。

如果你使用身份投影和相机,我认为你停留在NDC空间(或类似的空间),所以如果你在这个空间中渲染一个四边形,边缘在-1或+1中,你应该用这个四边形填充整个屏幕。

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

https://stackoverflow.com/questions/6863959

复制
相关文章

相似问题

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