Disable backface culling for drawtype plantlike and only draw 2 faces instead of 4

This way, plants actually show the real backface on their back side,
i.e., the front face mirrored around the vertical axis, instead of
showing the front face on both sides. This looked weird when the
texture was not symmetrical around the vertical axis.
This commit is contained in:
Jürgen Doser 2013-01-25 15:52:53 +01:00 committed by PilzAdam
parent 1cda39d5bb
commit 6b1420a58a
2 changed files with 5 additions and 12 deletions

@ -733,7 +733,7 @@ void mapblock_mesh_generate_special(MeshMakeData *data,
u16 l = getInteriorLight(n, 1, data); u16 l = getInteriorLight(n, 1, data);
video::SColor c = MapBlock_LightColor(255, l, decode_light(f.light_source)); video::SColor c = MapBlock_LightColor(255, l, decode_light(f.light_source));
for(u32 j=0; j<4; j++) for(u32 j=0; j<2; j++)
{ {
video::S3DVertex vertices[4] = video::S3DVertex vertices[4] =
{ {
@ -759,16 +759,6 @@ void mapblock_mesh_generate_special(MeshMakeData *data,
for(u16 i=0; i<4; i++) for(u16 i=0; i<4; i++)
vertices[i].Pos.rotateXZBy(-45); vertices[i].Pos.rotateXZBy(-45);
} }
else if(j == 2)
{
for(u16 i=0; i<4; i++)
vertices[i].Pos.rotateXZBy(135);
}
else if(j == 3)
{
for(u16 i=0; i<4; i++)
vertices[i].Pos.rotateXZBy(-135);
}
for(u16 i=0; i<4; i++) for(u16 i=0; i<4; i++)
{ {

@ -604,9 +604,12 @@ public:
} }
} }
break; break;
case NDT_PLANTLIKE:
f->solidness = 0;
f->backface_culling = false;
break;
case NDT_TORCHLIKE: case NDT_TORCHLIKE:
case NDT_SIGNLIKE: case NDT_SIGNLIKE:
case NDT_PLANTLIKE:
case NDT_FENCELIKE: case NDT_FENCELIKE:
case NDT_RAILLIKE: case NDT_RAILLIKE:
case NDT_NODEBOX: case NDT_NODEBOX: