[]图片通过drawTexture平铺出现缝隙

this.darwSprite = new Sprite();
        this.addChild(this.darwSprite);
        var t: Texture = Laya.loader.getRes("load/0.png");
        this.darwSprite.graphics.drawTexture(t,0,0);
        this.darwSprite.graphics.drawTexture(t,176,0);
        this.darwSprite.graphics.drawTexture(t,176*2,0);
 
采用这方式在sprite内部绘制了3个一样的png,每一个宽度176,但是在运行后发现,绘制的图片直接有着明显的缝隙。
QQ截图20160718114834.png
已邀请:

Laya_XS

赞同来自: evamango

在LayaAir webgl中图片放大和缩小都会启用纹理采样,纹理采样采用的是线性插值,所以是图片看起来更平滑些。假如一张图片在渲染时周围存在空白像素,空白像素会跟边缘的像素进行插值而变成黑色,所以避免的方法有两种:
第一种:纹理加载完成之后,在纹理上关闭线性采用,Texture.isLinearSampling = false;
第二种:修改原有图片,把图片周围像素延伸2像素,这样也能保证采样结果是正确的;
第三种: 将图片放到LayaAir IDE下,找到资源面板对应的小图,双击打开图片属性面板,设置导出样式为repeat即可;
给大家推荐第三种方案。

cuixu_xucui

赞同来自:

请问题主最后怎么解决的

Laya_XS

赞同来自:

你在图集的时候图片类型选择repeat,这样应该可以解决你的问题。

天真汉

赞同来自:

我试过把一张图片类型改成repeat,然后使用了这个图片的image不管是改宽高,还是改缩放,都只是简单拉伸,而且laya初始化模式是webgl...

178*****216

赞同来自:

我也遇到这个问题,请问最后怎么解决的

要回复问题请先

商务合作
商务合作