gpt4 book ai didi

Android Andengine 纹理质量差

转载 作者:塔克拉玛干 更新时间:2023-11-03 00:14:50 28 4
gpt4 key购买 nike

问题:使用 Andengine(wraps opengl)编写的 android 应用程序的纹理质量差,尤其是在以几种颜色显示为阶梯的渐变上。真实设备和虚拟设备均出现问题

设置:默认纹理、全屏、原始分辨率、android 2.2。我试图通过以下方式强制执行 PixelFromat:

public void onAttachedToWindow() {
super.onAttachedToWindow();
Window window = getWindow();
window.setFormat(PixelFormat.RGBA_8888);
}

没有任何区别。

评论行:GLHelper.disableDither(pGL); 对纹理有一点帮助,但让粒子看起来很糟糕,所以猜测这不是问题的根源。

示例加载代码:

public static void loadResources(StreamgameActivity game) {
magnetTexture = new BitmapTextureAtlas(512, 512, TextureOptions.BILINEAR);
magnetTextureRegion = BitmapTextureAtlasTextureRegionFactory
.createFromAsset(magnetTexture, game,"bateria128CMatte_none.png", 0, 0);
game.getEngine().getTextureManager().loadTexture(magnetTexture);
}

最佳答案

如果有人遇到纹理质量差和 GLES2 strip 问题,这里是解决方案:只需重写 Sprite 的 preDraw() 并像这样启用抖动:

Sprite electricityOff = new Sprite(0, 0, mElectricityOffTextureRegion, getVertexBufferObjectManager()) {
@Override
protected void preDraw(GLState pGLState, Camera pCamera) {
super.preDraw(pGLState, pCamera);
pGLState.enableDither();
}
};

关键元素是 pGLState.enableDither();。你将不需要任何其他东西,但如果你想确保表面和 Activity 的 32 位渲染,你可以添加:

@Override
protected void onSetContentView() {
mRenderSurfaceView = new RenderSurfaceView(this);
mRenderSurfaceView.setEGLConfigChooser(8, 8, 8, 8, 24, 0);
mRenderSurfaceView.setRenderer(mEngine, this);
mRenderSurfaceView.getHolder().setFormat(PixelFormat.RGBA_8888);

this.setContentView(mRenderSurfaceView, BaseGameActivity.createSurfaceViewLayoutParams());
}


@Override
public void onAttachedToWindow() {
super.onAttachedToWindow();
Window window = getWindow();
window.setFormat(PixelFormat.RGBA_8888);
}

关于Android Andengine 纹理质量差,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7638559/

28 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com