diff --git a/Extensions/3D/DirectionalLight.ts b/Extensions/3D/DirectionalLight.ts index f83009eec233..4737c0ef80e6 100644 --- a/Extensions/3D/DirectionalLight.ts +++ b/Extensions/3D/DirectionalLight.ts @@ -109,6 +109,40 @@ namespace gdjs { if (!scene) { return false; } + const skyboxGeo = new THREE.BoxGeometry(10000, 10000, 10000); + + const ft = new THREE.TextureLoader().load( + 'C:/Users/Utilisateur/Desktop/Gdevelop/GDevelop/Extensions/3D/clouds1_north.png' + ); + const bk = new THREE.TextureLoader().load( + 'C:/Users/Utilisateur/Desktop/Gdevelop/GDevelop/Extensions/3D/clouds1_south.png' + ); + const up = new THREE.TextureLoader().load( + 'C:/Users/Utilisateur/Desktop/Gdevelop/GDevelop/Extensions/3D/clouds1_up.png' + ); + const dn = new THREE.TextureLoader().load( + 'C:/Users/Utilisateur/Desktop/Gdevelop/GDevelop/Extensions/3D/clouds1_down.png' + ); + const rt = new THREE.TextureLoader().load( + 'C:/Users/Utilisateur/Desktop/Gdevelop/GDevelop/Extensions/3D/clouds1_east.png' + ); + const lf = new THREE.TextureLoader().load( + 'C:/Users/Utilisateur/Desktop/Gdevelop/GDevelop/Extensions/3D/clouds1_west.png' + ); + + const materialArray = [ + new THREE.MeshBasicMaterial({ map: rt, side: THREE.BackSide }), // Right + new THREE.MeshBasicMaterial({ map: up, side: THREE.BackSide }), // Left + new THREE.MeshBasicMaterial({ map: lf, side: THREE.BackSide }), // Top + new THREE.MeshBasicMaterial({ map: dn, side: THREE.BackSide }), // Bottom + new THREE.MeshBasicMaterial({ map: bk, side: THREE.BackSide }), // Front + new THREE.MeshBasicMaterial({ map: ft, side: THREE.BackSide }), // Back + ]; + const skybox = new THREE.Mesh(skyboxGeo, materialArray); + skybox.position.set(0, 0, 0); + skybox.frustumCulled = false; + + scene.add(skybox); scene.add(this._light); scene.add(this._light.target); if (this._shadowCameraHelper) { diff --git a/Extensions/3D/clouds1_down.png b/Extensions/3D/clouds1_down.png new file mode 100644 index 000000000000..2c970a647504 Binary files /dev/null and b/Extensions/3D/clouds1_down.png differ diff --git a/Extensions/3D/clouds1_east.png b/Extensions/3D/clouds1_east.png new file mode 100644 index 000000000000..ca61e1a61038 Binary files /dev/null and b/Extensions/3D/clouds1_east.png differ diff --git a/Extensions/3D/clouds1_north.png b/Extensions/3D/clouds1_north.png new file mode 100644 index 000000000000..e12a58138700 Binary files /dev/null and b/Extensions/3D/clouds1_north.png differ diff --git a/Extensions/3D/clouds1_south.png b/Extensions/3D/clouds1_south.png new file mode 100644 index 000000000000..792339ebf751 Binary files /dev/null and b/Extensions/3D/clouds1_south.png differ diff --git a/Extensions/3D/clouds1_up.png b/Extensions/3D/clouds1_up.png new file mode 100644 index 000000000000..d9db32536527 Binary files /dev/null and b/Extensions/3D/clouds1_up.png differ diff --git a/Extensions/3D/clouds1_west.png b/Extensions/3D/clouds1_west.png new file mode 100644 index 000000000000..ea3a8431d715 Binary files /dev/null and b/Extensions/3D/clouds1_west.png differ diff --git a/GDJS/Runtime/pixi-renderers/runtimescene-pixi-renderer.ts b/GDJS/Runtime/pixi-renderers/runtimescene-pixi-renderer.ts index 603c1bb3436e..cf9e5039008d 100644 --- a/GDJS/Runtime/pixi-renderers/runtimescene-pixi-renderer.ts +++ b/GDJS/Runtime/pixi-renderers/runtimescene-pixi-renderer.ts @@ -11,6 +11,8 @@ namespace gdjs { private _profilerText: PIXI.Text | null = null; private _showCursorAtNextRender: boolean = false; private _threeRenderer: THREE.WebGLRenderer | null = null; + private loader: THREE.CubeTextureLoader; + private texture: THREE.CubeTexture; private _layerRenderingMetrics: { rendered2DLayersCount: number; rendered3DLayersCount: number; @@ -33,6 +35,17 @@ namespace gdjs { this._threeRenderer = this._runtimeGameRenderer ? this._runtimeGameRenderer.getThreeRenderer() : null; + + this.loader = new THREE.CubeTextureLoader(); + + this.texture = this.loader.load([ + 'C:/Users/Utilisateur/Desktop/Gdevelop/GDevelop/Extensions/3D/clouds1_east.png', // px + 'C:/Users/Utilisateur/Desktop/Gdevelop/GDevelop/Extensions/3D/clouds1_west.png', // nx + 'C:/Users/Utilisateur/Desktop/Gdevelop/GDevelop/Extensions/3D/clouds1_up.png', // py + 'C:/Users/Utilisateur/Desktop/Gdevelop/GDevelop/Extensions/3D/clouds1_down.png', // ny + 'C:/Users/Utilisateur/Desktop/Gdevelop/GDevelop/Extensions/3D/clouds1_north.png', // pz + 'C:/Users/Utilisateur/Desktop/Gdevelop/GDevelop/Extensions/3D/clouds1_south.png', // nz + ]); } onGameResolutionResized() { @@ -209,9 +222,11 @@ namespace gdjs { ); threeRenderer.resetState(); if (this._runtimeScene.getClearCanvas()) threeRenderer.clear(); - threeScene.background = new THREE.Color( - this._runtimeScene.getBackgroundColor() - ); + + threeScene.background = this.texture; + // threeScene.background = new THREE.Color( + // this._runtimeScene.getBackgroundColor() + // ); isFirstRender = false; } else {