2012-06-06 15 views
8

जैसा कि शीर्षक कहता है। जब मैं वर्तमान दृश्य प्रस्तुत करता हूं तो सब ठीक काम करता है। केवल सफेद बंदर की छाया काट दिया जाता है। यह कैसे हो सकता है, और इसके लिए कोई संकल्प है?तीन.जेएस छाया कटऑफ

यहाँ स्थल है: http://hammer.bz/test/ और एक स्क्रीन;)
http://i.stack.imgur.com/6jd0h.png

मुझे लगता है कि यह कैमरा के साथ या रोशनी से कोई लेना देना .. है इसलिए यहाँ हैं वे:

renderer.shadowMapEnabled = true; 
renderer.sortObjects = false; 
renderer.shadowMapWidth = 3072; 
renderer.shadowMapHeight = 3072 
renderer.shadowCameraNear = 2; 
renderer.shadowCameraFar = 40000; 
renderer.shadowCameraFov = 50; 
renderer.shadowMapBias = -0.00022; 
renderer.shadowMapDarkness = 0.55; 
renderer.shadowMapSoft  = true; 
renderer.physicallyBasedShading = true; 
renderer.setClearColorHex(0x999999, 1); 


camera = new THREE.PerspectiveCamera(70, window.innerWidth/window.innerHeight, 0.1, 40000); 
camera.position.x = x; 
camera.position.y = y; 
camera.position.z = z; 
camera.rotation.x = -0.8; 
scene.add(camera); 


var light = new THREE.DirectionalLight(0xffffff, 1); 
light.position.set(-2, 5, 2).normalize(); 
light.shadowCameraNear = 0.01; 
light.shadowCameraFar = 1000000; 
light.castShadow  = true; 
light.shadowDarkness  = 0.5; 
light.shadowCameraVisible = false; 
scene.add(light); 

अग्रिम धन्यवाद!
ब्रैम

संपादित करें: यह मिल गया:

सिर्फ बजाय THREE.SpotLight का उपयोग करें। यह एक बेवकूफ सवाल था।

प्रकाश देखने के लिए बस shadowCameraVisible = true; पर डालें और यह काम करेगा। इस प्रश्न के लिए अब थोड़ा गूंगा महसूस कर रहा है;)

+1

ग्लेड आपने इसे समझ लिया है! एक साधारण उत्तर के साथ एक प्रश्न पूछने के लिए गूंगा महसूस मत करो। मैं आपको यह नहीं बता सकता कि कितनी बार मैंने अपनी खुद की समस्याओं का पता लगाया है, जबकि स्टैक ओवरफ़्लो प्रश्न टाइप करने या तुरंत पोस्ट करने के बाद। मैं वास्तव में आपके निष्कर्षों को इस प्रश्न के उत्तर के रूप में जोड़ने की सिफारिश करता हूं और फिर आवश्यक 24 घंटे प्रतीक्षा के बाद इसे स्वीकार किए गए उत्तर के रूप में चिह्नित करता हूं। इससे दूसरों को यह पता चलता है कि भविष्य में समस्या हल हो गई है। – Toji

उत्तर

5

इसके बजाय THREE.SpotLight का उपयोग करें।

प्रकाश देखने के लिए बस shadowCameraVisible = true; पर डालें और यह काम करेगा। ऑफकोर्स आपको स्थिति position.set(x, y, z);