renderTexture截图问题

在cocos 3.17 中使用renderTexture截图,在web上正常,但在真机上截图不完整还被放大

js版没有看过,研究过c++的。renderTexture有自动渲染和手动两种,自动问题很大,基本都是渲染矩阵重复乘了,偏移和缩放等等都有问题,建议手动。如果不是这个问题建议贴代码。

ps:cocos 3.+的渲染树是有问题的,这些效果做起来很累,期待4.0

代码如下:这个在web上正常的,但到微信小游戏中截屏就截不全,整个图片还被放大了

	var width = cc.winSize.width
	var height = cc.winSize.height

	//创建renderTexture
	var rt = cc.RenderTexture.create(width, height, cc.Texture2D.PIXEL_FORMAT_RGBA8888,gl.DEPTH24_STENCIL8_OES);

	//使用render截图
	//rt.beginWithClear(0,0,0,0)
	rt.begin();
    //将需要渲染节点渲染
	node.visit();
    rt.end();
    

    var spr = new cc.Sprite(rt.getSprite().getTexture());
    node.getParent().addChild(spr);
    node.setVisible(false);
    spr.setFlippedY(true)
    spr.x = width / 2;
    spr.y = height / 2;

这个手动截屏渲染代码应该是没有问题的,应该是本身引擎的毛病,我也遇到过,不过和你的情形有点不同,我最后换个方式略过了。RenderTexture的截屏范围并不是理解中的那样,如果渲染的节点本身有变换或者裁剪,可能会有问题

mark

如果节点里有裁剪的节点,在做end这一步操作的时候,要把屏幕缩放值设置为1,不然裁剪区域会出错。这个bug是真恶心。

你那个是截图是怎么处理的?我自己写的在苹果手机是正常的, 在安卓手机上就变暗了许多,不知道问题出在哪里!