草庐IT

Textures

全部标签

Android OpenGL - ES 纹理出血

我正在编写一个小应用程序,目前可以生成随机纹理贴图。我将这张map绘制成一组10x15的“四边形”,它们实际上都是三角形strip。我使用“map”获取一个整数,然后将其作为该正方形在textureAtlas中的纹理位置。所以例如0是左下角的“tile”。map集大小为128x128,分为32个像素block。然而,我似乎得到了一些奇怪的伪像,其中一个图block的纹理正在蔓延到下一个图block。我想知道它是否是图像本身,但据我所知,像素正是它们应该在的位置。然后我查看了我指定的纹理坐标,但它们看起来都很准确(0.0、0.25、0.5、0.75、1.0-将其分成我期望的4行和4列)。

Android Opengl ES 最大纹理数

我是一名Android开发人员,第一次尝试使用OpenGLES1.0来显示大量带有纹理映射到其上的方形对象。这些纹理取自大位图,稍后我可能会按比例缩小。有谁知道如何找出我的设备将支持的最大纹理数(以编程方式)?我假设最大数量取决于纹理的大小和压缩状态等因素。但是我找不到任何文档提到这个限制是什么,或者如何解决这个问题。我希望能够渲染100,000纹理映射的方形对象,但不确定这在我的设备上是否可行。这是针对非标准Android设备的,因此如果官方发布的设备存在此类规范,则没有此类规范。这是一款非移动定制设备,运行Android4.1,内存为1GB。帮助或建议?

android - LibGDX 从 base64 PNG ByteArrayInputStream 创建纹理

我刚刚决定将Slick2D更改为LibGDX。但是,为了能够将我的游戏移植到LibGDX,我需要帮助了解如何从我的游戏数据文件在LibGDX中创建纹理。我的游戏数据文件是加密的,图像是用base64编码的,所以我可以将它们全部保存在一个txt文件中。如何从ByteArrayInputStream创建LibGDX纹理。在Slick2D中,我将base64字符串转换为缓冲图像。但我不想为LibGDX这样做,因为我可能希望尽快在Android上使用它。编辑:我刚刚想通了,有点。我是这样做的:Texturebucket;Stringbase64="base64stringtoolongtopa

android - 如何从 GLSurfaceView 保存位图(仅位图,不是整个纹理)

我正在使用这段代码对GlSurfaceView上的位图产生多重效果。apply-effects-on-image-using-effects现在,我想保存位图。他们已经给出了保存位图的代码,但是有了这个,整个GlSurfaceView将被保存为位图图像。相反,我只想保存位图区域以另存为图像。有一种方法可以获取像素并从中制作位图,也可以制作图像。例如:publicBitmaptakeScreenshot(GL10mGL){finalintmWidth=mEffectView.getWidth();finalintmHeight=mEffectView.getHeight();IntBuf

Android OpenGL ES 2.0 文本渲染

网络上似乎明显缺乏对如何在OpenGLES2.0中显示文本的支持。JVitela的回答:DrawtextinOpenGLES说使用Canvas,并在其上绘制文本以生成位图,然后使用GLUtils渲染文本位图,但答案仅显示直接绘制文本的部分,而不显示围绕它的其他内容。我也一直在尝试在http://www.learnopengles.com上课,在本例中是处理基本纹理的第4课。JVitela的方法是如何传递给顶点或fragment着色器的?关于背景的部分是否必要,或者将背景留在外面只会导致GLSurface其余部分的文本?他使用的textures变量到底是什么?我认为这是一个纹理数据句柄(

java - 为什么像素颜色在 Android 上的 OpenGL ES 2.0 中不正确?

(编辑:我尝试了一个示例,它只绘制了一个三角形,没有任何纹理或着色器,并且在我的设备上只有OpenGL-ES1.1,并且可以看到相同的伪影。我在模拟器中尝试了相同的示例,那里没有伪影完全没有。这可能是Tegra2问题,还是我需要设置特定状态或模拟器中不需要的东西?)我正在屏幕上渲染一个像素正确的正方形,但是当我截屏并查看像素时,其中一些像素会稍微偏离,例如抗锯齿或过滤或类似的东西。您只有在放大它们时才能看到它,但这不是重点。我想在像素着色器中做一些数学运算,如果像素稍微偏离,那对我来说就不好了。我需要它们,就像我放入它们的位图中一样。这是问题的放大屏幕截图。在白线周围,暗值比应有的值稍

android - 在 LibGDX 的纹理上渲染视频

我是LibGDX的新手我正在构建一个游戏并且我有一个动画背景,它有大约10秒的动画(大约250帧)因为尝试为此构建一个Sprite表是没有用的(当然是大背景)有没有办法渲染视频文件是png序列到纹理,所以我可以在游戏中绘制我的动画背景? 最佳答案 现在有一个视频播放的扩展gdx-video. 关于android-在LibGDX的纹理上渲染视频,我们在StackOverflow上找到一个类似的问题: https://stackoverflow.com/quest

android/opengles alpha 纹理不是半透明的而是二进制透明的

我正在绘制一些带有alphachannel的纹理,但是当它们显示时,看起来alphachannel只是二进制的。所以一个像素要么是透明的要么是不透明的,尽管在纹理文件本身中像素是半透明的。混合设置如下:gl.glEnable(GL10.GL_BLEND);gl.glBlendFunc(GL10.GL_ONE,GL10.GL_ONE_MINUS_SRC_ALPHA);这个问题有解决办法吗?上面是应该的样子,下面是应该的样子: 最佳答案 试试这个:gl.glEnable(GL10.GL_BLEND);gl.glBlendFunc(GL1

android - Nexus 10/Android 4.2.2(三星 Exynos 5 w/Mali-T604)上的 glTexSubImage2D 性能较慢

我有一个Android应用程序可以将视频解码为yuv420p格式,然后使用OpenGLES渲染视频帧。我使用glTexSubImage2D()将y/u/v缓冲区上传到GPU,然后使用着色器进行YUV2RGB转换。所有EGL/OpenGL设置/渲染代码都是native代码。现在我并不是说我的代码没有问题,但考虑到相同的代码在iOS(iPad/iPhone)、Nexus7、KindleHD8.9、SamsungNote1和其他一些廉价的中国平板电脑上运行良好(A31/RockChip3188)运行Android4.0/4.1/4.2。我会说我的代码不太可能是错误的。在这些设备上,glTex

Android opengl 问题(奇怪)

这很奇怪。我有一个基本应用程序(仪表板,...)和一个GLSurfaceview,我在其中绘制3D对象和纹理。一切都运行得很好,但是当我回去参加其他Activity时,嗯,截图胜于文字:这是之前的仪表盘这是opengl:这是我按下返回时的仪表板:如您所见,图片和文字都消失了。我在4.0+上运行,所以我想这是因为android使用opengl绘制元素,因为它在我的2.2设备上不这样做。您知道造成这种情况的原因吗?顺便说一句,当我不使用纹理时,它不会发生。 最佳答案 好的,我发现了我的问题所在。我通过在fragment的onPause(