|
在学习叶至军的《Visual C++/DirectX9 3D游戏开发导引》LOD地形过程中,读取RAW地形文件时,如原RAW高度图为在平地中间有一高度球,按书上代码生成却是把球分开显示到两边,经改动代码后显示正确,请各位专家帮忙看一下怎么回事。
如图:

以下是主要代码
//TERRAIN_SIZE 256;地形尺寸
//读取高度图
LoadHeightData(TCHAR *szFileName){
FILE *pFile=NULL;
const char *r0=szFileName;
const char *r1="rb";
if(fopen_s(&pFile,r0,r1)==0){
fread(m_pucHeightData,1,(TERRAIN_SIZE+1)*(TERRAIN_SIZE+1),pFile);
fclose(pFile);
return true;
}
return false;
}
//设置四叉树分割状态
SetQuadMatData(int x, int z, bool b){
// m_pbQuadMat[(TERRAIN_SIZE)*z+x]=b;原
m_pbQuadMat[(TERRAIN_SIZE+1)*z+x]=b;//改动
}
//获取四叉树分割状态
GetQuadMatData(int x, int z){
// return m_pbQuadMat[(TERRAIN_SIZE)*z+x];原
return m_pbQuadMat[(TERRAIN_SIZE+1)*z+x];改动
}
//取得地块顶点高度
//float y=m_pucHeightData[(TERRAIN_SIZE)*z+x];原
float y=m_pucHeightData[(TERRAIN_SIZE+1)*z+x];改动
|
|