|
|
You can expect such quality issues while using gradients, but also, while using lower quality texture type RGBA 4444 instead of high quality one RGBA 8888.結局どうすればいいのかって? 低い品質のテクスチャタイプを使用してディザリングを有効にすることで、メモリ使用量を半分カットすることができます! それでは、特定のテンティティのディザリングを有効にする方法を説明しましょう。
final Sprite sprite = new Sprite(pX, pY, pTextureRegion, pVertexBufferObject) { @Override protected void preDraw(final GLState pGLState, final Camera pCamera) { super.preDraw(pGLState, pCamera); pGLState.enableDither(); } };
ご覧の通り、単にpreDraw メソッドを上書きしてディザリングを有効にしているだけです。この簡単な方法で、品質を大幅に向上できます。既定では、engine optionsでアプリケーション全体のディザリングを有効にすることもできます。
public EngineOptions onCreateEngineOptions() { camera = new GameCamera(0, 0, 800, 480); EngineOptions engineOptions = new EngineOptions(...); engineOptions.getRenderOptions().setDithering(true); return engineOptions; }
engine optionsを作成する際に、render optionsを取得してディザリングを有効にすることができます。