gpt4 book ai didi

android - glViewport 在 Android 和 iOS 中的不同结果

转载 作者:太空宇宙 更新时间:2023-11-03 12:40:06 28 4
gpt4 key购买 nike

我刚刚开始使用 opengl es 为我的跨平台框架(iOS 和 Android)制作渲染器。当我到达视口(viewport)的东西(分屏的东西需要)并注意到 iOS 和 Android 之间存在差异。这是两张图片。

安卓实际上还有另一个故障。 IT 似乎在包装。

Android quarter sized viewport

iOS

iOS quarter size viewport

我的问题。两者哪个是正确的?我没有应用任何变换,只是将绘制的四边形稍微拉回一点。 glTranslatef(0.0f, 0.0f, -5.f);

初始化代码:

glEnable(GL_TEXTURE_2D);
glShadeModel(GL_SMOOTH); //Enable Smooth Shading
glClearColor(0.f, 0.f, 0.f, 1.0f); //Black Background
glClearDepthf(1.0f); //Depth Buffer Setup
glEnable(GL_DEPTH_TEST); //Enables Depth Testing
glDepthFunc(GL_LEQUAL); //The Type Of Depth Testing To Do

//Really Nice Perspective Calculations
glHint(GL_PERSPECTIVE_CORRECTION_HINT, GL_NICEST);

视口(viewport)和项目代码

glViewport(viewportX, viewportY, viewportW, viewportH);.

glEnable(GL_SCISSOR_TEST);
glScissor(viewportX, viewportY, viewportW, viewportH);

glMatrixMode(GL_PROJECTION);
glLoadIdentity();

... 最后计算截头体并设置 glFrustrum。我也用过这段代码:

float widthH = width * .1f;
float heightH = height * .1f;
glOrthof(-widthH, widthH, -heightH, heightH, .1f, 100.f);
glScalef(widthH, heightH, 1.f);

也许 Android 或 iOS 有一些默认设置?我一无所知。

最佳答案

为有同样问题的人回答我自己的问题。

我使用 GLKView,它显然会在每次渲染调用时调用 glViewport,重置我在前一帧中所做的事情。因此,如果您使用 GLKView,请确保每帧调用 glViewport! ... 或滚动您自己的 EAGLView 以获得一些我认为我即将实现的真正控制。

关于android - glViewport 在 Android 和 iOS 中的不同结果,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9999118/

28 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com