Articles of opengl es

Android – 从计时器线程更新位图

我有一个由一个带有ImageView的布局组成的Android项目。 public class MainActivity extends AppCompatActivity { /* original and stretched sized bitmaps */ private Bitmap bitmapOriginal; private Bitmap bitmapStretched; /* the only view */ private ImageView iv; …. } 此ImageView由此runnable函数更新 runnable = new Runnable() { @Override public void run() { iv.setImageBitmap(bitmapStretched); } }; runnable由一个在后台线程上运行的临时JNI函数运行,每秒调用60次。 public void jniTemporizedCallback(int buf[]) { /* set data to original […]

使用OpenGL ES绘制纹理的最简单方法是什么?

我看到了这个Google IO会话: http : //code.google.com/intl/iw/events/io/2009/sessions/WritingRealTimeGamesAndroid.html 他说draw_texture函数速度最快,VBO速度更快。 但我不明白如何使用它(draw_texture方法或VBO方式)。 有什么建议吗?

glOrthof和glViewPort之间的区别

在OpenGL-ES上,我对设置之间的区别感到困惑 glOrthof() glViewPort() GLU.gluOrtho2D() 用它的各自参数。 因为我相信所有设置的部分你可以看到指定的坐标(宽度,高度)。 我应该使用哪个?

OpenGL ES可以渲染非基础2维度的纹理吗?

在我深入研究将当前渲染系统转换为openGL之前,这只是一个简单的问题。 我听说纹理需要是基本的2个尺寸才能存储以便渲染。 这是真的? 我的应用程序在内存上非常紧张,但大多数位图都不是2的幂。 存储非基础2纹理会消耗更多内存吗?

适用于Android OpenGL ES的Shader

是否可以在Android应用程序中使用顶点或像素着色器? 请举例说明如何设置着色器。

如何在Vigo Video Hypstar等摄像机上实时预览录像机

我想用Gif或图像像Vigo更改Surface预览底部叠加层 喜欢这个 请告诉我任何sdk或我用于此filter的内容 我可以使用此更改顶视图上的叠加层 这有帮助 PictureCallback cameraPictureCallbackJpeg = new PictureCallback() { @Override public void onPictureTaken(byte[] data, Camera camera) { // TODO Auto-generated method stub Bitmap cameraBitmap = BitmapFactory.decodeByteArray (data, 0, data.length); int wid = cameraBitmap.getWidth(); int hgt = cameraBitmap.getHeight(); // Toast.makeText(getApplicationContext(), wid+””+hgt, Toast.LENGTH_SHORT).show(); Bitmap newImage = Bitmap.createBitmap (wid, hgt, Bitmap.Config.ARGB_8888); Canvas canvas = new Canvas(newImage); […]

Android OpenGL ES Framebuffer对象 – 渲染深度缓冲到纹理

我正在使用运行Froyo的Android设备,支持OpenGL ES 1.1和OpenGL ES 2.0 我想将深度缓冲区渲染到纹理。 在其他平台(包括iPhone)上看过OpenGL ES OpenGL ES的一些例子后,我尝试了许多FBO配置。 我似乎能够使用颜色纹理获得FBO设置,但每次我附加深度纹理时它都会失败。 我当前的代码基于此示例,但也创建了颜色纹理,而不是将绘制和读取缓冲区设置为无。 是否有一个在Android上配置OpenGL ES FBO以向纹理渲染深度的简单示例? 或者是否有一个描述支持和不支持的文档? 感谢您的评论 – 我特别需要ES 1.1的解决方案,如果它可以find并在Android上运行。 我也想看一下ES 2 – 我不确定我理解将深度信息打包到颜色缓冲区的想法 – 你有一个参考我可以看看更好地理解这个想法吗? 关于代码 – 我的来源与我上面发布的链接几乎没有什么不同。 Framebuffer状态是它不完整。 感谢片段着色器建议 – 我现在明白了。 如果我不能让另一个解决方案工作,请看看。 我的理想是同时获得深度和颜色 – 如果我能帮助它,不要真的想分别渲染颜色和深度。

Android动态壁纸 – OpenGL与Canvas

我是一个相当“新手”的Android开发人员,我希望我的第一个项目之一是动态壁纸,但是我是否应该关注Canvas或OpenGL是否存在冲突。 作为新手,我知道我应该首先掌握Canvas,因为它更容易使用,但我更喜欢从我感兴趣的现实世界项目中学习,即使它有时有点倒退。 我之前以非常基本的方式使用过这两种方式,并且我理解它们的一般概念,但我不确定它们是如何转移到动态壁纸的领域。 我认为在动态壁纸上不需要OpenGL的全速运行,因为以最大FPS运行它会比电池耗尽更多,但与此同时我担心使用Canvas会导致滞后和在做更换主屏幕等事情时会口吃。 我一直倾向于使用OpenGL ES 2.0,以保持性能最佳,因为我对壁纸的初步想法涉及很多分层,我不确定Canvas是否有能力,但我想要一个更有经验的开发人员意见是否或者不是所有与使用OpenGL相关的额外工作(特别是关于动态壁纸,从我读过的内容)是值得的。

将自定义滤镜应用于相机输出

如何将自定义滤镜应用于相机输出中的单个帧,并显示它们。 到目前为止我尝试了什么: mCamera.setPreviewCallback(new CameraGreenFilter()); public class CameraGreenFilter implements PreviewCallback { @Override public void onPreviewFrame(byte[] data, Camera camera) { final int len = data.length; for(int i=0; i<len; ++i){ data[i] *= 2; } } } 虽然它的名字包含“绿色”,但我实际上只是想以某种方式修改这些值(在这种情况下,颜色会稍微加强一些)。 长话短说,它不起作用。 我发现字节数组’data’是摄像头输出的副本; 但这并没有真正帮助,因为我需要’真正的’缓冲区。 我听说你可以用openGL来实现它。 这听起来很复杂。 有更容易的方法吗? 否则,这个openGL-surfaceView映射将如何工作?

如何使用OpenGL-ES 2在Android中加载和显示.obj文件

我正在尝试将.obj文件加载到我的Android应用程序中并使用OpenGL 2显示它。 你可以在这里find这个文件: 编辑:我删除了文件 ,你可以使用任何包含下面提到的值的.obj文件进行测试。 stackoverflow上有很多类似的问题,但我找不到一个不需要一些大型库的简单解决方案。 该文件仅包含以下值types: G v VT VN F 我尝试了libgdx,它工作正常,但对我需要的东西来说有点矫枉过正。 我在没有LWJGL的情况下尝试了oObjLoader https://github.com/seanrowens/oObjLoader 。 解析似乎有效,但如何在简单场景中显示值? 下一步是将图像作为纹理附加到对象。 但是现在我很乐意按原样显示文件。 我愿意接受不同的解决方案,例如预转换文件,因为它只会在应用程序中出现。 谢谢! 状态更新基本加载和显示现在可以正常工作,如我自己的答案所示。