草庐IT

android - 2D opengl 游戏中多屏幕支持的提示?

支持多屏幕的问题已经被问死了,但我还没有看到关于游戏开发(带有碰撞盒、碰撞检查等)的太多讨论。目前,由于升级,我的游戏在“兼容模式”下运行,在高端设备上产生的视觉效果非常差。我正在寻找其他人如何使他们的游戏图形在所有屏幕尺寸上看起来都不错的提示和建议。开发人员是否包含每个资源的2个副本(中密度和高密度),或者高密度资源是否只是按比例缩小以用于低密度设备?您的计算中是否使用了与密度无关的像素? 最佳答案 Dodevelopersinclude2copiesofeachresource(mediumandhighdensities)or

android - 使用 OpenGL ES 的任何分辨率的视口(viewport)边界

我在理解OpenGL透视图时遇到困难。我已经阅读了大量信息,但是它并没有帮助我实现我所追求的目标。这确保我的3d场景在每台Android设备上填满整个屏幕。为了对此进行测试,我将在3d空间中绘制一个四边形,它最终应该触及每个角落,填满整个设备的屏幕。然后我可以使用这个四边形,或者实际上它的坐标来指定一个特定Z距离的边界框,我可以用它来放置我的几何体并确保它们填满我的屏幕。当屏幕调整大小时,或者我要在另一个屏幕分辨率上运行它,我会重新计算这个边界框和几何图形。我不是在谈论静态几何,而是说我想用球填满屏幕,球有多大或有多少并不重要,唯一重要的是屏幕被填满并且没有多余的可见平截头体之外的球。

java - 强制 OpenGL 缓冲区使用 GL 1.0 或 1.1?

我一直致力于一个项目,在该项目中,用户可以与GLSurfaceView交互以在屏幕上绘制形状。这一切都很好而且花花公子,但现在我正在尝试做两件事:1)创建他们绘图的缩略图,以及2)保存他们的绘图。请务必注意,用户可以绘制比屏幕大的图像。据我的研究表明,最好使用Bitmap(可以是1)渲染到Canvas的缩略图,以及2)保存到文件系统,这实现了我的两个目标)。最初,我尝试通过glReadPixels从GLSurfaceView中读取Renderer,但事实证明我无法关闭-从这个屏幕数据。相反,我选择做一个屏幕外缓冲区来生成图像渲染,可以将其转换为Bitmap。我找到了一个lovelypo

android - OpenGL ES 中圆角矩形的最佳实践

使用OpenGLES,圆角矩形似乎有两个可行的选择:使用三角函数手动绘制形状。(这就是我目前正在做的事情。)使用一个或一组可适当缩放的纹理,例如9-SliceScaling第一个选项的问题是抗锯齿不是免费提供的,如果您的目标是与各种设备兼容,则不能指望OpenGL抗锯齿提示在硬件上实际工作。所以你留下了看起来不规则的圆角矩形,特别是对于小的,以及进行另一个顶点数组绘制调用的性能开销。我想远离这个第二个选项(9-Slice或9-Patch)似乎是UI圆角矩形元素的首选方法,但令人惊讶的是,关于在OpenGLES中实现9-patching的信息很少。我想要的是:一种在OpenGLES中渲染

android - OpenGL ES 3.0。浮点纹理

我有OpenGLES3.0,我正在尝试创建纹理:case1:glTexImage2D(GL_TEXTURE_2D,0,GL_R16F,width,height,0,GL_RED,GL_HALF_FLOAT,0);break;case2:glTexImage2D(GL_TEXTURE_2D,0,GL_RG16F,width,height,0,GL_RG,GL_HALF_FLOAT,0);break;case3:glTexImage2D(GL_TEXTURE_2D,0,GL_RGB16F,width,height,0,GL_RGB,GL_HALF_FLOAT,0);break;(对于这段代

android - 将屏幕坐标转换为 OpenGL 坐标

我正在为Android创建一个骰子滚筒应用程序。使用Kotlin、OpenGL-ES和jBullet。我已经实现了骰子。现在我需要创建墙,否则骰子会滚出屏幕。因为屏幕可以有不同的纵横比,我试图用glUnProject确定墙壁的位置,但我无法弄清楚。我收到的坐标不正确。gl.glViewport(0,0,width,height)//ResetTheCurrentViewportgl.glMatrixMode(GL10.GL_PROJECTION)//SelectTheProjectionMatrixgl.glLoadIdentity()//ResetTheProjectionMatri

java - OpenGL ES - 虚线

我正在使用OpenGlES1.0开发我的Android游戏,我想绘制虚线现在我使用这段代码来画我的线:gl.glColor4f(1.0f,0.0f,0.0f,1.0f);//gl.glBlendFunc(GL10.GL_SRC_ALPHA,GL10.GL_ONE_MINUS_SRC_ALPHA);gl.glLineWidth(4.0f);gl.glVertexPointer(2,GL10.GL_FLOAT,0,mBufDestVertices);gl.glDrawArrays(GL10.GL_LINE_LOOP,0,mDesPoly.getNumPoints());我应该如何更改它?我

opengl-es - 为什么 OpenGL 混合在 HTC Desire 上不起作用?

有谁知道如何在HTCDesire上启用OpenGL(android)中的混合。我正在尝试绘制彩色三角形并使用颜色缓冲区的alpha值将它们与背景(或另一个三角形)混合。它既适用于模拟器(2.1)也适用于htchero2.1,但不适用于2.2。导致这种情况的英雄和愿望之间是否存在某种硬件差异?代码中的主要内容是(不按顺序):gl.glClear(GL10.GL_COLOR_BUFFER_BIT|GL10.GL_DEPTH_BUFFER_BIT);gl.glEnable(GL10.GL_BLEND);gl.glBlendFunc(GL10.GL_SRC_ALPHA,GL10.GL_ONE_

android - 在 android native 代码 (ndk) 中使用 OpenGL ES 2.0 FrameBuffer (FBO) 和 Stencil

我正在尝试生成一个frambuffer对象并在使用NDK(r5b)的nativeandroid应用程序中使用模板。目标设备运行froyo2.2,支持OpenGLES2.0。所以,我一直在我的c++native库中编写大量gl代码,除此之外没有解决任何问题。我似乎无法让它发挥作用。这是创建帧缓冲区的代码fragment。完整性都很好,但屏幕仍然完全黑色。这就像我正在创建的fbo并没有真正绑定(bind)到由应用程序的Java部分创建的gl表面。我的应用程序代码的其余部分都很好,如果我删除fbo创建和绑定(bind),一切都运行良好,除了我没有我的应用程序所需的模板。GLintbackin

java - OpenGL 纹理不遵循几何

我正在努力应对从OpenGLES1.x到2.0的复杂性跃升。我正在尝试将纹理应用于矩形平面,然后能够在保持纹理正确映射的同时缩放和平移该平面。我的问题是:我哪里做错了,我如何才能在平移和缩放平面时对平面进行纹理处理?我将发布我的渲染器类,对象将用来绘制自身的类,以及我的顶点和fragment着色器:GL渲染器:packagecom.detour.raw;importjavax.microedition.khronos.egl.EGLConfig;importjavax.microedition.khronos.opengles.GL10;importandroid.content.Co