Added DONTCULLBACKFACES MODELDEF flag to forcefully disable backface culling on models

This commit is contained in:
nashmuhandes 2017-02-09 15:06:53 +08:00 committed by Christoph Oelckers
parent 845f5e0833
commit a4d146c843
2 changed files with 7 additions and 1 deletions

View file

@ -787,6 +787,10 @@ void gl_InitModels()
map[c]=1;
}
}
else if (sc.Compare("dontcullbackfaces"))
{
smf.flags |= MDL_DONTCULLBACKFACES;
}
else
{
sc.ScriptMessage("Unrecognized string \"%s\"", sc.String);
@ -949,8 +953,9 @@ void gl_RenderModel(GLSprite * spr)
gl_RenderState.EnableTexture(true);
// [BB] In case the model should be rendered translucent, do back face culling.
// This solves a few of the problems caused by the lack of depth sorting.
// [Nash] Don't do back face culling if explicitly specified in MODELDEF
// TO-DO: Implement proper depth sorting.
if (!( spr->actor->RenderStyle == LegacyRenderStyles[STYLE_Normal] ))
if (!(spr->actor->RenderStyle == LegacyRenderStyles[STYLE_Normal]) && !(smf->flags & MDL_DONTCULLBACKFACES))
{
glEnable(GL_CULL_FACE);
glFrontFace(GL_CW);

View file

@ -370,6 +370,7 @@ enum
MDL_USEACTORPITCH = 32,
MDL_USEACTORROLL = 64,
MDL_BADROTATION = 128,
MDL_DONTCULLBACKFACES = 256,
};
struct FSpriteModelFrame