如何使用OpenGL / cocos2d渲染高度图?

时间:2013-12-01 17:09:21

标签: objective-c opengl-es cocos2d-iphone

我有一个2d的花车阵列。每个单元代表一个像素。 根据float的值,我将float映射到特定颜色。 我想基于所有这些值生成背景精灵。我对OpenGL了解不多,所以我不知道从哪里开始。

给出2d像素数组。如何创建精灵?

使用此精灵完成后,如何从内存中释放纹理和精灵?

1 个答案:

答案 0 :(得分:0)

我建议您从数据中创建CGImage,然后使用它来初始化cocos2d精灵。

// Create a graphics context from the heightmap data
CGColorSpaceRef colorSpace = CGColorSpaceCreateDeviceRGB();
CGContextRef context = CGBitmapContextCreate(myArray,   // heightmap data
                                             width,     // width of hightmap
                                             height,    // height of heightmap
                                             8,         // bits per component
                                             width * 4, // bytes per row
                                             colorSpace,
                                             kCGImageAlphaPremultipliedLast);
CGColorSpaceRelease(colorSpace);

// Create an image from the context
CGImageRef image = CGBitmapContextCreateImage(context);
CGContextRelease(context);

// Init sprite
CCSprite *sprite = [[CCSprite alloc] initWithCGImage:image key:nil];
CGImageRelease(image);