From 581f009c02258f243915c45a5b736703944f935f Mon Sep 17 00:00:00 2001 From: Levi Burner Date: Thu, 4 Aug 2022 19:16:50 -0400 Subject: [PATCH] Cull face flag --- doc/APIreference.rst | 1 + include/mujoco/mjvisualize.h | 1 + introspect/enums.py | 3 ++- simulate/simulate.cc | 4 +++- src/engine/engine_vis_init.c | 3 ++- src/render/render_gl3.c | 6 +++++- unity/Runtime/Bindings/MujocoBindings.cs | 3 ++- 7 files changed, 16 insertions(+), 5 deletions(-) diff --git a/doc/APIreference.rst b/doc/APIreference.rst index d1d69629..0f84d287 100644 --- a/doc/APIreference.rst +++ b/doc/APIreference.rst @@ -874,6 +874,7 @@ mjtRndFlag mjRND_HAZE, // haze mjRND_SEGMENT, // segmentation with random color mjRND_IDCOLOR, // segmentation with segid color + mjRND_CULL_FACE, // cull backward faces mjNRNDFLAG // number of rendering flags } mjtRndFlag; diff --git a/include/mujoco/mjvisualize.h b/include/mujoco/mjvisualize.h index 4237165b..62ded42b 100644 --- a/include/mujoco/mjvisualize.h +++ b/include/mujoco/mjvisualize.h @@ -134,6 +134,7 @@ typedef enum mjtRndFlag_ { // flags enabling rendering effects mjRND_HAZE, // haze mjRND_SEGMENT, // segmentation with random color mjRND_IDCOLOR, // segmentation with segid color + mjRND_CULL_FACE, // cull backward faces mjNRNDFLAG // number of rendering flags } mjtRndFlag; diff --git a/introspect/enums.py b/introspect/enums.py index e9b27eb8..c319d69e 100755 --- a/introspect/enums.py +++ b/introspect/enums.py @@ -624,7 +624,8 @@ ENUMS: Mapping[str, EnumDecl] = dict([ ('mjRND_HAZE', 6), ('mjRND_SEGMENT', 7), ('mjRND_IDCOLOR', 8), - ('mjNRNDFLAG', 9), + ('mjRND_CULL_FACE', 9), + ('mjNRNDFLAG', 10), ]), )), ('mjtStereo', diff --git a/simulate/simulate.cc b/simulate/simulate.cc index 32707ba2..152f0ef4 100644 --- a/simulate/simulate.cc +++ b/simulate/simulate.cc @@ -706,7 +706,9 @@ void makerendering(mj::Simulate* sim, int oldstate) { mjui_add(&sim->ui0, defOpenGL); for (i=0; iscn.flags + i; mjui_add(&sim->ui0, defFlag); } diff --git a/src/engine/engine_vis_init.c b/src/engine/engine_vis_init.c index 6f716cd2..341c9124 100644 --- a/src/engine/engine_vis_init.c +++ b/src/engine/engine_vis_init.c @@ -101,7 +101,8 @@ const char* mjRNDSTRING[mjNRNDFLAG][3] = { {"Fog", "0", "G"}, {"Haze", "1", "/"}, {"Segment", "0", ","}, - {"Id Color", "0", "."} + {"Id Color", "0", "."}, + {"Cull Face", "1", ""} }; diff --git a/src/render/render_gl3.c b/src/render/render_gl3.c index b3c5f341..a51dbc06 100644 --- a/src/render/render_gl3.c +++ b/src/render/render_gl3.c @@ -491,7 +491,11 @@ static void initGL3(const mjvScene* scn, const mjrContext* con) { glEnable(GL_NORMALIZE); glEnable(GL_DEPTH_TEST); glDepthMask(GL_TRUE); - glEnable(GL_CULL_FACE); + if (scn->flags[mjRND_CULL_FACE]) { + glEnable(GL_CULL_FACE); + } else { + glDisable(GL_CULL_FACE); + } glShadeModel(GL_SMOOTH); glDepthFunc(GL_LEQUAL); glDepthRange(0, 1); diff --git a/unity/Runtime/Bindings/MujocoBindings.cs b/unity/Runtime/Bindings/MujocoBindings.cs index 0e33dd4d..c395aa33 100644 --- a/unity/Runtime/Bindings/MujocoBindings.cs +++ b/unity/Runtime/Bindings/MujocoBindings.cs @@ -480,7 +480,8 @@ public enum mjtRndFlag : int{ mjRND_HAZE = 6, mjRND_SEGMENT = 7, mjRND_IDCOLOR = 8, - mjNRNDFLAG = 9, + mjRND_CULL_FACE = 9, + mjNRNDFLAG = 10, } public enum mjtStereo : int{ mjSTEREO_NONE = 0,