问题:使用Andengine(包裹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的条带这里是解决方案:
只需覆盖你的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();.
您不需要任何其他内容,但如果您想确保可以添加的曲面和活动的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,textures,andengine 来源: https://codeday.me/bug/20190626/1293961.html
本站声明: 1. iCode9 技术分享网(下文简称本站)提供的所有内容,仅供技术学习、探讨和分享; 2. 关于本站的所有留言、评论、转载及引用,纯属内容发起人的个人观点,与本站观点和立场无关; 3. 关于本站的所有言论和文字,纯属内容发起人的个人观点,与本站观点和立场无关; 4. 本站文章均是网友提供,不完全保证技术分享内容的完整性、准确性、时效性、风险性和版权归属;如您发现该文章侵犯了您的权益,可联系我们第一时间进行删除; 5. 本站为非盈利性的个人网站,所有内容不会用来进行牟利,也不会利用任何形式的广告来间接获益,纯粹是为了广大技术爱好者提供技术内容和技术思想的分享性交流网站。