背景图片渲染时有色块怎么办

有时候你可能发现设置了背景图片之后, 在屏幕上的效果不太理想, 主要表现为颜色过渡不平滑, 色块现象比较严重. 主要原因是因为WiEngine底层设置OpenGL的缓冲区格式缺省是RGB565, 这个设置可以提高速度, 但是很显然颜色精度会受到影响. 这个时候可以用setDither(true)来解决, setDither是TextureNode的方法.

Sprite bg = ...;

bg.setDither(true);

Dither的意思是抖动, 是一种用有限颜色模拟其它颜色的方式, 比如将白色和红色均匀的混合, 你会看到粉红色. 通过这种方式, 可以消除背景上的色块, 使颜色过渡平滑. 这种方式当然会损失一点性能, 但是基本也就是背景用一下, 问题不大.

WYGLSurfaceView支持透明背景, 这种模式下OpenGL使用RGBA8888格式的缓冲区, 所以不需要抖动背景图片也将显示的很好. 使用透明背景的WYGLSurfaceView很简单:

WYGLSurfaceView v = new WYGLSurfaceView(this, true); // 第二个参数传true表示背景透明

setContentView(v);

游戏需要用透明背景的不多, 一般透明背景WYGLSurfaceView可以用在增强现实的应用中

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值