[]关于WebGL矢量图的遮罩问题
webGL下用矢量图 做遮罩 有时候会显示错误, 附上例子了
//开启WebGL, 遮罩会显示错误
//关闭WebGL, 遮罩会显示正确
let isWebGL = true
if (isWebGL)
{
Laya.init(1024, 1024, Laya.WebGL);
}
else{
Laya.init(1024, 1024);
}
//等待可调试
Laya.timer.once(1000, null, ()=>{
let mask = new Laya.Sprite()
let sprite = new Laya.Sprite()
sprite.mask = mask
Laya.stage.addChild(sprite)
//正方形
sprite.graphics.drawPoly(0, 0, [100, 100, 100, 200, 200, 200, 200, 100], "#ffffff")
//一挑粗直线 遮挡正方形的左半部分
mask.graphics.drawLines(0, 0, [100, 150, 150, 150], "#ff0000", 200)
// drawPoly在WebGl下遮罩又是正确的
//mask.graphics.drawPoly(0, 0, [100, 100, 100, 200, 150, 200, 150, 100], "#ff0000")
})
4 个回复
Aar0n
赞同来自:
Aar0n
赞同来自:
ffxhina
赞同来自:
canvas下是预期效果
webgl下, 看起来遮罩整个没生效. 如果是线宽问题感觉不太可能会导致这样的效果
(我这边实现的动态演示书写汉字的功能, 主要原理利用drawlines画出肥一圈的部分笔画作为遮罩. 上面是一个简化后的demo)
ffxhina
赞同来自:
利用drawlines绘制的遮罩如下图所示
canvans模式下,用drawlines加入遮罩后, 白色正方形的只有一半显示出来了, 这是期望的结果
webgl模式下,用drawlines加入遮罩后, 白色正方形全部没显示出来了, 这是 不 符合期望的结果