2016-09-17 4 views
0

Je me demandais si quelqu'un sait s'il est possible d'obtenir un effet de lumière flash avec un TROIS.SpotLight.Three.js - Effet "Ring" Flash Light

// Line 110 
spotLight = new THREE.SpotLight(0xffffff, 0.5, 150); 
spotLight.power = 6000; 
spotLight.angle = 0.5; 
spotLight.decay = 2; 
spotLight.penumbra = 0.1; 
spotLight.distance = 200; 

J'ai mis en place un CodePen (http://codepen.io/anon/pen/ALXNYQ - cliquez sur fenêtre de rendu pour engager le verrou de pointeur) mais je veux la lumière flash pour être plus réaliste. Voici une image avec l'effet désiré:

Flash Light "Ring" Effect

J'ai essayé de regarder autour de la documentation, pensant qu'il y aurait un quelconque « carte » que je pouvais charger - comme, il aurait peut-être être une carte alpha ou quelque chose. Je suis encore relativement nouveau dans le monde du jeu en 3D, donc toute aide serait appréciée.

Merci.

Répondre

2

Vous pouvez essayer d'ajouter plus de spots avec différents angles et différentes valeurs de paramètres pour créer cet effet d'anneau.

spotLight = new THREE.SpotLight(0xFFFFFF, 0.5, 150); 
spotLight.power = 4000; 
spotLight.angle = 0.5; 
. 
. 
. 
spotLight2 = new THREE.SpotLight(0xCCCCCC, 0.5, 150); 
spotLight2.power = 2000; 
spotLight2.angle = 0.55; 
. 
. 
. 
flashLight.add(spotLight); 
flashLight.add(spotLight.target); 
flashLight.add(spotLight2); 
flashLight.add(spotLight2.target); 

Vous pouvez voir à quoi il ressemble dans this codepen. Je pense que vous pouvez obtenir un effet similaire à ce que vous cherchez si vous modifiez les paramètres.

+0

Pensez-vous qu'il y aurait beaucoup d'impact sur la performance? Par exemple, si j'ai déjà une scène avec 7 ou 8 lumières, serait-il sage d'avoir 3 lumières juste pour ma lampe de poche? Je suppose que cela dépend de moi, finalement. Mais merci pour la réponse, néanmoins. – user973259

+0

Certainement avoir beaucoup de lumières aura un impact sur les performances. Vous pouvez essayer de désactiver le moulage d'ombre des projecteurs supplémentaires. Vous pouvez ensuite surveiller la performance en utilisant [Stats.js] (https://github.com/mrdoob/stats.js/) – guardabrazo