# Reverse effects of createDefaultSkybox

**URL:** <https://forum.babylonjs.com/t/reverse-effects-of-createdefaultskybox/221>\
**Category:** Questions\
**Created:** [December 13, 2018, 12:04pm UTC](https://forum.babylonjs.com/t/reverse-effects-of-createdefaultskybox/221 "2018-12-13T12:04:26Z")\
**Posts on this page:** 7\
**Page:** 1

<div class="post-metadata">

**Author:** ![Tomek](https://avatars.discourse-cdn.com/v4/letter/t/3ab097/32.png) [@Tomek](https://forum.babylonjs.com/u/Tomek)\
**Post date:** [December 13, 2018, 12:04pm UTC](https://forum.babylonjs.com/t/reverse-effects-of-createdefaultskybox/221/1 "2018-12-13T12:04:26Z")

</div>

Hi!

I’m creating a react component where I should be able to define a skybox and clean up once the component is removed (componentWillUnmount).

So basically I try to add a skybox and later remove it. However once I use `createDefaultSkybox` on the scene, some textures are being added I suppose and I’m not sure how to do proper “clean up”:

```
 // create
  public createSkybox(pathToEnvTexture: string) {
    this.removeSkybox();
    const { worldRadius } = utils.getWorldMeasurements(this.scene);
    const envTexture = new CubeTexture(pathToEnvTexture, this.scene);
    this.skybox = this.scene.createDefaultSkybox(
      envTexture,
      true,
      worldRadius * 30
    );
  }

 // clean up
public removeSkybox() {
    if (this.skybox) {
      this.skybox.dispose();
      this.skybox = null;
    }
}

```

Here is an image without skybox -\> with skybox -\> after removing skybox:

 ![skybox](https://us1.discourse-cdn.com/flex024/uploads/babylonjs/original/1X/c47b429c742264bd45eded8a9cbd20c5e7dc99fe.jpeg)

---

<div class="post-metadata">

**Author:** ![Vinc3r](https://sea2.discourse-cdn.com/flex024/user_avatar/forum.babylonjs.com/vinc3r/32/25340_2.png) [@Vinc3r](https://forum.babylonjs.com/u/Vinc3r)\
**Post date:** [December 13, 2018, 1:29pm UTC](https://forum.babylonjs.com/t/reverse-effects-of-createdefaultskybox/221/2 "2018-12-13T13:29:45Z")

</div>

It’s probably because [createDefaultSkybox](https://doc.babylonjs.com/api/classes/babylon.scene#createdefaultskybox) will also create the scene environmentTexture as well.

Setting `setGlobalEnvTexture` to `false` should be enough.

[https://www.babylonjs-playground.com/#K4S3GU#44](https://www.babylonjs-playground.com/#K4S3GU#44)

Or you can also, in you removeSkybox, set `scene.environmentTexture = null`

---

<div class="post-metadata">

**Author:** ![Tomek](https://avatars.discourse-cdn.com/v4/letter/t/3ab097/32.png) [@Tomek](https://forum.babylonjs.com/u/Tomek)\
**Post date:** [December 13, 2018, 2:08pm UTC](https://forum.babylonjs.com/t/reverse-effects-of-createdefaultskybox/221/3 "2018-12-13T14:08:04Z")

</div>

Yeah, that solves it!

Though, perhaps I should first dispose it? like:

```auto
scene.environmentTexture.dispose()
scene.environmentTexture = null;

```

---

<div class="post-metadata">

**Author:** ![Vinc3r](https://sea2.discourse-cdn.com/flex024/user_avatar/forum.babylonjs.com/vinc3r/32/25340_2.png) [@Vinc3r](https://forum.babylonjs.com/u/Vinc3r)\
**Post date:** [December 13, 2018, 2:27pm UTC](https://forum.babylonjs.com/t/reverse-effects-of-createdefaultskybox/221/4 "2018-12-13T14:27:12Z")

</div>

It looks like environmentTexture.dispose() give us an error.

But instead of use createDefaultSkybox, I think you should create manually your custom skybox, it will be simpler.

The createDefaultSkybox just [create a simple cube](https://i.imgur.com/cK7M4aZ.png) using a cubetexture in its reflection texture : [https://www.babylonjs-playground.com/#UU7RQ#244](https://www.babylonjs-playground.com/#UU7RQ#244)

---

<div class="post-metadata">

**Author:** ![Tomek](https://avatars.discourse-cdn.com/v4/letter/t/3ab097/32.png) [@Tomek](https://forum.babylonjs.com/u/Tomek)\
**Post date:** [December 14, 2018, 12:53pm UTC](https://forum.babylonjs.com/t/reverse-effects-of-createdefaultskybox/221/5 "2018-12-14T12:53:53Z")

</div>

environmentTexture.dispose() seems to work in my case 🙂 but if this fails in future I will probably create skybox manually.

---

<div class="post-metadata">

**Author:** ![Vinc3r](https://sea2.discourse-cdn.com/flex024/user_avatar/forum.babylonjs.com/vinc3r/32/25340_2.png) [@Vinc3r](https://forum.babylonjs.com/u/Vinc3r)\
**Post date:** [December 14, 2018, 3:26pm UTC](https://forum.babylonjs.com/t/reverse-effects-of-createdefaultskybox/221/6 "2018-12-14T15:26:34Z")

</div>

> [@Tomek](#):
>
> environmentTexture.dispose() seems to work in my case

I just remade a test, don’t know why I get this yesterday.

---

<div class="post-metadata">

**Author:** ![omid](https://avatars.discourse-cdn.com/v4/letter/o/2bfe46/32.png) [@omid](https://forum.babylonjs.com/u/omid)\
**Post date:** [December 8, 2021, 6:37pm UTC](https://forum.babylonjs.com/t/reverse-effects-of-createdefaultskybox/221/7 "2021-12-08T18:37:06Z")

</div>

If you created your skybox using createDefaultSkybox, you can use:

```auto
scene.getMeshByName('hdrSkyBox').dispose()

```

to dispose it.
