]> git.leopard-lacewing.eu Git - cgue_weave.git/commitdiff
optional culling (light calculation without)
authorPeter Schaefer <schaeferpm@gmail.com>
Fri, 20 May 2016 15:47:38 +0000 (17:47 +0200)
committerPeter Schaefer <schaeferpm@gmail.com>
Fri, 20 May 2016 15:47:38 +0000 (17:47 +0200)
Weave/Scene/Scene.cpp
Weave/Scene/Scene.h

index 87051d88944b05f907a0627157eea017111bcdc2..0f1ea4ff34f44a8b5c67b28acadd3c8a443182b2 100644 (file)
@@ -240,7 +240,7 @@ void Scene::draw() const
        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();
@@ -332,13 +332,13 @@ void Scene::draw() const
 
 }
 
-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)
index a3072b7337cd349258344020a306cff7af89d6d6..2726bccc3d8d615eefdcf6a4b86a76e5e6c69b2e 100644 (file)
@@ -53,7 +53,7 @@ protected:
        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;