[LayaAir3]关于drawToRenderTexture2D绘制后图像模糊问题补充
首先项目需要勾选视网膜画布模式
通过重现DEMO发现是因为勾选了视网膜画布模式,原图是有缩放的,因为有视网膜模式原图虽然缩小了但清晰度依然很高,但通过drawToRenderTexture2D以后返回的纹理应该是没有享受到视网膜模式的清晰度,通过发现对比和没有勾线视网膜画布模式模糊程度相似
通过重现DEMO发现是因为勾选了视网膜画布模式,原图是有缩放的,因为有视网膜模式原图虽然缩小了但清晰度依然很高,但通过drawToRenderTexture2D以后返回的纹理应该是没有享受到视网膜模式的清晰度,通过发现对比和没有勾线视网膜画布模式模糊程度相似
没有找到相关结果
已邀请:

2 个回复
layabox
赞同来自:
首先,你的源图的宽高为80,这本身是高清的。你sp1绘制为宽高56,这本身也没什么问题。
问题在于,你通过 drawToRenderTexture2D 从sp1得到了一个56宽高 2D RT对象,这时候纹理宽高就是真的56,而不是80了。所以,当产生拉伸的时候,就会糊了。
所以3.3.2之前的版本,不要使用清晰度不高的RT对象。
考虑到你的项目需求,3.3.2开始,我们也为 drawToRenderTexture2D 增加了两个RT缩放的参数renderScaleX和renderScaleY。
有了这两个参数后,3.3.2版本的使用示例如下(基于你DEMO的test方法)
private test(): void {let t = this.sp1.drawToRenderTexture2D(80, 80, 0, 0, null, true, true, null, 80/56, 80/56);
let t2 = new Laya.Sprite();
Laya.stage.addChild(t2);
let Texture = Laya.Texture.create(t, 0, 0, t.width, t.height);
t2.graphics.drawImage(Texture, 0, 0, 56, 56);
}
LayaAir大为
赞同来自: 肖亮亮