2015-03-21 7 views
6

ज़ूम आउट करते समय चीजें गायब हो जाती हैं मेरे तीन.जेएस प्रोजेक्ट में मैं अपने कैमरे के लिए एक उच्च जेड स्थिति का उपयोग करता हूं। जब ज़ेड स्थिति बहुत अधिक है तो मेरा दृश्य काला हो जाता है। तो, जब मैं ज़ूम आउट करता हूं तो यह काला हो जाता है। लेकिन मैं नहीं चाहता कि ऐसा हो। enter image description hereथ्री.जेएस -

नियंत्रण मैं OrbitControls का उपयोग के लिए, मेरा कैमरा की तरह है:

यह है कि यह कैसे camera.position.z = 3000; http://qs.lc/uui7g

साथ है और जब मैं सिर्फ एक ज़ूम बाहर ज़ूम, यह इस तरह है:

var camera = new THREE.PerspectiveCamera(45, window.innerWidth/window.innerHeight, 1, 3000); 
camera.position.z = 3000; 

और यहाँ ग्रह के लिए कोड और कुछ ग्रहों उसकी कक्षाओं:

var scene = new THREE.Scene(); 

var material = new THREE.MeshLambertMaterial({ 
    map: THREE.ImageUtils.loadTexture("assets/img/sun.jpg") 
}); 

var sun = new THREE.Mesh(new THREE.SphereGeometry(200, 50, 50), material); 
scene.add(sun); 

var orbitLine = function(radius,y) 
{ 
    var segments = 64, 
     line_material = new THREE.LineBasicMaterial({ color: 0xffffff }), 
     geometry = new THREE.CircleGeometry(radius, segments); 

    geometry.vertices.shift(); 

    var orbit = new THREE.Line(geometry, line_material); 
    if(y) 
     orbit.position.y=y; 
    else if(!y) 
     orbit.position.y=0; 

    scene.add(orbit); 
}; 
var Mercury_orbit = orbitLine(400,-70); 
var Venus_orbit = orbitLine(700,70); 
var Earth_orbit = orbitLine(900,70); 
var Mars_orbit = orbitLine(1250,70); 
var Jupiter_orbit = orbitLine(3000,70); 

कुछ कारणों से एक बेवकूफ प्रदान नहीं कर सका क्योंकि यह काम नहीं करता था। यदि आपको अधिक कोड की आवश्यकता है तो मुझे टिप्पणियों में बताएं और मैं इसे जोड़ दूंगा।

कोई विचार? धन्यवाद।

उत्तर

3

आपके कैमरे का दूरदराज का विमान 3000 पर है जिसका मतलब है कि 3000 इकाइयों की दूरी पर सबकुछ फिसल जाएगा और खींचा नहीं जाएगा।

उसी समय आपने अपना कैमरा (0,0,3000) रखा है ताकि आप उस स्थिति पर सही हों जहां चीजें गायब हो जाएंगी।

+1

सावधान रहें क्योंकि दूर-दराज के मूल्य को सेट करना जो गहराई बफर के संकल्प को कम करता है। अपनी दुनिया की इकाइयों को बदलने के लिए यह बेहतर है। अपने उदाहरण में, सब कुछ 10 से विभाजित करें। फिर आप दूर विमान को 1000 तक सेट कर सकते हैं। – gaitat

संबंधित मुद्दे