# Stencil Buffer Threejs

**URL:** <https://discourse.threejs.org/t/stencil-buffer-threejs/4754>\
**Category:** Questions\
**Tags:** stencil-buffer\
**Created:** [November 1, 2018, 2:11am UTC](https://discourse.threejs.org/t/stencil-buffer-threejs/4754 "2018-11-01T02:11:47Z")\
**Posts on this page:** 4\
**Page:** 1

<div class="post-metadata">

**Author:** ![Prodigy](https://avatars.discourse-cdn.com/v4/letter/p/8491ac/32.png) [@Prodigy](https://discourse.threejs.org/u/Prodigy)\
**Post date:** [November 1, 2018, 2:11am UTC](https://discourse.threejs.org/t/stencil-buffer-threejs/4754/1 "2018-11-01T02:11:47Z")

</div>

How can I get the stencil buffer in threejs?

---

<div class="post-metadata">

**Author:** ![pailhead](https://yyz1.discourse-cdn.com/flex035/user_avatar/discourse.threejs.org/pailhead/32/85_2.png) [@pailhead](https://discourse.threejs.org/u/pailhead)\
**Post date:** [November 1, 2018, 4:11am UTC](https://discourse.threejs.org/t/stencil-buffer-threejs/4754/2 "2018-11-01T04:11:49Z")

</div>

AFAIK it’s not really available at a high level, although i could swear that i’ve seen some constants referring to it.

An example:

```auto
const gl = renderer.getContext()

myMesh.onBeforeRender = ()=>{
  gl.enable(gl.STENCIL_TEST)
  gl.stencilFunc( ... )
  gl.stencilOp( ... )
}
myMesh.renderOrder = 999

myOtherMesh.onBeforeRender = ()=>{
  gl.stencilFunc( ... )
  gl.stencilOp( ... )
}
myOtherMesh.onAfterRender = ()=>{
  gl.disable(gl.STENCIL_TEST)
}
myOtherMesh.renderOrder = 1000
```

---

<div class="post-metadata">

**Author:** ![Prodigy](https://avatars.discourse-cdn.com/v4/letter/p/8491ac/32.png) [@Prodigy](https://discourse.threejs.org/u/Prodigy)\
**Post date:** [November 1, 2018, 5:41am UTC](https://discourse.threejs.org/t/stencil-buffer-threejs/4754/3 "2018-11-01T05:41:24Z")

</div>

Interesting and can I get this buffer in a texture?

---

<div class="post-metadata">

**Author:** ![pailhead](https://yyz1.discourse-cdn.com/flex035/user_avatar/discourse.threejs.org/pailhead/32/85_2.png) [@pailhead](https://discourse.threejs.org/u/pailhead)\
**Post date:** [November 1, 2018, 6:56am UTC](https://discourse.threejs.org/t/stencil-buffer-threejs/4754/4 "2018-11-01T06:56:56Z")

</div>

I don’t think so. You could render other passes masked by the stencil buffer into a tezture
