草庐IT

es6-features

全部标签

android - 带有着色器的 HUD (opengl-es 2.0)

如何在opengles2.0上使用着色器绘制HUD?我有一个在屏幕上绘制带纹理的四边形的着色器,它使用MVP矩阵。四边形有自己的顶点,这些顶点与View位置等无关(MVP矩阵的原因)Matrix.frustumM(mProjMatrix,0,-ratio,ratio,-1,1,3f,17);Matrix.setLookAtM(mVMatrix,0,0,0,-5,0f,0f,0f,0f,1.0f,0.0f);我想在右上角显示相同的四边形(如按钮或其他东西,HUD)。据我了解,我需要创建一个正交矩阵而不是“frustumM”,但我以后应该做什么?顶点着色器应该如何使用四边形的顶点?

android - OpenGL ES 2.0 中的纹理图集

我正在使用OpenGLES2.0开发一个简单的项目。它进行得相当顺利,但我似乎遇到了一个似乎对我们初学者来说记录不足的地方。也就是说,我正在尝试使用纹理图集。我搜索了一下,但似乎找不到任何完整的代码示例。大多数搜索结果会让人们给出关于它们是什么以及如何使用它们的非常基本的概念,但从来没有一个我可以真正研究的完整示例。目前,我只是想从一个图像集中加载一组四到五张图像,并将它们应用到单个三角形strip上。我可以根据需要划分出图像的特定部分,但我找不到任何关于将该图像的更多部分应用到同一个三角形带的示例。我不一定需要关于此的完整教程(我不介意!),但如果有人可以向我指出一些执行类似操作的示

android - OpenGL ES 2.0——简单粒子系统的最佳途径

我正在尝试为使用OpenGLES2.0的Android应用程序创建一个非常简单的粒子系统。基本上它仅适用于背景中的线性移动云。在开始之前我的第一个想法是使用点Sprite,这就是我一直在尝试做的事情。我很难做到这一点,但撇开这些问题不谈,点Sprite真的是解决这个问题的方法吗?在我为解决错误而进行的搜索中,我已经阅读了很多关于它们的相互矛盾的内容,如果这不是我应该的解决方案,我不想投入大量时间来使它一切正常首先去争取。与仅使用三角形相比,人们发布了各种各样的问题,例如裁剪,甚至性能下降。我希望有经验的用户了解点Sprite适合的位置以及何时应该使用它们,包括在像我这样的情况下,它们在

android - OpenGL ES 2.0 无法在 Android 4.0.3 上呈现

我正在为Android编写完全原生的OpenGLES2.0游戏引擎。之前我使用SamsungGalaxyS(Android2.3.3)开发,现在使用SamsungGalaxySII(更新到Android4.0.3)。我没有在GalaxySII上试用引擎,因为它仍然有Android2.3.3(硬件特定问题?)。现在引擎可以在Android2.3.3(在GalaxyS上测试)上正常运行和渲染,但在Android4.0.3(在GalaxySII上测试)上无法渲染。问题类似这样:OpenGLRenderernotworkingonIceCreamSandwich除渲染外,其他一切在4.0.3上

Android:为什么 ContentView.getTop() 中存在差异取决于 FEATURE_NO_TITLE?

在我看来,Android的坐标系统存在问题。当我有一个普通View(不请求FEATURE_NO_TITLE)时,我然后检索intcontentViewTop=window.findViewById(Window.ID_ANDROID_CONTENT).getTop();。这给了我76px:38px用于状态栏,38px用于标题栏。但是,如果我请求FEATURE_NO_TITLE然后重复该过程,getTop()返回0px,尽管事实上状态栏仍然可见!这种差异应该不会有什么不同,因为我们通常不关心内容View从哪里开始。但是,它对我来说确实很重要,因为我将View放置在装饰View上——它覆盖

android - 多个 OpenGL ES 2 Android 渲染器

是否可以在一个屏幕上同时显示多个渲染?就像将android屏幕分成4个象限并在每个象限上显示一个立方体?我认为OpenGL有可能,但那是GLUT并且是基于Windows的。我正在研究如何为android做这件事,但我还没有遇到任何描述。这是我创建渲染的主要Activity。publicclassMainActivityextendsActivity{privateMyGLSurfaceViewmGLView;@OverridepublicvoidonCreate(BundlesavedInstanceState){super.onCreate(savedInstanceState);/

android - OpenGL ES2.0 glReadPixels() 非常慢

我正在使用glReadPixels将像素从FBO读取到内存。代码如下:UINT8*data;glBindFramebuffer(GL_FRAMEBUFFER,FBOID);glReadPixels(0,0,w,h,GL_RGB,GL_UNSIGNED_BYTE,data);我发现这个操作非常非常慢...在openGLES2.0(Android)中有没有其他选择? 最佳答案 是的,它很慢。OpenGLES2.0在Android上没有提供更快的方法。您可以在OpenGLES3.0上使用PBO,但这可能不适合您,因为目前支持它的设备很少,

android - glsl es dFdx/dFdy 模拟

我正在编写跨平台应用程序。它应该在Android设备上运行。我想使用dFdx/dFdy进行抗锯齿。但是,不幸的是,glsles2.0不支持导数。我可以用什么东西代替dFdx/dFdy吗?IE。1/sprite_width,1/sprite_height以屏幕像素为单位。正如我所说,我需要它才能在Android设备上运行。我看到我的设备支持GL_OES_standard_derivatives,它允许它使用这个函数。所有androidopengles2.0设备都支持吗? 最佳答案 正如我所说,许多OpenglES2.0设备都支持GL_

Android:如何将 MediaMuxer 与视频/mp4v-es 而不是视频/avc 一起使用?

我希望能够在某些设备上使用mp4v-es而不是avc。编码器使用avc运行良好,但是当我用mp4v-es替换它时,muxer报告:E/MPEG4Writer(12517):Missingcodecspecificdata如MediaMuxererror"Failedtostopthemuxer",视频无法播放。不同之处在于我将正确的轨道/格式添加到混合器,而没有收到任何错误:...elseif(encoderStatus==MediaCodec.INFO_OUTPUT_FORMAT_CHANGED){MediaFormatnewFormat=encoder.getOutputForma

Android Surfaceflinger 和 openGL ES

我有几个关于SurfaceFlinger的问题:1)我知道应用程序会写入Surface本身,然后将缓冲区移动到SurfaceFlinger(假设我使用的是HardwareCanvas或EGL)。缓冲区里面有什么?原始像素?编译openGL代码?缓冲区能否在一次交易中保存像素而在另一次交易中保存另一种类型的数据?2)我在某处读到SurfaceFlinger使用OpenGLES1.0API写入HWC/DisplayController命令。是真的吗?如果是,那么3.0版命令是如何翻译成1.0版命令的,在哪里?谢谢 最佳答案 (1)假设您