我刚开始使用opengl es开始使用我的跨平台框架(iOS和Android)的渲染器.当我到达视口的东西(分裂屏幕的东西需要)时,注意到iOS和Android之间存在差异.这是两个图像.
Android的
实际上还有另一个小故障.它似乎包装好了.
iOS版
我的问题.
哪两个是正确的?我没有应用任何转换,但只有一个可以将绘制的四边形拉回来. 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);
视口和项目代码
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以获得一些真正的控制,我认为,我即将到来.
原文地址:https://codeday.me/bug/20190826/1729906.html
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。