Как вернуть усечку ТРИ. Перспективной камеры и сохранить ее как переменную?

Я искал API Three.js и обнаружил, что Frustum используется для видимой области камеры. Мне было интересно, смогу ли я получить доступ к усмотрению моей PerspectiveCamera и объявить усечку как объект. По сути, моя цель - покрасить область камеры.

1 ответ

Решение

Если вы хотите визуализировать усечку вашей камеры, вы можете использовать THREE.CameraHelper, По сути, он делает то, что вы описываете в вопросе: он позволяет раскрасить усеченный контур, чтобы вы могли его визуализировать.

Чтобы реализовать это, вам просто нужно инициировать его с вашей камерой в качестве параметра, а затем добавить его в сцену:

var camera = new THREE.PerspectiveCamera( 75, camRatio, 0.1, 1000 );
var helper = new THREE.CameraHelper( camera );
scene.add( helper );

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

Обновить:

Если вы хотите прочитать данные, использованные для создания помощника, вы можете получить доступ к его .pointmap имущество. У него много точек, которые определяют положение ближней плоскости (n1, n2, n3...), дальний самолет (f1, f2, f3...), target и т. д. Чтобы лучше узнать, что означает каждый ключ, вы можете взглянуть на его конструктор из строки 38–83. Код там очень хорошо документирован.

Другие вопросы по тегам