
On the previous screenshot you can see some weird 3d floors. But if we slightly change the height of some vertex slopes, everything will be much better:

The package which contains good and bad versions is attached.
Moderator: Graf Zahl
Code: Select all
if (rover->top.plane->a | rover->top.plane->b)
{
ff_topleft=rover->top.plane->ZatPoint(vertexes[0]);
ff_topright=rover->top.plane->ZatPoint(vertexes[1]);
}
else
{
ff_topleft = ff_topright = *rover->top.texheight;
}
if (rover->bottom.plane->a | rover->bottom.plane->b)
{
ff_bottomleft=rover->bottom.plane->ZatPoint(vertexes[0]);
ff_bottomright=rover->bottom.plane->ZatPoint(vertexes[1]);
}
else
{
ff_bottomleft = ff_bottomright = *rover->bottom.texheight;
}
Code: Select all
if (rover->top.plane->a | rover->top.plane->b)
{
ff_topleft=rover->top.plane->ZatPoint(vertexes[0]);
ff_topright=rover->top.plane->ZatPoint(vertexes[1]);
}
else if (*rover->top.texheight == 0)
{
ff_topleft = ff_topright = rover->top.plane->d;
}
else
{
ff_topleft = ff_topright = *rover->top.texheight;
}
Code: Select all
inline void GLWall::GetPlanePos(F3DFloor::planeref *planeref, int &left, int &right)
{
if (planeref->plane->a || planeref->plane->b)
{
left=planeref->plane->ZatPoint(vertexes[0]);
right=planeref->plane->ZatPoint(vertexes[1]);
}
else if(planeref->isceiling == sector_t::ceiling)
{
left = right = planeref->plane->d;
}
else
{
left = right = -planeref->plane->d;
}
}