# Occlusion culling

**URL:** <https://discourse.threejs.org/t/occlusion-culling/1646>\
**Category:** Questions\
**Tags:** culling\
**Created:** [January 19, 2018, 6:33am UTC](https://discourse.threejs.org/t/occlusion-culling/1646 "2018-01-19T06:33:47Z")\
**Posts on this page:** 11\
**Page:** 1

<div class="post-metadata">

**Author:** ![ProFive](https://yyz1.discourse-cdn.com/flex035/user_avatar/discourse.threejs.org/profive/32/980_2.png) [@ProFive](https://discourse.threejs.org/u/ProFive)\
**Post date:** [January 19, 2018, 6:33am UTC](https://discourse.threejs.org/t/occlusion-culling/1646/1 "2018-01-19T06:33:47Z")

</div>

How to apply Occlusion culling into Object3d load from file glTF? ( version r89)

---

<div class="post-metadata">

**Author:** ![prisoner849](https://yyz1.discourse-cdn.com/flex035/user_avatar/discourse.threejs.org/prisoner849/32/535_2.png) [@prisoner849](https://discourse.threejs.org/u/prisoner849)\
**Post date:** [January 19, 2018, 7:10am UTC](https://discourse.threejs.org/t/occlusion-culling/1646/2 "2018-01-19T07:10:29Z")

</div>

Maybe this will be helpful.

> <https://stackoverflow.com/questions/36324215/is-occlusion-culling-enabled-in-threejs-by-default/36324563#36324563>

---

<div class="post-metadata">

**Author:** ![ProFive](https://yyz1.discourse-cdn.com/flex035/user_avatar/discourse.threejs.org/profive/32/980_2.png) [@ProFive](https://discourse.threejs.org/u/ProFive)\
**Post date:** [January 19, 2018, 7:27am UTC](https://discourse.threejs.org/t/occlusion-culling/1646/3 "2018-01-19T07:27:56Z")

</div>

Thank you for your review. But I using threex.rendererstats library for tracking WebGLRenderer and Render call don’t change when I move the camera to other position. I want to draw objects that can be see on the screen and hide objects that are not visible on the screen. (Example in unity : [https://docs.unity3d.com/Manual/OcclusionCulling.html](https://docs.unity3d.com/Manual/OcclusionCulling.html))

---

<div class="post-metadata">

**Author:** ![prisoner849](https://yyz1.discourse-cdn.com/flex035/user_avatar/discourse.threejs.org/prisoner849/32/535_2.png) [@prisoner849](https://discourse.threejs.org/u/prisoner849)\
**Post date:** [January 19, 2018, 7:46am UTC](https://discourse.threejs.org/t/occlusion-culling/1646/4 "2018-01-19T07:46:12Z")

</div>

You could show your project, so other users can take a look at it 😉

> [@ProFive](#):
>
> Example in unity

I’ve read it before I posted my previous message 🙂

---

<div class="post-metadata">

**Author:** ![ProFive](https://yyz1.discourse-cdn.com/flex035/user_avatar/discourse.threejs.org/profive/32/980_2.png) [@ProFive](https://discourse.threejs.org/u/ProFive)\
**Post date:** [January 19, 2018, 7:57am UTC](https://discourse.threejs.org/t/occlusion-culling/1646/5 "2018-01-19T07:57:24Z")

</div>

Could you share with me a example in Threejs using Occlusion culling? (Example in WebGL; [https://tsherif.github.io/webgl2examples/occlusion.html](https://tsherif.github.io/webgl2examples/occlusion.html))  
I using [https://gltf-viewer.donmccurdy.com/](https://gltf-viewer.donmccurdy.com/) to load file glTF 2.0

---

<div class="post-metadata">

**Author:** ![Mugen87](https://yyz1.discourse-cdn.com/flex035/user_avatar/discourse.threejs.org/mugen87/32/5645_2.png) [@Mugen87](https://discourse.threejs.org/u/Mugen87)\
**Post date:** [January 19, 2018, 2:10pm UTC](https://discourse.threejs.org/t/occlusion-culling/1646/6 "2018-01-19T14:10:39Z")

</div>

I just want to highlight that the linked stackoverflow thread has actually nothing to do with real occlusion culling. The thread refers to sorted render lists which should minimize state changes of the renderer and avoid overdraw.

We recently had a small discussion about occlusion culling here: [https://github.com/mrdoob/three.js/issues/12382](https://github.com/mrdoob/three.js/issues/12382)

AFAIK, there is currently no official example for occlusion culling with `three.js`.

---

<div class="post-metadata">

**Author:** ![Atul\_Mourya](https://yyz1.discourse-cdn.com/flex035/user_avatar/discourse.threejs.org/atul_mourya/32/1155_2.png) [@Atul\_Mourya](https://discourse.threejs.org/u/Atul_Mourya)\
**Post date:** [January 19, 2018, 3:26pm UTC](https://discourse.threejs.org/t/occlusion-culling/1646/7 "2018-01-19T15:26:15Z")

</div>

I had the same issue. I had some other idea to overcome this issue. May be this question would be helpfull.

> [@Face Culling considerations on renderer.info.render.faces](https://discourse.threejs.org/t/face-culling-considerations-on-renderer-info-render-faces/1616/4):
>
> TBH, I’ve never seen that somebody is actually doing this innocent

---

<div class="post-metadata">

**Author:** ![Mugen87](https://yyz1.discourse-cdn.com/flex035/user_avatar/discourse.threejs.org/mugen87/32/5645_2.png) [@Mugen87](https://discourse.threejs.org/u/Mugen87)\
**Post date:** [January 19, 2018, 5:34pm UTC](https://discourse.threejs.org/t/occlusion-culling/1646/8 "2018-01-19T17:34:33Z")

</div>

Backface culling and occlusion culling are two different things. You should not mix up these techniques.

---

<div class="post-metadata">

**Author:** ![Atul\_Mourya](https://yyz1.discourse-cdn.com/flex035/user_avatar/discourse.threejs.org/atul_mourya/32/1155_2.png) [@Atul\_Mourya](https://discourse.threejs.org/u/Atul_Mourya)\
**Post date:** [January 19, 2018, 6:04pm UTC](https://discourse.threejs.org/t/occlusion-culling/1646/9 "2018-01-19T18:04:52Z")

</div>

I’m actually targeting to extract info for both these cases

---

<div class="post-metadata">

**Author:** ![Fyrestar](https://yyz1.discourse-cdn.com/flex035/user_avatar/discourse.threejs.org/fyrestar/32/52793_2.png) [@Fyrestar](https://discourse.threejs.org/u/Fyrestar)\
**Post date:** [January 21, 2018, 12:43pm UTC](https://discourse.threejs.org/t/occlusion-culling/1646/10 "2018-01-21T12:43:20Z")

</div>

Occlusion culling is only possible with WebGL2 and queries

---

<div class="post-metadata">

**Author:** ![LeenAlfalah](https://yyz1.discourse-cdn.com/flex035/user_avatar/discourse.threejs.org/leenalfalah/32/18835_2.png) [@LeenAlfalah](https://discourse.threejs.org/u/LeenAlfalah)\
**Post date:** [May 13, 2023, 2:48pm UTC](https://discourse.threejs.org/t/occlusion-culling/1646/11 "2023-05-13T14:48:46Z")

</div>

Is there any clear doc to how we can use and how usefull is Occlusion culling Mr ?
