2016-04-26 5 views
1

Я получил полные равнопромежуточные изображения хорошо работает с Three.js:Частичных равнопромежуточного Panorama three.js

scene = new THREE.Scene(); 
geometry = new THREE.SphereBufferGeometry(500, 60, 40); 
geometry.scale(-1, 1, 1); 
material = new THREE.MeshBasicMaterial({ map: texture }); 
mesh = new THREE.Mesh(geometry, material); 
mesh.rotation.y = Math.PI; 
scene.add(mesh); 

Но мои изображения на самом деле содержат только 180x180 градусов (половину сферы), так что я пытаюсь получить квадратная текстура, частично нанесенная на сферическую сетку, без растяжения изображения по всей сфере. Я полагаю, что это имеет какое-то отношение к параметрам texture.offset.xyz, но я не был успешным. Хотя я могу продолжать заполнять мои изображения, чтобы соответствовать стандарту 2x1 Equirectangular, я бы скорее отказался от этого шага из моего рабочего процесса обработки.

Ниже вы найдете полное равноугольное изображение и квадрат, который я пытаюсь получить. Кто-нибудь знает, как это сделать? Благодаря!

Full Equirectangular

Half Equirectangular

+0

Может быть разобрать карту ультрафиолетовый умножить U на 2 и зажимая его до 1? – vals

ответ

1

SphereBufferGeometry имеет несколько необязательных параметров:

SphereBufferGeometry(radius, widthSegments, heightSegments, phiStart, phiLength, thetaStart, thetaLength) 

radius — sphere radius. Default is 50. 
widthSegments — number of horizontal segments. Minimum value is 3, and the default is 8. 
heightSegments — number of vertical segments. Minimum value is 2, and the default is 6. 
phiStart — specify horizontal starting angle. Default is 0. 
phiLength — specify horizontal sweep angle size. Default is Math.PI * 2. 
thetaStart — specify vertical starting angle. Default is 0. 
thetaLength — specify vertical sweep angle size. Default is Math.PI. 

вы можете использовать phiStart, phiLength, thetaStart и thetaLength определить Частичные сфере

так сделать половину сфере вы можете попробовать что-то вроде:

geometry = new THREE.SphereBufferGeometry(500, 60, 40, 0, Math.PI, 0, Math.PI); 

ссылка http://threejs.org/docs/#Reference/Extras.Geometries/SphereBufferGeometry

+0

Отлично! Спасибо за помощь. –

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