
引擎版本是2.4.3
下面是我的demo功能 painttingDemo.zip (922.5 KB)
求大佬指导指导,现在完全没思路从哪里入手解决。

下面是我的demo功能 painttingDemo.zip (922.5 KB)
求大佬指导指导,现在完全没思路从哪里入手解决。
双线性插值纹理采样问题,把烘焙相机 backgroundColor 设置为和画布一样的颜色但透明度为 0, (255, 255, 255, 0),ClearFlags 设置 COLOR,先 render 一次,这样也有边,但是因为和画布一样颜色,所以看不太出来。
大佬能提供下源码嘛?我这边试了好像还是不行的
rendertexture 设置预乘。用来显示的 cc.Sprite 设置srcBlend 为 ONE。
let rt = new cc.RenderTexture();
rt.initWithSize(this.node.width, this.node.height, cc.RenderTexture.DepthStencilFormat.RB_FMT_D24S8);
rt.setPremultiplyAlpha(true);
this.gameFace.srcBlendFactor = cc.macro.BlendFactor.ONE;
好的,大佬,我试试
台风天,顶顶顶,大佬们有没其他方案?
同问 顶一下
相机烘焙出来的 RenderTexture 是一个纹理,存在尺寸,不抗锯齿,当你再次渲染到屏幕上时,会受限于你RenderTexture和渲染空间大小,而存在清晰度不同的情况。
比如你的 RenderTexture 是100x100,然后设置到 Sprite 后,Sprite 的大小是 200x200,那相当于放大了,就会有模糊,即便 Sprite 大小是 100x100,在屏幕显示器上,可能也会有模糊
Graphics 则不同,Graphics 是画三角形的,并且Graphics默认的材质,在画三角形的时候,已经实现了抗锯齿/边缘清晰的
所以模糊和清晰都是合理的
这个模糊的有什么办法解决呢?或者有没有其他方案
最简单就是设置更大的 RenderTexture 尺寸
大佬,不行呀,我这里用纹理绘制的,每次拍都会变一点点,导致之前的绘的会越来越深
不使用rt
勾选预乘alpha,然后设置精灵的混合方式为one就可以了。
相机擦除背景不要设置透明。
不使用rt是什么意思
this._rt.setPremultiplyAlpha(true);Sprite.srcBlendFactor = cc.macro.BlendFactor.ONE; 设置了的,效果还是那样
这个解决了,是相机没有清除
https://store-my.cocos.com/seller/resources/detail/8258
我这个商品的画图实现不是使用 graphic 节点来画的。而是直接将rgba数据写到一个Uint8Array里。然后填充到Texture上。如果使用我的这个方法。因为你画图的时候,直接就是拿到rgba去渲染。然后你可以拿这个rgba直接去渲染到第二个,第三个精灵上。完全不需要rt来做。这样子的话。我觉得应该就不会有rt之后和原来的东西不一致的问题。
(PS: 2.X 版本正在审核当中)
商品打不开还看不到,用你这个方法可以用纹理绘制吗?