glViewport在Android和iOS中有不同的结果

glViewport在Android和iOS中有不同的结果,第1张

概述我刚开始使用opengles开始使用我的跨平台框架(iOS和Android)的渲染器.当我到达视口的东西(分裂屏幕的东西需要)时,注意到iOS和Android之间存在差异.这是两个图像.Android的实际上还有另一个小故障.它似乎包装好了.iOS版我的问题.哪两个是正确的?我没有应用任何转换,但只有一个

我刚开始使用opengl es开始使用我的跨平台框架(iOS和Android)的渲染器.当我到达视口的东西(分裂屏幕的东西需要)时,注意到iOS和AndroID之间存在差异.这是两个图像.

AndroID的
实际上还有另一个小故障.它似乎包装好了.

iOS版

我的问题.
哪两个是正确的?我没有应用任何转换,但只有一个可以将绘制的四边形拉回来. glTranslatef(0.0f,0.0f,-5.f);

初始化代码:

glEnable(GL_TEXTURE_2D);glShadeModel(GL_SMOOTH);            //Enable Smooth ShadingglClearcolor(0.f, 0.f, 0.f, 1.0f);  //Black BackgroundglClearDepthf(1.0f);                    //Depth Buffer SetupglEnable(GL_DEPTH_TEST);            //Enables Depth TestingglDepthFunc(GL_LEQUAL);             //The Type Of Depth Testing To Do//Really Nice Perspective CalculationsglHint(GL_PERSPECTIVE_CORRECTION_HINT, GL_NICEST);

视口和项目代码

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以获得一些真正的控制,我认为,我即将到来.

总结

以上是内存溢出为你收集整理的glViewport在Android和iOS中有不同的结果全部内容,希望文章能够帮你解决glViewport在Android和iOS中有不同的结果所遇到的程序开发问题。

如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。

欢迎分享,转载请注明来源:内存溢出

原文地址: https://outofmemory.cn/web/1109778.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2022-05-29
下一篇 2022-05-29

发表评论

登录后才能评论

评论列表(0条)

保存