glClear(GL_DEPTH_BUFFER_BIT);
Shader::getShader(SH_SHADOWDIR)->useShader();
dirLight->useLight();
- drawSceneObjects();
+ drawSceneObjects(DRAW_Model,false);
camera.useCamera();
render->useBuffer();
Shader::getShader(SH_LIGHTING)->useShader();
}
-void Scene::drawSceneObjects(drawTarget _target) const
+void Scene::drawSceneObjects(drawTarget _target, bool _culling) const
{
/*TODO: Z-Order (Back2Front)*/
for (auto i = SceneObjects.cbegin(); i != SceneObjects.cend(); ++i)
{
- if (Graphix::testEffect(EF_FRUSTUM_CULLING))
+ if (Graphix::testEffect(EF_FRUSTUM_CULLING)&&_culling)
{
auto result = camera.frustum_sphere((*i)->getPosition() + (*i)->gModel()->getBox().center(), (*i)->gModel()->getBox().radius());
if (result == camera.FC_OUTSIDE)
std::list<SceneObject*> SceneObjects;
std::set<const Shader *> ShaderSet;
- void drawSceneObjects(drawTarget target = DRAW_Model) const;
+ void drawSceneObjects(drawTarget target = DRAW_Model, bool culling = true) const;
float currenttime;