草庐IT

android.grapics.matrix 到 OpenGL 2.0 ES 纹理转换

目前,该应用程序显示一个ImageView,它可以在屏幕上成功地缩放和平移。在该图像之上,我想提供一个纹理,我想在其下方的图像缩放或平移时更新自身以缩放或平移。据我所知,这应该可以通过在ImageView上使用我当前设置的getImageMatrix(),然后将其应用于原始图像顶部的纹理位图来实现。编辑和解决方案:(在下面所选答案的大力帮助下)目前,纹理中的平移速度与ImageView的速度不同,但当该问题得到解决后,我将通过其他编辑更新此帖子,并为整个应用程序提供解决方案。然后将只保留解决方案和快速问题描述段落。也许我什至会发布使用可缩放表面View的表面View和渲染器源代码。为了

Android OpenGL 以原始(小)分辨率渲染到 frameBuffer,然后将其缩放(viewPort)到屏幕尺寸

我有一个NV21(YUV420)摄像机视频,我正在对其应用fragment着色器以获得一些滤镜效果以及YUV到RGB的转换。除了性能不佳外,一切正常。我的fragment着色器有点重,因为它有很多textur2D()调用。原始帧分辨率为480x640像素,我注意到如果我将视口(viewport)设置为这个原始大小(而不是全屏大小),它运行良好且流畅。所以基本上我需要首先渲染帧并在frameBuffer(FBO)中以原始大小处理它,然后(在着色器工作完成后)使用视口(viewport)(主要是1080x1920)将它缩放到全屏大小,这意味着“繁重”的处理工作将应用于更少的fragment

android - opengl android中的纹理坐标显示图像反转

我编写了openglandroid代码来在正方形上显示位图。但是位图是反向绘制的。当我将纹理数组组合更改为注释代码时,它被正确绘制。但我坚持我的纹理数组必须如下所示。我想错了吗?/**Theinitialvertexdefinition*/privatefloatvertices[]={-1.0f,1.0f,0.0f,//TopLeft-1.0f,-1.0f,0.0f,//BottomLeft1.0f,-1.0f,0.0f,//BottomRight1.0f,1.0f,0.0f//TopRight};/**Ourtexturepointer*/privateint[]textures=

java - Android 上的 OpenGL : Any conflicts when calling OpenGL functions in both Java and C++?

在我的应用程序中,我使用了在Java中调用OpenGL函数的第3方自定义View,并且还在我的nativeC++代码中调用了OpenGL函数。这应该是个问题吗?是否存在同时调用它们的风险?跨java/c++的OpenGL调用的线程顺序是什么? 最佳答案 这应该不是问题,只要您知道自己在做什么。Android中的OpenGLJava绑定(bind)基本上只是调用相同的c++函数。这些调用中没有更多逻辑。因此,您基本上可以将这些调用视为直接的C++代码。如果您只有一个上下文,您更有可能遇到的问题是OpenGL不是线程安全的。因此,如果两

Android:在 OpenGL 之后正确清理

在Android上使用OpenGLES后是否需要采取任何特定的清理操作来清理,还是一切都会自动发生? 最佳答案 虽然操作系统应该清理所有OpenGL资源(如纹理、VBO、帧缓冲区等),一旦您的程序结束(这应该像任何其他操作系统一样在Android上保留)或GL上下文被破坏,它是使用各自的析构函数(如glDeleteTextures、glDeleteBuffers...)删除不再需要的任何OpenGL对象仍然是一个好习惯。 关于Android:在OpenGL之后正确清理,我们在StackO

Android 和 OpenGL 启动时出现黑框

我目前正在为我的一位客户编写一个Android应用程序,该应用程序有一个带有GLSurfaceView.Renderer的GLSurfaceView。我的整个OpenGL东西工作得很好(它基本上是另一个开发人员首先在iOS上编写的东西的一个端口)。除了一件事。当加载View并因此加载OpenGL内容时,我的背景快速闪烁黑色,然后OpenGL开始正确渲染(使用我的背景)。所以我做的是:在onSurfaceCreated中,我从这个开始:@OverridepublicvoidonSurfaceCreated(GL10gl,EGLConfigconfig){GLES20.glClearCol

android - Ubuntu 16.04 无法识别的 OpenGL 版本

Genymotion卡住:“正在启动虚拟设备”。Ubuntu16.04.2长期支持Genymotion2.8.1--清除缓存,--全部删除,重新安装,--删除所有虚拟设备并下载并安装新设备--.Genymobile文件夹中的genymotion.log没有错误,--genymotion-player.log在.Genymobile/Genymotion/deployed/CustomPhone-7.0.0-API24-768x1280文件夹中:bře618:57:08[GenymotionPlayer][warning]UnrecognizedOpenGLversionbře618:5

android - opengl对象在移动一段距离后振动

我有一个在地形上移动的物体,第三人称摄像机跟随它,在我将它朝不同方向移动一段距离后,它开始摇晃或振动,即使它没有移动并且摄像机围绕它旋转,这是物体的移动代码double&delta=engine.getDeltaTime();GLfloatvelocity=delta*movementSpeed;glm::vec3t(glm::vec3(0,0,1)*(velocity*3.0f));//translatetheobjetatribeforerenderingmatrix=glm::translate(matrix,t);//gettheforwardvetorofthematrixg

android - OpenGL ES - 纹理映射一个 8 顶点立方体的所有面?

使用Android模拟器完成一些OpenGL-ES教程。我已经开始进行纹理映射,但在映射到立方体时遇到了一些问题。是否可以将纹理映射到具有8个顶点和6个面的12个三角形的立方体的所有面,如下所述?//Usehalfaswearegoingfora0,0,0centre.width/=2;height/=2;depth/=2;floatvertices[]={-width,-height,depth,//0width,-height,depth,//1width,height,depth,//2-width,height,depth,//3-width,-height,-depth,//

android - OpenGL Point Sprites 在 Android 中工作吗?

我正在开发一个Droid,版本2.1-update1。我支持的GL扩展包括GL_OES_point_sprite和GL_OES_point_size_array。我无法获取要渲染的点Sprite。下面的代码在glTexEnvi调用时从GLWrapperBase抛出UnsupportedOperationException。如果我禁用纹理并全部注释掉glTexEnvi,它会在glPointSizePointerOES()处进一步抛出相同的异常。Android是否正确支持点Sprite?有没有人让他们工作?还是我下面的代码有问题?//NotethatgliscasttoGL11gl.glE