2012-06-28 4 views
2

Если я беру Three.js canvas_lines demo и заменить перспективную камеру с орфографической один:three.js частицы холст не делают с OrthographicCamera

- camera = new THREE.PerspectiveCamera(75, window.innerWidth/window.innerHeight, 1, 10000); 
+ camera = new THREE.OrthographicCamera(-window.innerWidth/2, window.innerWidth/2, -window.innerHeight/2, window.innerHeight/2, -100, 10000); 

это приводит к тому, частицы больше не делают, хотя появляются линии. Это ошибка в Three.js или в моем понимании орфографических прогнозов?

Изображения частиц до изменения: enter image description here

И после того, как переключатель в OrthographicCamera: enter image description here (обратите внимание, что частицы отсутствуют и линия прекращения в пустом пространстве)

+0

Я также получаю эту проблему с частицами не показывать с этой камерой. Вы с этим справились? – noShowP

ответ

1

«отсутствующие» частицы просто отбираются, потому что они не лежат между ближайшими и дальними zPlanes камеры.

Во-первых, nearPlane на OrthographicCamera настроен неправильно. Это довольно сложно, но значения z для проекционной матрицы должны быть> 0. Это потому, что они указаны как «расстояние перед камерой». Итак, сперва изменение:

camera = new THREE.OrthographicCamera(-window.innerWidth/2, window.innerWidth/2, -window.innerHeight/2, window.innerHeight/2, 1, 10000); 

Что еще более важно, камера должна располагаться так, чтобы ее не было в середине облака частиц. Я просто переделал его вот так:

camera.position.z = 1000; 

В орфографических проекциях положение z действительно определяет только поведение отбраковки. Сцена по-прежнему выглядит одинаково. Вот результат:

enter image description here

+0

Ничего себе, взрыв из прошлого. В то время, когда я опубликовал этот вопрос, частицы вообще не отображались, поэтому это должно было быть ошибкой в ​​файле Three.js, который впоследствии был исправлен. Принимая это в любом случае, так как кажется полезным ответить на аналогичное задание, которое может иметь человек. – JDS

+0

Вы должны правильно установить параметры орфографической камеры. См. Http://stackoverflow.com/questions/17558085/three-js-orthographic-camera/17567292#17567292. Не путайте пиксели окна с единицами мирового пространства. – WestLangley