PU3D的render函数crash了,是引擎BUG么?还是我用错了?

V3.6的引擎,用了3D粒子

由于要在UI之上显示3D粒子,所以为3D粒子做了个自定义相机:

auto winSize = cocos2d::CCDirector::getInstance()->getWinSize();
auto zeye = cocos2d::Director::getInstance()->getZEye();
auto camera1 = cocos2d::camera::createPerspective(60, winSize.width / winSize.height, 10, zeye + winSize.height / 2.0f);
camera1->setDepth(1);
camera1->setCameraFlag(cocos2d::CameraFlag::USER1);
cocos2d::Vec3 eye(winSize.width / 2, winSize.height / 2.0f, zeye), center(winSize.width / 2, winSize.height / 2, 0.0f), up(0.0f, 1.0f, 0.0f);
camera1->setPosition3D(eye);
camera1->lookAt(center, up);
addChild(camera1);

这样3D粒子就完美呈现了,
然后用RenderTexture把带3D粒子的整个scene截图:

auto runningScene = cocos2d::Director::getInstance()->getRunningScene(); auto spriteSize = runningScene->getContentSize();
auto renderTexture = cocos2d::RenderTexture::create(spriteSize.width, spriteSize.height,
cocos2d::Texture2D::PixelFormat::RGBA8888, GL_DEPTH24_STENCIL8);
auto texture = renderTexture->getSprite()->getTexture();
texture->setAntiAliasTexParameters();

renderTexture->begin();
runningScene->visit();
renderTexture->end();

然后这个visit crash了,挂在: CCPURender.cpp:106
void PUParticle3DQuadRender::render(Renderer* renderer, const Mat4 &transform, ParticleSystem3D* particleSystem)里面:

auto camera = Camera::getVisitingCamera();
auto cameraMat = camera->getNodeToWorldTransform();

这个camera拿不到,直接返回nullptr

麻烦问下,这个是引擎bug还是哪里用错了?求解决方案,谢谢。

麻烦问一下,这个问题有人知道怎么解决么?

这个相机拿不到的问题,有什么办法么?在线等,急问。。。

手动刷新,希望有大神看到

继续等待大神,或者引擎开发组的成员回复

更新版本试试吧,应该是引擎的问题

截图不能这么做

应该怎么做呢? 注意我不是截图保存文件,是截到内存中做后续处理

不知道v3.7有没有修复,反正changelog里面没见有fix

这问题看来没人管了,我先升级到v3.8 试试看了