shader 使用v_uv0.x报错

版本:creator 2.2.2
描述:在.effect的文件的fs main方法中加入了
if(v_uv0.x > oxs && v_uv0.x < oxe){
o.a = v_uv0.x * o.a;
}
这个文件拖到sprite组件上不报错,放到graphics组件就直接报错
‘v_uv0’ : undeclared identifier:
各位大佬,这个是什么问题?

v_uv0是纹理坐标,sprite组件有纹理可供采样,graphics没有

大佬,那graphics怎么获取像素的位置信息呢?

我想做个graphics的渐隐效果

buildin-2d-graphics中fs,直接把颜色赋值给gl_FragColor的,你可以这样

大佬牛逼,我试试

:crazy_face:你更厉害,有这样的需求做才有意思

哈哈哈,大佬能不能来个完整代码image ,有点看不懂,shader小白


你对这个alpha进行修改就好了

这个v_dist是传进来的位置信息吗,需要根据这个位置设置alpha吧

感谢大佬的解答。问题找到了,

mark!

欸,我觉得这个截图不是导致你那个bug的原因

要实现类似于一根线从左到右渐隐那种效果,获取的位置是这个标准化的位置

:crazy_face:大佬能不能把你实现的shader晒出来

,基本什么都没改,就加了这个框里的内容

大佬,graphics画出的两条线叠加,怎么判断是上面的像素点呢?

大佬,我最近正好在写shader,发现fwidth并不支持在cocos creator里面直接使用。我发现你也把这个函数包在CC_SUPPORT_standard_derivatives的定义里面了?我想问一下,这个CC_SUPPORT_standard_derivatives是什么?怎么在cocos creator的编辑器里面直接用fwidth呢?

这个我也不知道,我也接触的不多。你可以问下上面的大佬,image 是他贴给我的,我也不懂 :joy:

这是我实现的你要的效果 :joy: