|
楼主 |
发表于 2009-12-7 09:55:33
|
显示全部楼层
那就是要对vpb生成的地球模型进行遍历来判断了。如果用网格来生成海面的话不知道图元怎么来构造了,因为有海岸线的在在。
for(int i = 0; i<noYSteps;i++)
{
osg::Vec2d q = tuuu;
for(int j = 0; j<noXSteps;j++)
{
if(latlonheight[i][j].height<0)
{
coordnates->push_back(osg::Vec3d(latlonheight[i][j].latitude,latlonheight[i][j].longitude,-120));
texcoord->push_back(q);
}
q=q+ddx;
}
tuuu=tuuu+ddy;
}
以上是构建网格,下面是来图元代码
for(int row=0;row<noYSteps-1;row++)
{
osg:rawElementsUInt* quadstrip = new osg::DrawElementsUInt(osg:rimitiveSet::TRIANGLE_STRIP);
quadstrip->reserve(noXSteps*2);
for(int col=0;col<noXSteps-1;col++)
{
if(latlonheight[row][col].height<0)
{
quadstrip->push_back(row*noXSteps+col);
quadstrip->push_back((row+1)*noXSteps+col);
}
}
geom->addPrimitiveSet(quadstrip);
}
但在运行的时候出现了错误,如图所示
不知该如何来解决了。谢谢! |
|