У меня есть камера, которая снимает круглые изображения, которые, как утверждают, представляют поле обзора 235 градусов, например:
У меня есть некоторый опыт работы с Threejs и я использовалэто позволяет правильно отображать изображения 360x360, сохраненные в виде равноугольных проекций - для этого достаточно примеров в Интернете.
Но я хочу использовать Threejs для рендеринга моего круглого изображения, возможно, в качестве текстуры внутри сферы.Я рассмотрел некоторые примеры (например, https://threejs.org/examples/#webgl_panorama_dualfisheye и Отображение изображения на сферу в Three.js ), которые, кажется, указывают мне правильное направление, но я думаю, что просто неЯ не знаю достаточно о том, как работает ThreeJs, чтобы соединить части.
Второй (глазное яблоко), кажется, приближает меня, но следование коду глазного яблока точно означает, что мое изображение появляется дважды (что, я думаю, имеет смыслтак как мои изображения квадратные, а текстура должна покрывать всю сферу.
Поэтому я попытался использовать длинную версию конструктора SphereGeometry для создания частичной сферы (360 * 235), но изменение фи дало мне то, чтовыглядит как апельсин с отсутствующими ломтиками. Изменение тэты дало мне правильную форму, но текстура не наложилась на него правильно.
Так что мой общий вопрос - как сделать эту работу, но я думаю, что главное ошеломляетя:
что контролирует, как текстура наносится на сетку? (чтобы я мог рисовать текстуру только один разу, и только на ту часть сферы, которая мне нужна)
Я вижу, что настройка UV необходима (geometry.faceVertexUvs?), и я читаю https://en.wikipedia.org/wiki/UV_mapping, поэтому явроде как понимаю, что это значит, но я не знаю, с чего начать с определения правильных UV для моего изображения (и все же, как и номер 1, как не показывать его на «тыльной стороне» сферы)