渲染到纹理,顾名思义就是将原本需要渲染到系统屏幕上的图像渲染到纹理,cocos引擎也提供了渲染到纹理(Render Texture)的功能。当然,跟其他3D功能一样,它的渲染到纹理一样有自己的局限性,只能等比例渲染,场景为1280*720,你如果想要渲染全景,只能渲染1280*720的纹理上,如果创建的纹理是640*360,渲染出来的纹理就是原来场景的一半,下一章写出自己的自适应渲染。
渲染到纹理的使用代码如下:
local size = CCDirector:getInstance():getWinSize()
local renderTexture = cc.RenderTexture:create(size.width/2,
size.height/2,kCCTexture2DPixelFormat_RGBA8888)
renderTexture:begin()//设置FBO,并将其作为一个command加入到渲染队列
node:visit()//访问节点,生成command加入到渲染队列
renderTexture:endToLua()//还原系统默认的缓存
renderTexture:saveToFile("test.png",cc.IMAGE_FORMAT_PNG, true );
首先,创建渲染到纹理,此时创建一个FBO,并创建颜色缓存和深度缓存,代码如下:
bool RenderTexture::initWithWidthAndHeight(int