|
|
发表于 2005-11-25 19:43:00
|
显示全部楼层
Re:我忙了很久弄得一个lod terrain编辑系统~z999进来看下~我
是啊,边要处理一下,让纹理坐标都缩一个象素,给个代码
static BOOL GetTexCoord_(long NO, SXYZNDT* pV, long texWidth){
////24
////13
if(texWidth == 512){
if(NO<1)NO = 1;
long x = (NO-1)%8;
long y = (NO-1)/8;
float xUnit = 1/512.0f;
float yUnit = 1/256.0f;
float u1 = ((x*64)+1)*xUnit;
float v1 = ((y*64)+1)*yUnit;
float u2 = u1 + 62*xUnit;
float v2 = v1 + 62*yUnit;
pV->u = u1; pV->v = v2; pV++;
pV->u = u1; pV->v = v1; pV++;
pV->u = u2; pV->v = v2; pV++;
pV->u = u2; pV->v = v1; pV++;
}else if(texWidth == 256){
if(NO<1)NO = 1;
///检查是不透明的号吗?
if(IsOpcNO_(NO)){
if(NO>20)NO = 28;
else NO = 1;
}
long x = (NO-1)%8;
long y = (NO-1)/8;
float xUnit = 1/256.0f;
float yUnit = 1/256.0f;
float u1 = ((x*64)+1)*xUnit;
float v1 = ((y*64)+1)*yUnit;
float u2 = u1 + 62*xUnit;
float v2 = v1 + 62*yUnit;
pV->u = u1; pV->v = v2; pV++;
pV->u = u1; pV->v = v1; pV++;
pV->u = u2; pV->v = v2; pV++;
pV->u = u2; pV->v = v1; pV++;
}
return TRUE;
} |
|