Я работаю с WebGL с использованием three.js, и у меня есть изображение, которое я хочу проецировать на (внутреннюю) поверхность сферы.Проблема, с которой я сталкиваюсь, состоит в том, как ограничить степень этого отображения горизонтальным и вертикальным полем зрения.Представьте, что вы проецируете изображение из центра сферы на ее прямоугольное сечение.
Я подозреваю, что могу сделать это одним из двух способов, но не уверен в том, как это сделать ...
1) Нанести текстуру на сферу на основе углов поля зрения.При наложении изображения прямо на сферу, как показано ниже, выполняется обтекание на 360x180 градусов.Используется ли фокус УФ-картирования или какая-либо другая техника?
var sphere = new THREE.Mesh(
new THREE.SphereGeometry(radius, 60, 40),
new THREE.MeshBasicMaterial(
{ map: THREE.ImageUtils.loadTexture( filename ) }
)
);
2) Разрежьте сферу так, чтобы только часть поверхности покрывалась указанными углами (т.е. пересекалась с прямоугольникомпирамида), или создание эквивалентной криволинейной поверхности.Есть идеи?