2016-11-24 3 views
0

Я работаю над созданием снеговика с его животом, являющимся снегом. Мне было интересно, есть ли способ создать сцену внутри сцены. В основном, когда я просматриваю его живот, я хочу загрузить другую сцену. Это возможно. Вот мой основной код того, что у меня есть до сих пор.сцена внутри сцены с тремя js

<!DOCTYPE html> 
<html> 


<head> 
    <title></title> 
     </head> 
     <body> 
     <script src="three.js"></script> 
     <script src="TrackballControls.js"></script> 
     <script> 

     var camera, controls, scene, renderer; 

     init(); 
     animate(); 

     function init() { 
     camera = new THREE.PerspectiveCamera(75,window.innerWidth/window.innerHeight, 0.1, 1000); 
     camera.position.z = 10; 

     controls = new THREE.TrackballControls(camera); 
     controls.addEventListener("change", render); 

     scene = new THREE.Scene(); 

     var geometry = new THREE.SphereGeometry(4,32,32); 
     var material = new THREE.MeshBasicMaterial({ color: 0xcacec6 }); 
     var middleSphere = new THREE.Mesh(geometry, material); 
     scene.add(middleSphere); 
     middleSphere.position.y = -0.5; 

     renderer = new THREE.WebGLRenderer(); 
     renderer.setSize(window.innerWidth, window.innerHeight); 
     document.body.appendChild(renderer.domElement); 
     } 

     function ani`enter code here`mate() { 
     requestAnimationFrame(animate); 
     controls.update(); 
     } 

     function render() { 
     renderer.render(scene, camera); 
     } 


    </script> 


    </body> 
</html> 
+0

Я не ищу кого-то, чтобы решить эту проблему. Я просто хотел бы подтолкнуть в правильном направлении. – suprkain

ответ

0

Я предлагаю создать дополнительную сцену, возможно, с помощью собственной камеры и загрузить объекты, которые вы хотите внутри нее.

Затем выполните проверку в рендере() или анимации().

псевдокод

make scene1 with objects and camera1 
make scene2 with objects and camera2 
make empty scene called currentScene 
set currentScene to scene1 
set currentCamera to camera1 
create sceneIndex or a bool to check which scene and camera is currently used 

//in render() or animate() 
if(sceneIndex == 1 && its position inside snowman) 
currentScene = scene2, currentCamera = camera2 and update sceneIndex 

else if(sceneIndex == 2 && its cameraposition outside snowman) 
currentScene = scene1, currentCamera = camera1 and update sceneIndex 

//render 
renderer.render(currentScene,currentCamera) 

Надеется, что это помогает

Смежные вопросы