Zainspirowany rozwiązania WestLangley za wyżej, okazało się, że spotlight.target i reflektor sama może być dodany jako dzieci do tego samego obiektu, czy to jest kamera lub inny przedmiot, jak samochód lub pistoletu. Następnie są one pozycjonowane względem obiektu nadrzędnego, tak że nie ma potrzeby dalszego kopiowania pozycji z jednego obiektu do drugiego.
Można na przykład zrobić coś takiego:
scene.add(camera);
camera.add(gun);
gun.position.set(-30,-30,0);
gun.add(spotlight);
spotlight.position.set(0,0,30);
gun.add(spotlight.target);
spotlight.target.position.set(0,0,31);
A teraz broń będzie domyślnie śledzić kamery, a reflektor zaświeci się po pistolet. Jeśli pistolet zostanie z jakiegoś powodu obrócony (odbijanie kuli lub czołganie się po ziemi lub cokolwiek innego), reflektor również się obróci. TRZY to fajne oprogramowanie. :-)
Jeśli przymocujesz reflektor do aparatu i skieruje go w tym samym kierunku co aparat i nie umieszczaj go z dala od środka, wówczas stożek świetlny będzie wyglądać stale kołowo. W wielu zastosowaniach wygląda na chłodniej i bardziej realistycznie, ponieważ zmienia się dynamicznie w projekcji.Wystarczy małe przesunięcie (jak na przykład w powyższym przykładzie, chociaż tego nie przetestowałem).
Tak, ale PointLight nie daje mi cieni. Czy istnieje sposób na ich zastosowanie w PointLight? –
True, pointLights nie obsługuje cieni. Ale jeśli światło znajduje się w miejscu, w którym znajduje się kamera, i tak nie widać cienia, ponieważ przeszkadzają obiekty rzucające cienie. – WestLangley
OK może zły przykład - zadanie: Chcę dwie jednostki na scenie zsynchronizowane przez node.js jako serwer, (multiplayer) i chcę mieć lampę błyskową w każdej jednostce, wskazując określony kierunek. jaki jest najlepszy sposób wysyłania takich informacji przez gniazdo? (przy okazji, gdzie jest przycisk akceptacji? :)) –