渲染到 CCRenderTexture 不工作
Rendering to a CCRenderTexture not working
我正在尝试使用 CCRenderTexture 创建高度图以与地形一起使用 class。我不知道这是否是最好的方法,我是 opengl 和 cocos2d-x 的新手,所以请多多包涵。
auto* renderTexHeightMap = CCRenderTexture::create(width, height);
renderTexHeightMap->begin();
glRasterPos2i(0, 0);
glDrawPixels(width, height, GL_RGB, GL_FLOAT, pixelBuffer);
renderTexHeightMap->end();
renderTexHeightMap->saveToFile("heightmap.jpg", false);
我知道 pixelBuffer 包含我想要的数据(灰度像素数据),但是每当我调用 CCRenderTexture::saveToFile 我得到的只是一张黑色图片。我错过了什么?
rendertexture会延迟一帧渲染,所以你需要在下一帧保存到文件,我的英语不好,你明白吗?
您可以使用 DelayTime 或其他方式来做到这一点
我的方式:我的代码类型是 lua
local function save()
renderTexture:saveToFile("heightmap.jpg",false)
end
local callfunc = cc.CallFunc:create(save)
local dela = cc.DelayTime:create(0.01)
local seq = cc.Sequence:create(dela,callfunc)
node:runAction(seq)
我正在尝试使用 CCRenderTexture 创建高度图以与地形一起使用 class。我不知道这是否是最好的方法,我是 opengl 和 cocos2d-x 的新手,所以请多多包涵。
auto* renderTexHeightMap = CCRenderTexture::create(width, height);
renderTexHeightMap->begin();
glRasterPos2i(0, 0);
glDrawPixels(width, height, GL_RGB, GL_FLOAT, pixelBuffer);
renderTexHeightMap->end();
renderTexHeightMap->saveToFile("heightmap.jpg", false);
我知道 pixelBuffer 包含我想要的数据(灰度像素数据),但是每当我调用 CCRenderTexture::saveToFile 我得到的只是一张黑色图片。我错过了什么?
rendertexture会延迟一帧渲染,所以你需要在下一帧保存到文件,我的英语不好,你明白吗? 您可以使用 DelayTime 或其他方式来做到这一点 我的方式:我的代码类型是 lua
local function save()
renderTexture:saveToFile("heightmap.jpg",false)
end
local callfunc = cc.CallFunc:create(save)
local dela = cc.DelayTime:create(0.01)
local seq = cc.Sequence:create(dela,callfunc)
node:runAction(seq)