[]参照技术文档自定义Shader写的TypeScript版本,运行后 Sprite 显示尺寸不对,帮忙看下哪里要调整?


QQ截图20170904123804.png

附件有项目文件
已邀请:

devilsome

赞同来自: jxfcwys

总结一下,laya对custom shade支持有些问题。尺寸错误的主要原因是uv错误。
重现流程如下:
1. 异步加载纹理资源
2. 加载完成后在custom shader中初始化纹理的uv
3. 纹理被重新合并到大图集,导致自身uv发生改变

WX20170904-194617.png

 
4. 在custom shader中的初始化的uv出错(默认uv和大图集中的uv不一致)
 
有方法可以解决,但比较麻烦,
1. 监听laya.events.Event.RECOVERED,监听纹理合并结束的消息,再创建custom sprite
2. 关闭纹理的自动图集合并
 
如果想看到正常的图片,可以修改一下代码

WX20170904-194709.png

在你的sprite中,把uv设置修改为texture中的uv
在纹理加载完成后,延时几秒等图集合并结束再创建你自己的sprite就可以了。

devilsome

赞同来自:

WechatIMG22.jpeg

shader错了,pos处理没有加上世界坐标变换,要乘上mmat
如下
vec4 pos =mmat*vec4(position.x,position.y,0,1);
 

要回复问题请先

商务合作
商务合作