ICode9

精准搜索请尝试: 精确搜索
首页 > 其他分享> 文章详细

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

2019-08-26 12:24:48  阅读:546  来源: 互联网

标签:android ios opengl-es viewport


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

标签:android,ios,opengl-es,viewport
来源: https://codeday.me/bug/20190826/1729906.html

本站声明: 1. iCode9 技术分享网(下文简称本站)提供的所有内容,仅供技术学习、探讨和分享;
2. 关于本站的所有留言、评论、转载及引用,纯属内容发起人的个人观点,与本站观点和立场无关;
3. 关于本站的所有言论和文字,纯属内容发起人的个人观点,与本站观点和立场无关;
4. 本站文章均是网友提供,不完全保证技术分享内容的完整性、准确性、时效性、风险性和版权归属;如您发现该文章侵犯了您的权益,可联系我们第一时间进行删除;
5. 本站为非盈利性的个人网站,所有内容不会用来进行牟利,也不会利用任何形式的广告来间接获益,纯粹是为了广大技术爱好者提供技术内容和技术思想的分享性交流网站。

专注分享技术,共同学习,共同进步。侵权联系[81616952@qq.com]

Copyright (C)ICode9.com, All Rights Reserved.

ICode9版权所有