2017-02-11 10 views
0

Я пытаюсь использовать PointerLockControls и прожектор в качестве фонарика, прикрепленного и нацеленного на камеру, но я получаю «нежелательные результаты», или я просто не нашел «рабочий экзамен», прожектор направляет луч в угол не по бокам, когда обращен к углу.Прожектор в углах Three.js

Может ли это быть достигнуто с помощью одного прожектора с прямым направлением или мне нужно манипулировать двумя разными огнями со стороны, чтобы получить свет в центре углов или что-то в этом роде?

Illustrative image of current behaviour and wanted result

Используя примеры фонарика описаны в Point SpotLight in same direction as camera three.js (Flashlight)

function user_box() { 
    var group = new THREE.Group(); 
    group.position.y = 0.001 - 10; 
    controls.getObject().add(group); 

    bigball = new THREE.Mesh(new THREE.SphereGeometry(0.3, 16, 16), new THREE.MeshBasicMaterial({ color: 0xff0040 })); 
    group.add(bigball); 
    bigball.position.set(0, 10, -5); 

    flashlight = new THREE.SpotLight(0xffffff,4,40); 
    group.add(flashlight); 
    flashlight.position.set(0,10,0); 
    flashlight.target = bigball; 
} 

Добавлена ​​демке, как предложили http://codepen.io/BringerOfTheDawn/pen/LxMbex

+0

Было бы здорово увидеть ваш код, чтобы узнать, как создать экземпляр 'THREE.SpotLight()' и как установить его свойства (jsfiddle, например,). Также вы можете посмотреть [THREE.SpotLight() документацию] (https://threejs.org/docs/index.html#Reference/Lights/SpotLight) – prisoner849

+0

@BringerOfTheDawn 'flashlight = new THREE.SpotLight (0xffffff, 1 , 1000, Math.PI/8, 1); «Экспериментируйте, пока не поймете, для чего все параметры - и что касается ваших материалов. – WestLangley

+0

@WestLangley Я знал, что это должно быть что-то простое. Я играл с углом в начале, но когда я наткнулся на свои углы, я просто ожидал увидеть что-то похожее, как оно было брошено на стены. Не могли бы вы опубликовать свой комментарий в качестве ответа, как новичок, я нашел другие примеры фонарика, действительно разочаровывающие без этих параметров =) – BringerOfTheDawn

ответ

0

Вашего прожектор имеет широкий угол и короткий диапазон. Уменьшите угол и увеличьте диапазон. Также экспериментируйте с другими параметрами, чтобы вы понимали их последствия.

flashlight = new THREE.SpotLight(0xffffff, 1, 1000, Math.PI/8, 1) 

Three.js R.84

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

  • Нет связанных вопросов^_^