OpenGL ES2.0 shader内部return语句返回失败和数据精度丢失,花屏问题

最近客户反映遇到我们的产品一个很奇怪的问题,字体花屏现象

shader使用两张纹理贴图(图标和文字纹理)做多重纹理映射时,部分手机出现花屏现象,dicard后不起作用,后面的语句继续执行

添加了return语句同样问题

纠结了两三天,今天终于查出原因,如题

shader内部return语句返回失败和数据精度丢失,大部分手机一切正常。

问题机器型号ID: HM2013022

ANDROID.VERSION.RELEASE: 4.2.1

GL_VERSION: OpenGL ES 2.0 build [email protected]

GL_RENDERER: PowerVR SGX 544MP

GL_VENDOR: Imagination

和一款三星的具体型号不详

时间: 2024-11-06 18:08:57

OpenGL ES2.0 shader内部return语句返回失败和数据精度丢失,花屏问题的相关文章

OpenGL ES2.0 入门经典例子

原文链接地址:http://www.raywenderlich.com/3664/opengl-es-2-0-for-iphone-tutorial 免责申明(必读!):本博客提供的所有教程的翻译原稿均来自于互联网,仅供学习交流之用,切勿进行商业传播.同时,转载时不要移除本申明.如产生任何纠纷,均与本博客所有人.发表该翻译稿之人无任何关系.谢谢合作! ps:非常感谢skingTree为我们提供的这篇翻译教程,感谢yy.小狼.北方加入我的教程翻译团队,谢谢你们! 教程截图: OpenGL ES 是

iOS OpenGL ES2.0 开发实例

本教程源码地址下载:https://github.com/wanglixin1999/HelloGL OpenGL ES 是可以在iphone上实现2D和3D图形编程的低级API. 如果你之前接触过 cocos2d,sparrow,corona,unity 这些框架,你会发现其实它们都是基于OpenGL上创建的. 多数程序员选择使用这些框架,而不是直接调用OpenGL,因为OpenGL实在是太难用了. 而这篇教程,就是为了让大家更好地入门而写的. 在这个系列的文章中,你可以通过一些实用又容易上手

iOS开发——图形编程OC篇&OpenGL ES2.0编程步骤

OpenGL ES2.0编程步骤 OpenGL ES (OpenGL for Embedded Systems) 是 OpenGL 三维图形 API 的子集,针对手机.PDA和游戏主机等嵌入式设备而设计.该API由Khronos集团定义推广,Khronos是一个图形软硬件行业协会,该协会主要关注图形和多媒体方面的开放标准. 1. 保存全局变量的数据结构 以下例子程序均基于Linux平台. 1 typedef struct _escontext 2 { 3 void* userData; // P

OpenGL ES2.0 基本编程

1. EGL OpenGL ES命令需要一个rendering context和一个drawing surface. Rendering Context: 保存当前的OpenGL ES状态. Drawing Surface: 是原语(primitive)画图的Surface.它指定了渲染的buffer类型,如:color buffer,depth buffer和stencil buffer:同时它也指定了每个需要的buffer的位深度(bit depth). EGL是OpenGL ES API与

Eclipse中通过Android模拟器调用OpenGL ES2.0函数操作步骤

原文地址: Eclipse中通过Android模拟器调用OpenGL ES2.0函数操作步骤 - 网络资源是无限的 - 博客频道 - CSDN.NET http://blog.csdn.net/fengbingchun/article/details/11192189   1.  先按照http://blog.csdn.net/fengbingchun/article/details/10439281中操作搭建好基本的Android开发环境: 2.  打开Eclipse,-->Window-->

Android用OpenGL ES2.0显示YUV数据,在手机上需要两种坐标系的解决方案

如题 ,不知道大家看懂了这个题目没有,给个链接:http://blog.csdn.net/wangchenggggdn/article/details/8896453(下称链接①), 里面评论有很多人提到了这个问题,我也是其中一员,但是问遍了所有人,自己也发帖(http://bbs.csdn.net/topics/390769358) 寻求解决方案,却终究没能得到一个可用的方案. 从2014年4月中旬遇到这个问题,纠结了两个多星期,终于在看了好多好多资料之后,于4月的最后一个周一,暂时解决了这么

Android +NDK+eclipse+opengl ES2.0 开启深度测试

参考:https://www.opengl.org/discussion_boards/showthread.php/172736-OpenGL-ES-Depth-Buffer-Problem 环境:eclipse,ndkr8,opengl es2.0,android 最近使用eclipse和NDK进行android opengl es2.0的开发,发现了绘制的物体显示与深度无关,而与绘制的前后顺序有关.想了一下,应该是深度测试没有开启,开启了glEnable(GL_DEPTH_TEST),但是

cocos2d Shader系列1:cocos2d-js Shader和OpenGL ES2.0

cocos2d的Shader也就是差不多直接跟GPU打交道了,跟Flash的Stage3D(AGAL)类似,不过没有AGAL这么恶心,不需要直接编写汇编语言.而Fragment Shader又跟Flash的pixelbender类似. 本文以cocos2d-js为例,但cocos2dx其他版本也是同理的,只是函数名略有不同而已. 当然还是得先复习或者学习一下GPU的原理,至少得知道vertex shader和fragment shader的作用和区别. 详细可以看看大神的说明: http://w

OpenGL es2.0 之照相机

API:    GLES20.setLookAtM(eyeX,eyeY,eyeZ ,centerX,centerY,centerZ ,upX,upY,upZ) 主要是三个参数,(照相机坐标,照相机的焦点,照相机向上的方向) ,下面主要讨论这三个参数的意思. 1.照相机坐标:照相机的位置 2.照相机焦点:焦点就是选择城乡最清晰的点,比如一个场景有的物体离镜头远,有的物体离镜头近,选择焦点就是在照相机的可视范围选择要拍的最清晰的点 3.照相机向上的方向:照相机放置在水平平台上的时候照相机向上的方向为