草庐IT

android - 减少 OpenGL ES 1.1 中纹理的内存使用

我在OpenGLES中的场景需要多个高分辨率纹理,但它们是灰度的,因为我仅将它们用于mask。我需要减少内存使用。我尝试使用Bitmap.Config.ALPHA_8和RGB_565加载这些纹理。ALPHA_8似乎实际上增加了内存使用。是否有某种方法可以将纹理加载到OpenGL中并使其使用每像素少于16位?glCompressedTexImage2D看起来很有前途,但据我所知,不同的手机提供不同的纹理压缩方法。另外,我不知道压缩是否真的减少了运行时的内存使用。以ATITC和PVRTC格式存储我的纹理的解决方案是什么?如果是这样,我如何检测设备支持哪种格式?谢谢!

Android OpenGL ES 纹理在某些三星设备的黑屏上显示

我最近在开发一个动态壁纸应用程序。在那里我发现我的Android动态壁纸有一个奇怪的问题。我使用我的HTCWildfireS、三星Galaxytab、摩托罗拉DroidMillstone、三星galaxypop来测试我的墙纸和模拟器,一切正常,但在三星手机上(三星GalaxySII和三星GalaxyPlayer有这个症状)屏幕在初始启动时保持黑色。但是一旦我们转到设置屏幕并返回预览它的工作正常。在对这些手机进行一些调试后,我发现墙纸加载正确,但纹理不只是显示出来。我尝试搜索问题,但没有找到任何有用的信息。我从native代码绑定(bind)纹理。在那里我使用OPENGL库来绑定(bin

android - 帮助纠正 Android OpenGL 2.0 w/QCAR 中的线缩放

我正在使用Android中的QCARARSDK,它使用OpenGL2.0,我是2.0的新手。QCARSDK适用于基于CV的AR应用程序,并利用OpenGL渲染图像。我只想在屏幕中央画一个小X,并使用以下代码。但是X不是绘制到正确的坐标,而是延伸到屏幕的边缘。无论我为顶点分配什么值,都会发生这种情况。我无法确定这是缩放问题还是我正在使用的坐标系存在一些混淆。关于为什么没有正确绘制这些线的任何想法?-我知道这在1.1中会更容易,但我必须使用2.0。谢谢//ClearcoloranddepthbufferglClear(GL_COLOR_BUFFER_BIT|GL_DEPTH_BUFFER_

Android:将 Java View 添加到 OpenGl View

我已经使用ndk和cocos2dx将我的iphone应用程序移植到android。这非常有效,我认为cocos2dx非常酷!现在我想在Java环境中向我的主openglView添加一些JavaView。这对我来说并不是真的有用。我认为我需要有关在Java环境中使用View、Activity、Intent等的基本知识。具体来说,我需要在运行时向我的openglView添加一个TextView(java)。我尝试了以下方法,但是当我调用函数voidtestSetText()时它崩溃了。publicclassmyTestextendsCocos2dxActivity{privatestati

用于 OpenGL 的 Android 传感器

我想让android传感器与opengl一起工作,以将opengl的相机旋转到手机指向的任何地方。详细说明:如果玩家正在看东方,我希望opengl的相机在游戏中也指向东方;如果玩家指向天空,我想将opengl的相机指向天空等等。我试过使用getRotationMatrix并在opengl上加载矩阵,但它只适用于上下方向,如果我将单元格转向两侧,则没有区别。这是我到目前为止所做的(应用程序处于横向模式):publicvoidonSensorChanged(SensorEventevt){inttype=evt.sensor.getType();floatalpha=0.8f;//Smoo

android - OpenGL ES 2 - 一个大纹理图集与多个小纹理图集。什么是更好的性能明智?

我正在使用alreadyexistingengine在Android中开发游戏.我必须为我的动画使用大纹理,我想知道什么是更好的性能明智。新版本的引擎支持npot纹理(如果你问自己为什么我使用这样的分辨率)。拥有多个2330x1100纹理图集还是只有一个2330x(1100xnumber_of_textures_i_need)纹理图集更好?这个选择会影响加载时间吗?(我认为它们需要的内存是相同的,因为它们包含相同数量的像素)我在某处读到切换纹理可能是一个缓慢的操作..支线任务:1)jar纹理是否更有效(在环境构建中以便它可以处理npot纹理)?2)我可以只使用一个纹理来达到某些尺寸/内

android - 在 opengl es 2.0 中访问项目和模型 View 矩阵

我正在使用在opengles2.0中将屏幕坐标转换为世界坐标GLU.gluUnProject(winX,winY,winZ,model,modelOffset,project,projectOffset,view,viewOffset,obj,objOffset)但是,我不确定如何检索模型View和项目矩阵。我发现的所有示例仅适用于opengles1.0和1.1。任何帮助将非常感激。谢谢。 最佳答案 当然这在OpenGLES2.0中是可能的。唯一的区别是您不必使用glGetFloatv(GL_MODELVIEW_MATRIX,arr

android - OpenGL ES 2.0 基于运动画线,线总是从原点开始

我刚开始学习Android版OpenGL,在画线时遇到了一个奇怪的问题。我想要做的就是根据手指运动画一条线。现在,一旦我开始滑动,我总是会得到一条从原点(0,0)开始跟随我的运动的线。这里是一张图片:http://imageshack.us/photo/my-images/137/screenshot2012061312174.jpg/箭头表示我的手指运动,从原点(红色圆圈)开始的线是我整个运动之后提到的线。不要为Coords数组而烦恼我知道这不是最佳实践,但我调试了整个程序并且找不到涉及此数组的任何错误。我可能应该提到ArrayList点包含我生成的所有点。我想暂时解决这个问题,但我

Android OpenGL 纹理在 Sprint Samsung Galaxy s2 Epic Touch 4g 上看起来很糟糕

首先承认我是一名opengl新手-我一直在开发的游戏能走到这一步简直是个奇迹。纹理在HTCEvo3d、DroidBionic和thunderbolt上看起来不错。我刚买了SprintSamsungGalaxys2,纹理看起来很糟糕-我的理论是更大的屏幕和较低的dpi影响纹理mag过滤(我的另一个理论是我不知道我在做什么)。截图#1GalaxyS2与HTCEvo3d截图#2GalaxyS2与HTCEvo3d我已经尝试启用/禁用抖动,使用16位、24位和32位纹理,将选项传递给androidBitmapFactory解码方法以防止缩放,在下面的代码fragment中禁用我的每个opengl

android - 将 int 数组转换为 Android OpenGL ES 1.0 的 intbuffer?

我最近在Badlogicgames.com上阅读了一篇关于加速将信息添加到顶点缓冲区(或任何其他intbuffer)的过程的文章,它确实提高了我的项目速度,但我不太明白"NoticingtheIntBuffer.put(int[]src)wasnotaffectedbytheproblem"声明....如果不需要float,是否可以将int[]数组馈送到IntBuffer中以提高速度?每次我尝试将int[]放入缓冲区时;没有渲染...这是我目前使用的一个例子:dMesh[i].putVertexBuffer(coords);//functionbeingcalledpublicvoid