[]使用以下代码打开超大分辨率图片 WebGL 模式无法正常显示

// 程序入口
class GameMain{
constructor()
{
Laya.init(900,1440,Laya.WebGL); //WebGL
Laya.Stat.show(0,0);
let sp:Laya.Sprite = new Laya.Sprite;
//sp.loadImage("comp/big.png"); //读取分辨率小的图片 正常
sp.loadImage("comp/hug.png"); //读取大分辨率图片 无法显示
Laya.stage.addChild(sp);
}
}
new GameMain();
//问题描述 

客户要求使用LAYA引擎打开一张图片 可以随意拖动缩放, 由于图太大, 选择使用WebGL模式打开图片

以上代码当图片分辨率不太大时 正常访问, 工程图图片达到5000-10000 分辨率时, 黑屏, 

希望能给出解决方案 谢谢了!

附件是测试DEMO 图片hug.png 为大分辨率图片 big.png 为普通分辨率图片 格式为PNG
测试浏览器为 谷歌浏览器 手机浏览器采用 微信X1内核浏览器 UC浏览器 均无法显示
已邀请:

Aar0n

赞同来自:

你可以把图片切开小一点,然后读取后再拼回去,不能一下读这么大的。一般来讲引擎开发用不到这么大的图,专业工程制图软件才需要一次读取大图。就只能多做一些操作了。
 
重复一下步骤:
1切成小一些的图,
2分别加载,
3再拼成大图。

devilsome

赞同来自:

手机端,一般最大纹理尺寸4096x4096,超过了无法显示,这个是硬件限制;
电脑商,最大纹理尺寸一般8192x8192,限制同上。
 
要解决,需要自己在内存中,对显示图片做切分,然后动态加载显示部分。
要流畅,可以考虑预处理图片,建立不同的分辨率来适应缩放显示。
 
想想百度地图之类的是如何显示那么大的图片吧,本质上是算法问题。

该问题目前已经被锁定, 无法添加新回复

商务合作
商务合作