diff --git a/libraries/entities-renderer/src/RenderableModelEntityItem.cpp b/libraries/entities-renderer/src/RenderableModelEntityItem.cpp index f568f27b77..ad2737143c 100644 --- a/libraries/entities-renderer/src/RenderableModelEntityItem.cpp +++ b/libraries/entities-renderer/src/RenderableModelEntityItem.cpp @@ -1000,7 +1000,7 @@ void ModelEntityRenderer::setKey(bool didVisualGeometryRequestSucceed) { if (!_cullWithParent && _model && _model->isGroupCulled()) { builder.withMetaCullGroup(); } else if (_cullWithParent) { - builder.withoutSubMetaCulled(); + builder.withSubMetaCulled(); } if (didVisualGeometryRequestSucceed) { diff --git a/libraries/render-utils/src/Model.cpp b/libraries/render-utils/src/Model.cpp index ac4381330d..d9d6cb8da3 100644 --- a/libraries/render-utils/src/Model.cpp +++ b/libraries/render-utils/src/Model.cpp @@ -978,9 +978,11 @@ void Model::setCullWithParent(bool cullWithParent) { _cullWithParent = cullWithParent; render::Transaction transaction; - foreach(auto item, _modelMeshRenderItemsMap.keys()) { - transaction.updateItem<ModelMeshPartPayload>(item, [cullWithParent](ModelMeshPartPayload& data) { + auto renderItemsKey = _renderItemKeyGlobalFlags; + for(auto item : _modelMeshRenderItemIDs) { + transaction.updateItem<ModelMeshPartPayload>(item, [cullWithParent, renderItemsKey](ModelMeshPartPayload& data) { data.setCullWithParent(cullWithParent); + data.updateKey(renderItemsKey); }); } AbstractViewStateInterface::instance()->getMain3DScene()->enqueueTransaction(transaction);