Tag: 纹理

在Android上的OpenGL Sphere上绑定video纹理

我正试图在Android上创建一个360video领域 (就像纸板一样)。 我通过在OpenGL ES1.0中渲染一个球体而不是将纹理附加到它来拍摄照片。 之后我可以使用传感器值来旋转球体。 但是,我无法弄清楚如何将图片更改为video 。 我已经尝试使用texSubImage2D()逐帧渲染,但它是超级慢。 我的video可能大约是4k密度,因为我需要一个好的质量,即使它只显示了一小部分。 我已经阅读了一些关于应该如何完成的理论知识(即帧缓冲区,外部纹理,同步等),但我找不到这些东西的任何示例 ,因此一些代码将非常受欢迎 … 这是我如何渲染球体,绘制它并附加纹理(即我的球体类)… import rapid.decoder.BitmapDecoder; public class Sphere { /** Buffer holding the vertices. */ private final List mVertexBuffer = new ArrayList(); /** The vertices for the sphere. */ private final List mVertices = new ArrayList(); /** Buffer holding the texture coordinates. */ private final […]

纹理不能正确拉伸。 为什么会这样?

我正在使用LWJGL和Slick框架将Textures加载到我的OpenGL应用程序中。 我正在使用这个图片: 这个代码导入并利用纹理: flagTexture = TextureLoader.getTexture(“PNG”, ResourceLoader.getResourceAsStream(“japan.png”)); …… flagTexture.bind(); GL11.glColor3f(1.0f, 1.0f, 1.0f); GL11.glPushMatrix(); GL11.glTranslatef(0.0f, 0.0f, -10.0f); GL11.glBegin(GL11.GL_QUADS); GL11.glTexCoord2f(0.0f, 0.0f); GL11.glVertex2f(0.0f, 0.0f); GL11.glTexCoord2f(1.0f, 0.0f); GL11.glVertex2f(2.5f, 0.0f); GL11.glTexCoord2f(1.0f, 1.0f); GL11.glVertex2f(2.5f, 2.5f); GL11.glTexCoord2f(0.0f, 1.0f); GL11.glVertex2f(0.0f, 2.5f); GL11.glEnd(); GL11.glPopMatrix(); 但最终结果是: 我没有使用任何特殊设置,如GL_REPEAT或类似的东西。 这是怎么回事? 如何使纹理填充给定的顶点?

Libgdx在运行时更改Texture的颜色

在一个用Libgdx制作的游戏中我有一个TextureAtlas ,我在其中存储了所有的TextureRegion用于Player Animation TextureRegion 。 默认情况下, Player有一个蓝色T恤(例如)。 现在我希望能够拥有一个以上的Player ,每个Player都应该拥有另一种T恤颜色。 所以基本上我想用第二个Player用红色代替蓝色,用第三个Player代替绿色等等。 我相信我可以用PixMap做到这一点,但是我不会失去TextureAtlas的优势吗? 还有其他可能吗? 或者我需要在TextureAtlas每个“颜色版本”作为TextureAtlas ? 另一个小问题: 使用Gimp(可能还有一些其他程序),您可以使用“.gif”文件的颜色索引。 通过为文件中的每种颜色保存索引,然后使用此索引来描述像素,这会减小所有Texture的大小。 因此,对于每个红色像素,您将拥有“1”而不是“#FF0000”,并且文件中的某处有“1 =#FF0000”。 如果然后在TextureAtlas打包带有颜色索引的“.gif”文件,那么索引是否会丢失并恢复默认的RGB颜色或会产生问题? 非常感谢!

从texturepacker的纹理在LibGDX

尝试在(令人敬畏的)LibGDX框架中了解纹理包装器,我需要帮助。 我想绑定一个纹理(根据网格,颜色和纹理 ),该纹理是从TexturePacker打包的TextureAtlas中提取的。 纹理绑定到矩形网格。 我希望纹理(纹理的实例)基本上从打包文件中提取。 是否可以使用createsprite或findregion方法并以某种方式跳过文件句柄步骤? 另外:将上述方法与AssetManager结合使用时,应该记住哪些特殊内容? 谢谢你把我排除在外!

LibGdx纹理绘制为#getTextureData给出的反转

我一直在努力解决我在libgdx桌面程序上正确显示纹理的问题。 我有一个正交相机,当我设置为: camera.setOrtho(false); 我得到这个图像: 当我把它设置为: camera.setOrtho(true); 我得到这个图像: 使用SpriteBatch绘制红色图像: batch.draw(texture, x, y, width, height); 白色图像是根据其α值是否为1绘制的各个点绘制的。 TextureData td = texture.getTextureData(); td.prepare; Pixmap map = td.consumePixmap(); for (int i = 0; i < map.getWidth(); i++) for (int j = 0; j < map.getHeight(); j++) if (new Color(map.getPixel(i, j)).a == 1) points.add(new Point(i, j)); 以上是用于获取所有非透明像素的代码。 它们显示为白色图像,似乎与原始纹理相反。 但是,绘制的点和图像本身始终是彼此相反的。 有什么方法可以解决这个问题吗? 谢谢。 […]

libgdx纹理filter和mipmap

当我尝试在LibGDX中使用mipmap过滤时,不会出现任何图像。 我是LibGDX的新手,我有一个简单的2D场景,有三个旋转的缩放圆圈。 为了对它们进行反混淆,我想使用线性过滤。 对于建议,我查看了这篇文章 , 该文章说,对于大规模缩放的图像,可以使用mipmap来提高速度或质量。 第一个意想不到的表现是,尽管我的所有图像都按比例缩小,但我只会看到一个线性filter,如果magFilter是线性的。 换一种说法: 此代码将显示缩小图像的线性filter: parentTexture.setFilter(TextureFilter.Nearest, TextureFilter.Linear); 这段代码不会: parentTexture.setFilter(TextureFilter.Linear, TextureFilter.Nearest); 这似乎与libGDX函数相反: void com.badlogic.gdx.graphics.Texture.setFilter(TextureFilter minFilter, TextureFilter magFilter) 这不会打扰我,除了它表明libgdx是错误的(不太可能),文章是错误的(不太可能),或者我不理解纹理filter。 当我尝试使用mipmapfilter时,后者似乎特别有可能。 此代码不会显示任何内容 parentTexture.setFilter(TextureFilter.MipMapLinearLinear, TextureFilter.Linear); 此代码显示,但具有最近的过滤 parentTexture.setFilter(TextureFilter.Linear, TextureFilter.MipMapLinearLinear); 任何解释我错的地方都将不胜感激。 我在其他地方搜索过,但libGDX中的纹理filter非常具体,所以除了文章之外,我还没有找到太多帮助。

LibGDX:过滤缩放的TextureRegion

我有几个具有不同纹理的对象用于不同的状态,因此我使用TexturePacker制作的TextureAtlas ,并在需要它的地方调整TextureRegion大小。 我必须resize,因为我不仅要支持720p和1080p,而且我的一些对象是基于棋盘宽度和高度resize的平铺或光标,因为这可以在我的游戏中改变,而棋盘将始终占据屏幕的相同百分比。 使用Texture ,我可以这样做: texture.setFilter(TextureFilter.Linear, TextureFilter.Linear); 但是,当我使用TextureRegion ,没有选项来设置filter。 这导致这些TextureRegion的大小调整为锐利,块状和锯齿状。 这不是很好的缩放,它似乎根本没有反别名。 这非常令人沮丧,因为我制作图形时已经够糟糕了,现在即使我喜欢我制作它看起来很糟糕的东西。 如何使用TextureRegion而不是Texture来复制TextureFilter.Linear的效果?

如何翻转像素图以绘制到libgdx中的纹理?

所以我要做的是通过将pixmaps绘制到纹理来为我的游戏生成背景图像。 到目前为止,我可以做到这一点,但现在我需要绘制在X或Y轴上翻转到纹理的像素图。 但是我找不到任何可以做到的事情。 pixmap类不提供该function。 然后我想我可以在纹理上绘制一个翻转的纹理区域,但到目前为止我还没有找到如何做到这一点。 所以我想知道我怎么能做这样的事情,是否可以用其他java库翻转png图像,然后从翻转的图像创建一个像素图?

关于android上的opengles和纹理

众所周知,在OpenGL ES中,android上的类Renderer有3个function:onDrawFrame, onSurfaceChanged, onSurfaceCreated. 我们可以在onSurfaceCreated和onDrawFrame中加载纹理。 我想知道我可以在“渲染器”之前加载纹理。可能我有一个名为“Map”的类,我可以在创建“GLSurfaceView”之前在“ Map”中加载图像纹理。 或者我可以在函数“onSurfaceCreated”和“onDrawFrame”之前加载图像纹理。 如果有人知道,请帮助我。 谢谢!!