赞 | 3 |
VIP | 0 |
好人卡 | 0 |
积分 | 2 |
经验 | 0 |
最后登录 | 2025-9-4 |
在线时间 | 22 小时 |
Lv1.梦旅人
- 梦石
- 0
- 星屑
- 225
- 在线时间
- 22 小时
- 注册时间
- 2025-6-8
- 帖子
- 7
|
加入我们,或者,欢迎回来。
您需要 登录 才可以下载或查看,没有帐号?注册会员
x
创意来源:https://rpg.blue/thread-490983-1-1.html
原因这个楼里的大佬已经解释的很清楚了,是Shader的精度问题导致的
但是,有一个小细节他说错了,并不是没有设置精度导致的未定义行为
而是未定义精度的情况下会使用pixi的默认精度,而这个默认精度在不同设备上的效果是不一样导致的
准确来说,pixi shader能使用的精度有三种,在pixi.js里是这样定义的
var PRECISION = exports.PRECISION = {
LOW: 'lowp',
MEDIUM: 'mediump',
HIGH: 'highp'
};
然后着色器使用的默认精度是由下面两个值定义的
PRECISION_VERTEX: 'highp',
PRECISION_FRAGMENT: 'mediump',
看起来没啥问题,大家用的不都是mediump...吗?
在PC上,不管你是用highp、mediump还是lowp,精度统统都是23位,范围127
但是在我的便宜手机上,mediump的精度就变成了10位,范围15,然后就导致了黑线问题
既然知道了问题的来源,那么解决办法也很简单,在合适的时机修改使用的着色器精度为highp即可
(如果用插件实现,这个时机比较难拿捏,我这里只是提供一种参考,如果直接修改pixi.js那有很多方法搞定)
AndroidFixMV.zip
(748 Bytes, 下载次数: 5)
|
评分
-
查看全部评分
|