读书人

SDL,opengl制作地形的有关问题

发布时间: 2012-05-05 17:21:10 作者: rapoo

SDL,opengl制作地形的问题
大家好。
我在用2d的灰度图制作3D地形图。
遇到了不少问题。
步骤如下:
1.读取图像:

C/C++ code
SDL_surface *terrainHeightMap=IMG_Load("heightMap_sand.png");

2.用这个图像创建一个高度图(height map array)float数组
3.……
问题做到第二步就卡住了。
怎么才能把这个图像的不同的灰度值赋给我的高度图数组?
假设我的灰度图是一个256 * 256的png图像。那么这256×256的每一个点都有一个灰度值,然后赋给我的array,问题就在于我怎么把这个灰度值从我的terrainHeightMap中调出来?还是我的理论方法就不对?
谢谢大伙!劳动节快乐!


[解决办法]
load_image 函数如下:
SDL_Surface *load_image( std::string filename )
{

SDL_Surface* loadedImage = NULL;


SDL_Surface* optimizedImage = NULL;


loadedImage = IMG_Load( filename.c_str() );

if(!loadedImage) {
printf("IMG_Load: %s\n", IMG_GetError());

}


if( loadedImage != NULL )
{

optimizedImage = SDL_DisplayFormat( loadedImage );


SDL_FreeSurface( loadedImage );
}


return optimizedImage;
}

读书人网 >C++

热点推荐