# Shadow based on FPS

**URL:** <https://discourse.threejs.org/t/shadow-based-on-fps/1506>\
**Category:** Questions\
**Tags:** shadows\
**Created:** [December 24, 2017, 10:31am UTC](https://discourse.threejs.org/t/shadow-based-on-fps/1506 "2017-12-24T10:31:13Z")\
**Posts on this page:** 8\
**Page:** 1

<div class="post-metadata">

**Author:** ![AmjadKh94](https://avatars.discourse-cdn.com/v4/letter/a/c77e96/32.png) [@AmjadKh94](https://discourse.threejs.org/u/AmjadKh94)\
**Post date:** [December 24, 2017, 10:31am UTC](https://discourse.threejs.org/t/shadow-based-on-fps/1506/1 "2017-12-24T10:31:13Z")

</div>

how to enabled/ disable shadow in respect to FPS ?  
for example : When FPS is less than 30 i want to disable shadow and when its more then 30 i want to enable it

---

<div class="post-metadata">

**Author:** ![looeee](https://yyz1.discourse-cdn.com/flex035/user_avatar/discourse.threejs.org/looeee/32/59_2.png) [@looeee](https://discourse.threejs.org/u/looeee)\
**Post date:** [December 24, 2017, 2:14pm UTC](https://discourse.threejs.org/t/shadow-based-on-fps/1506/2 "2017-12-24T14:14:52Z")

</div>

How are you currently determining the FPS?

---

<div class="post-metadata">

**Author:** ![AmjadKh94](https://avatars.discourse-cdn.com/v4/letter/a/c77e96/32.png) [@AmjadKh94](https://discourse.threejs.org/u/AmjadKh94)\
**Post date:** [December 24, 2017, 2:26pm UTC](https://discourse.threejs.org/t/shadow-based-on-fps/1506/3 "2017-12-24T14:26:39Z")

</div>

function CalculateFPS() {

if(!lastCalledTime) {  
lastCalledTime = Date.now();  
fps = 0;  
return;  
}  
delta = (Date.now() - lastCalledTime)/1000;  
lastCalledTime = Date.now();  
fps = 1/delta;  
// console.log(fps)

}

and this function has been calling in the render

---

<div class="post-metadata">

**Author:** ![looeee](https://yyz1.discourse-cdn.com/flex035/user_avatar/discourse.threejs.org/looeee/32/59_2.png) [@looeee](https://discourse.threejs.org/u/looeee)\
**Post date:** [December 24, 2017, 2:44pm UTC](https://discourse.threejs.org/t/shadow-based-on-fps/1506/4 "2017-12-24T14:44:27Z")

</div>

Have you tried adding an if statement like:

```auto
if ( fps > 30 ) renderer.shadowMap.enabled = true;
else renderer.shadowMap.enabled = false;

```

---

<div class="post-metadata">

**Author:** ![AmjadKh94](https://avatars.discourse-cdn.com/v4/letter/a/c77e96/32.png) [@AmjadKh94](https://discourse.threejs.org/u/AmjadKh94)\
**Post date:** [December 24, 2017, 2:57pm UTC](https://discourse.threejs.org/t/shadow-based-on-fps/1506/5 "2017-12-24T14:57:52Z")

</div>

Sure but nothing change!

---

<div class="post-metadata">

**Author:** ![looeee](https://yyz1.discourse-cdn.com/flex035/user_avatar/discourse.threejs.org/looeee/32/59_2.png) [@looeee](https://discourse.threejs.org/u/looeee)\
**Post date:** [December 24, 2017, 3:20pm UTC](https://discourse.threejs.org/t/shadow-based-on-fps/1506/6 "2017-12-24T15:20:32Z")

</div>

Looks like you also need to clear the light.shadow.map. Try:

```auto
if ( fps > 30 ) {

    renderer.shadowMap.enabled = true;

} else {

    renderer.shadowMap.enabled = false;
    light.shadow.map = null;

}

```

---

<div class="post-metadata">

**Author:** ![AmjadKh94](https://avatars.discourse-cdn.com/v4/letter/a/c77e96/32.png) [@AmjadKh94](https://discourse.threejs.org/u/AmjadKh94)\
**Post date:** [December 26, 2017, 8:49am UTC](https://discourse.threejs.org/t/shadow-based-on-fps/1506/7 "2017-12-26T08:49:25Z")

</div>

Sorry for late reply,  
Thanks for your help, i have tried:

```
  if ( fps > 30 )
  {
    renderer.shadowMapEnabled = true;
  }
  else
  {
    renderer.shadowMapEnabled = false;
    renderer.clearTarget( light.shadowMap );
  }

```

and it worked perfect Thanks man

---

<div class="post-metadata">

**Author:** ![looeee](https://yyz1.discourse-cdn.com/flex035/user_avatar/discourse.threejs.org/looeee/32/59_2.png) [@looeee](https://discourse.threejs.org/u/looeee)\
**Post date:** [December 26, 2017, 9:58am UTC](https://discourse.threejs.org/t/shadow-based-on-fps/1506/8 "2017-12-26T09:58:31Z")

</div>

```javascript
renderer.clearTarget( light.shadowMap );

```

That’s probably a better solution than mine 🙂
