-
Creator 版本: 3.6.0
-
目标平台: 谷歌浏览器 / 编辑器
-
重现方式:必现
使用官方的示例使用官方的RenderTexture测试了一下,发现渲染出来的纹理纵向发生了旋转,开始用的3.5.1测试发现有这个问题,换成3.6.0测试还是一样,如下图所示,第一张是代码,第二张是正常渲染的,第三张是通过RenderTexture渲染的
Creator 版本: 3.6.0
目标平台: 谷歌浏览器 / 编辑器
重现方式:必现
使用官方的示例使用官方的RenderTexture测试了一下,发现渲染出来的纹理纵向发生了旋转,开始用的3.5.1测试发现有这个问题,换成3.6.0测试还是一样,如下图所示,第一张是代码,第二张是正常渲染的,第三张是通过RenderTexture渲染的
又重新仔细看了下文档,新创建一个材质使用默认的UIshader开启SAMPLE_FROM_RT这个宏定义就可以了,帖子留在这给后来人提个醒
我改了没什么用,单独重新读取一次像素才可以
大佬,劳烦请问一下这个怎么使用,没整明白
材质里面 启用 SAMPLE_FROM_RT
大佬,请问一哈cocos creator 3.7.2版本监听相机上的 pipeline 的 AFTER_DRAW应该怎么操作啊,一直没找到方法
SAMPLE FROM RT启用了也无效
我直接用代码操作的,使用的是cocos creator3.8, sprite 渲染其实有默认material 的,我们只需要获取material, 设置一下 SAMPLE_FROM_RT 即可。
let renderTexture = new RenderTexture();
renderTexture.initialize({ width: *yourView*.width, height: *yourView*.height});
const camera = *yourCameraNode*.getComponent(Camera);
camera.targetTexture = renderTexture;
const sp = new SpriteFrame();
sp.reset({
originalSize: size(renderTexture.width, renderTexture.height),
rect: new Rect(0, 0, renderTexture.width, renderTexture.height),
offset: new Vec2(0, 0),
isRotate: true,
});
sp.texture = renderTexture;
const sprite = node.addComponent(Sprite)
sprite.spriteFrame = sp;
const mat = new Material();
mat.copy(sprite.getRenderMaterial(0), {
defines: {
SAMPLE_FROM_RT: true,
}
})
sprite.customMaterial = mat;