|
@@ -485,15 +485,11 @@ function Viewport( editor ) {
|
|
|
|
|
|
// background
|
|
// background
|
|
|
|
|
|
- signals.sceneBackgroundChanged.add( function ( backgroundType, backgroundColor, backgroundTexture, backgroundEquirectangularTexture, backgroundBlurriness, backgroundIntensity ) {
|
|
|
|
|
|
+ signals.sceneBackgroundChanged.add( function ( backgroundType, backgroundColor, backgroundTexture, backgroundEquirectangularTexture, backgroundBlurriness, backgroundIntensity, backgroundRotation ) {
|
|
|
|
|
|
- switch ( backgroundType ) {
|
|
|
|
-
|
|
|
|
- case 'None':
|
|
|
|
|
|
+ scene.background = null;
|
|
|
|
|
|
- scene.background = null;
|
|
|
|
-
|
|
|
|
- break;
|
|
|
|
|
|
+ switch ( backgroundType ) {
|
|
|
|
|
|
case 'Color':
|
|
case 'Color':
|
|
|
|
|
|
@@ -516,9 +512,19 @@ function Viewport( editor ) {
|
|
if ( backgroundEquirectangularTexture ) {
|
|
if ( backgroundEquirectangularTexture ) {
|
|
|
|
|
|
backgroundEquirectangularTexture.mapping = THREE.EquirectangularReflectionMapping;
|
|
backgroundEquirectangularTexture.mapping = THREE.EquirectangularReflectionMapping;
|
|
|
|
+
|
|
scene.background = backgroundEquirectangularTexture;
|
|
scene.background = backgroundEquirectangularTexture;
|
|
scene.backgroundBlurriness = backgroundBlurriness;
|
|
scene.backgroundBlurriness = backgroundBlurriness;
|
|
scene.backgroundIntensity = backgroundIntensity;
|
|
scene.backgroundIntensity = backgroundIntensity;
|
|
|
|
+ scene.backgroundRotation.y = backgroundRotation * THREE.MathUtils.DEG2RAD;
|
|
|
|
+
|
|
|
|
+ if ( useBackgroundAsEnvironment ) {
|
|
|
|
+
|
|
|
|
+ scene.environment = scene.background;
|
|
|
|
+ scene.environmentRotation.y = backgroundRotation * THREE.MathUtils.DEG2RAD;
|
|
|
|
+
|
|
|
|
+ }
|
|
|
|
+
|
|
|
|
|
|
}
|
|
}
|
|
|
|
|
|
@@ -532,20 +538,28 @@ function Viewport( editor ) {
|
|
|
|
|
|
// environment
|
|
// environment
|
|
|
|
|
|
|
|
+ let useBackgroundAsEnvironment = false;
|
|
|
|
+
|
|
signals.sceneEnvironmentChanged.add( function ( environmentType, environmentEquirectangularTexture ) {
|
|
signals.sceneEnvironmentChanged.add( function ( environmentType, environmentEquirectangularTexture ) {
|
|
|
|
|
|
|
|
+ scene.environment = null;
|
|
|
|
+
|
|
|
|
+ useBackgroundAsEnvironment = false;
|
|
|
|
+
|
|
switch ( environmentType ) {
|
|
switch ( environmentType ) {
|
|
|
|
|
|
- case 'None':
|
|
|
|
|
|
|
|
- scene.environment = null;
|
|
|
|
|
|
+ case 'Background':
|
|
|
|
+
|
|
|
|
+ useBackgroundAsEnvironment = true;
|
|
|
|
+
|
|
|
|
+ scene.environment = scene.background;
|
|
|
|
+ scene.environmentRotation.y = scene.backgroundRotation.y;
|
|
|
|
|
|
break;
|
|
break;
|
|
|
|
|
|
case 'Equirectangular':
|
|
case 'Equirectangular':
|
|
|
|
|
|
- scene.environment = null;
|
|
|
|
-
|
|
|
|
if ( environmentEquirectangularTexture ) {
|
|
if ( environmentEquirectangularTexture ) {
|
|
|
|
|
|
environmentEquirectangularTexture.mapping = THREE.EquirectangularReflectionMapping;
|
|
environmentEquirectangularTexture.mapping = THREE.EquirectangularReflectionMapping;
|