diff --git a/docs/components/renderer.md b/docs/components/renderer.md index aa5f5b3ba2..033c74c2e2 100644 --- a/docs/components/renderer.md +++ b/docs/components/renderer.md @@ -40,6 +40,7 @@ It also configures presentation attributes when entering WebVR/WebXR. | logarithmicDepthBuffer | Whether to use a logarithmic depth buffer. | auto | | precision | Fragment shader [precision][precision] : low, medium or high. | high | | alpha | Whether the canvas should contain an alpha buffer. | true | +| stencil | Whether the canvas should contain a stencil buffer. | false | | toneMapping | Type of toneMapping to use, one of: 'no', 'ACESFilmic', 'linear', 'reinhard', 'cineon' | 'no' | | exposure | When any toneMapping other than "no" is used this can be used to make the overall scene brighter or darker | 1 | | anisotropy | Default anisotropic filtering sample rate to use for textures | 1 | diff --git a/src/core/scene/a-scene.js b/src/core/scene/a-scene.js index e95806fa04..b5527d21df 100644 --- a/src/core/scene/a-scene.js +++ b/src/core/scene/a-scene.js @@ -640,6 +640,10 @@ class AScene extends AEntity { rendererConfig.alpha = rendererAttr.alpha === 'true'; } + if (rendererAttr.stencil) { + rendererConfig.stencil = rendererAttr.stencil === 'true'; + } + if (rendererAttr.multiviewStereo) { rendererConfig.multiviewStereo = rendererAttr.multiviewStereo === 'true'; } diff --git a/src/systems/renderer.js b/src/systems/renderer.js index 0d8d669298..1c0867cd7a 100644 --- a/src/systems/renderer.js +++ b/src/systems/renderer.js @@ -24,6 +24,7 @@ module.exports.System = registerSystem('renderer', { sortTransparentObjects: {default: false}, colorManagement: {default: true}, alpha: {default: true}, + stencil: {default: false}, foveationLevel: {default: 1} },