Three.js

Three.js

Камеры

Object3D →

Camera

Абстрактный базовый класс для камер. При создании новой камеры этот класс всегда будет унаследован.

Конструктор

Camera()
Создает новый объект Camera. Обратите внимание, что этот класс не предназначен для непосредственного вызова; скорее всего вам нужна камера с перспективной проекцией или камера с ортографической проекцией.

Свойства

Для просмотра общих свойств посмотрите базовый класс Object3D.

.isCamera
Используется для проверки, является ли данный объект, или производные от него, камерами. По умолчанию значение равно true.
Не нужно его изменять, так как внутри three.js оно используется рендерером (визуализатором) для оптимизации.

.layers
Слои, частью которых является камера. Это свойство, наследуемое от Object3D.
Чтобы быть видимыми, при отображении области просмотра камеры, объекты должны иметь с камерой как минимум один общий (совместно используемый) слой.


matrix world inverse - инверсия матрицы мира');" onmouseout="hide()">.matrixWorldInverse
Это инверсия matrixWorld. MatrixWorld содержит Matrix, в которой имеется универсальное преобразование Camera. This is the inverse of matrixWorld. MatrixWorld contains the Matrix which has the world transform of the Camera.


projection matrix - матрица проекции');" onmouseout="hide()">.projectionMatrix
Это матрица, содержащая проекцию изображения.

Методы

Для просмотра общих методов посмотрите базовый класс Object3D.


clone - клон, двойник');" onmouseout="hide()">.clone
( )
Возвращает новую камеру с теми же свойствами, что и данная.


copy - копия');" onmouseout="hide()">.copy
(
source - источник');" onmouseout="hide()">source
)
Копирует свойства исходной (source) камеры в данную камеру.


get world direction - получить направление мира');" onmouseout="hide()">.getWorldDirection
(
optional target - дополнительная цель');" onmouseout="hide()">optionalTarget
)
Возвращает трехмерный вектор (Vector3) представляющий направление в трехмерном пространстве, куда смотрит камера.
Примечание: Это не положительная, а отрицательная часть оси z камеры, в отличие от
get world direction - получить направление мира');" onmouseout="hide()">getWorldDirection
базового класса (Object3D).
Если задан вектор
optional target - дополнительная цель');" onmouseout="hide()">optionalTarget
, результат будет скопирован в этот вектор (который можно также использовать повторно), в противном случае будет создан новый вектор.

Исходники



Object3D →

CubeCamera

Создает 6 камер, которые представляют визуализатор WebGLRenderTargetCube.

Пример

  // Create cube camera (создаем кубическую камеру)
  var cubeCamera = new THREE.CubeCamera( 1, 100000, 128 );
  scene.add( cubeCamera );
// Create car (создаем машину) var chromeMaterial = new THREE.MeshLambertMaterial( { color: 0xffffff, envMap: cubeCamera.renderTarget } ); var car = new Mesh( carGeometry, chromeMaterial ); scene.add( car );
// Update the render target cube (обновляем представление заданного куба) car.setVisible( false ); cubeCamera.position.copy( car.position ); cubeCamera.updateCubeMap( renderer, scene );
// Render the scene (визуализация сцены) car.setVisible( true ); renderer.render( scene, camera );
Другие примеры:
materials / cubemap / dynamic
materials / cubemap / dynamic2
shading / physical

Конструктор

CubeCamera( near, far, cubeResolution )
near -- расстояние до ближней плоскости отсечения.
far -- расстояние до дальней плоскости отсечения.
cubeResolution -- параметр устанавливает длину ребер куба.
Создает CubeCamera, которая содержит 6 камер с перспективной проекцией, каковые затем представляют визуализатор WebGLRenderTargetCube.

Свойства

Для просмотра общих свойств посмотрите базовый класс Object3D.

.renderTarget
The cube texture that gets generated.

Методы

Для просмотра общих методов посмотрите базовый класс Object3D.

.update( renderer, scene )
renderer -- текущий WebGL визуализатор (рендерер).
scene -- текущая (т.е. действующая в данный момент) сцена.
Этот метод вызывается для обновления свойства renderTarget.

.clear( renderer, color, depth, stencil)
Метод вызывается для очистки renderTarget'овских буферов цвета, глубины и/или трафаретов. Буфер цвета устанавливается для текущего прозрачного цвета рендерера. The color buffer is set to the renderer's current clear color. По умолчанию аргументы равны true.

Исходники


Object3D → Camera →

Ортографическая камера

Камера с ортографической проекцией.
При этом способе проецирования, размер объекта в отображаемой картинке остается постоянным, независимо от расстояния между ним и камерой.
Между прочим, это может быть полезным при отображении двухмерных (2D) сцен и элементов интерфейса пользователя (UI).

Пример

var camera = new THREE.OrthographicCamera( width / - 2, width / 2, height / 2, height / - 2, 1, 1000 );
scene.add( camera );
Другие примеры:
camera / orthographic
camera / orthographic2
camera
interactive / cubes / ortho
materials / cubemap / dynamic
postprocessing / advanced
postprocessing / dof2
postprocessing / godrays
rtt
shaders / tonemapping
shadowmap
terrain / dynamic

Конструктор

OrthographicCamera( left, right, top, bottom, near, far )
left — левая плоскость отсечения области видимости камеры.
right — правая плоскость отсечения области видимости камеры.
top — верхняя плоскость отсечения области видимости камеры.
bottom — нижняя плоскость отсечения области видимости камеры.
near — ближняя плоскость отсечения области видимости камеры.
far — дальняя плоскость отсечения области видимости камеры.
Вместе они определяют область просмотра камеры (в виде усеченной пирамиды). ... показать

Свойства

Описание общих свойств смотрите в статье о базовом классе Camera.
Обратите внимание, чтобы изменения вступили в силу, после внесения изменений в большинство этих свойств, следует вызвать метод updateProjectionMatrix.

.bottom
Нижняя плоскость отсечения области просмотра камеры.

.far
Дальняя плоскость отсечения области просмотра камеры. Значение по умолчанию равно 2000.
Допустимый диапазон значений находится между текущим значением ближней плоскости отсечения (свойство near) и бесконечностью.

.isOrthographicCamera
Свойство используется для проверки, является ли данный класс и производные от него классы, ортографическими камерами. Значением по умолчанию является true.
Это свойство нельзя изменять, так как оно используется внутри three.js визуализатором для оптимизации.

.left
Левая плоскость отсечения области просмотра камеры.

.near
Ближняя плоскость отсечения области просмотра камеры. Значением по умолчанию является 0.1.
Допустимый диапазон значений находится между 0 и текущим значением дальней плоскости отсечения (свойство far). Обратите внимание, что, в отличие от камеры с перспективной проекцией, для ближней плоскости отсечения OrthographicCamera значение 0 является допустимым.

.right
Правая плоскость отсечения области просмотра камеры.

.top
Верхняя плоскость отсечения области просмотра камеры.

.view
Значение свойства устанавливается методом setViewOffset. Значением по умолчанию является null.

.zoom
Получает или устанавливает коэффициент масштабирования камеры. Значение по умолчанию равно 1.

Методы

Описание общих методов смотрите в статье о базовом классе Camera.

.setViewOffset( fullWidth, fullHeight, x, y, width, height )
fullWidth — полная ширина при установке нескольких областей просмотра
fullHeight — полная высота при установке нескольких областей просмотра
x — горизонтальное смещение субкамеры
y — вертикальное смещение субкамеры
width — ширина субкамеры
height — высота субкамеры
Метод устанавливает смещение при большой области просмотра. Это полезно для многооконных или многомониторных/многомашинных настройках. Пример подобного использования смотрите в описании камеры с перспективной проекцией.

.clearViewOffset()
Удаляет любые смещения, установленные методом setViewOffset.

.updateProjectionMatrix
Метод обновляет матрицу проецирования. Он должен быть вызван после любого изменения параметров.


— то есть, в текстовый формат описания объекта,
основанный на JavaScript');" onmouseout="hide()">.toJSON
()
Метод возвращает данные камеры в формате JSON.

Исходники


Object3D → Camera →

PerspectiveCamera

Камера с перспективной проекцией. Статья Википедии о перспективе на русском языке.
Этот режим проекции предназначен чтобы наиболее полно сымитировать человеческое зрение. Это самый распространенный режим проецирования, используемый для визуализации (рендеринга) трехмерной (3D) сцены.

Пример

var camera = new THREE.PerspectiveCamera( 45, width / height, 1, 1000 );
scene.add( camera );
Другие примеры:
geometry / birds
geometry / cube
animation / skinning / blending
animation / skinning / morph
effects / stereo
interactive / cubes
loader / collada / skinning

Конструктор

PerspectiveCamera( fov, aspect, near, far )
fov — вертикальный угол области просмотра камеры.
aspect — соотношение сторон области видимости камеры.
near — ближняя плоскость отсечения области видимости камеры.
far — дальняя плоскость отсечения области видимости камеры.
Вместе они определяют область просмотра камеры (в виде усеченной пирамиды). ... показать

Свойства

Описание общих свойств смотрите в статье о базовом классе Camera. Обратите внимание, чтобы изменения вступили в силу, после внесения изменений в большинство этих свойств, следует вызвать метод updateProjectionMatrix.

.aspect
Соотношение сторон области видимости камеры, т.е. ширина окна (canvas) деленная на высоту окна (canvas). Значение по умолчанию равно 1 (квадратное окно / canvas).

.far
Дальняя плоскость отсечения области просмотра камеры. Значение по умолчанию равно 2000.
Допустимый диапазон значений находится между текущим значением ближней плоскости отсечения (свойство near) и бесконечностью.

.filmGauge
Размер кинопленки, используемый для большей оси. Значение по умолчанию равно 35 (миллиметров). Этот параметр не оказывает никакого влияния на проекционную матрицу, за исключением случая, когда свойство filmOffset установлено в ненулевое значение.

.filmOffset
Смещение от центра по горизонтали в тех же единицах, что и у свойства filmGauge. Значение по умолчанию равно 0.

.focus
Расстояние до объекта, используемое для стереоскопии и эффектов глубины резкости (depth-of-field). Вот статьи из Википедии на английском и русском языках. Этот параметр не влияет на матрицу проекции, если не используется стереокамера. Значение по умолчанию равно 10.

.fov
Вертикальный угол области просмотра камеры, снизу доверху, в градусах. Значение по умолчанию равно 50.

.isPerspectiveCamera
Свойство используется для проверки, является ли данный класс и производные от него классы, камерами с перспективной проекцией. Значением по умолчанию является true.
Это свойство нельзя изменять, так как оно используется внутри three.js визуализатором для оптимизации.

.near
Ближняя плоскость отсечения области просмотра камеры. Значение по умолчанию равно 0.1.
Допустимый диапазон значений находится между числом, большим 0, и текущим значением дальней плоскости отсечения (свойство far).
Обратите внимание, в отличие от камеры с ортографической проекцией, значение 0 для ближней плоскости отсечения PerspectiveCamera недопустимо.

.view
Свойство может быть или описанием области видимости камеры в виде усеченной пирамиды, или null. Значение этого свойства устанавливается методом setViewOffset, а удаляется методом clearViewOffset.

.zoom
Возвращает или устанавливает коэффициент масштабирования камеры.

Методы

Описание общих методов смотрите в статье о базовом классе Camera.
.clearViewOffset()
Удаляет любые смещения, установленные при помощи метода setViewOffset.


получить действующий угол поля просмотра');" onmouseout="hide()">.getEffectiveFOV
()
Возвращает текущий вертикальный угол поля просмотра в градусах, с учетом zoom.

.getFilmHeight()
Возвращает высоту изображения на кинопленке. Если значение свойства aspect меньше или равно единице (книжный формат), результат равен filmGauge.

.getFilmWidth( )
Возвращает ширину изображения на кинопленке. Если значение свойства aspect больше или равно единице (альбомный формат), результат равен filmGauge.

.getFocalLength()
Метод возвращает фокусное расстояние по текущему значению свойства fov в соответствии со значением свойства filmGauge.

.setFocalLength( focalLength )
Метод устанавливает свойство fov по фокусному расстоянию (заданному в параметре focalLength) в соответствии с текущим значением свойства filmGauge.
По умолчанию фокусное расстояние задается для 35-миллиметровой (полнокадровой) камеры.

.setViewOffset( fullWidth, fullHeight, x, y, width, height )
fullWidth — полная ширина при установке нескольких областей просмотра
fullHeight — полная высота при установке нескольких областей просмотра
x — горизонтальное смещение субкамеры
y — вертикальное смещение субкамеры
width — ширина субкамеры
height — высота субкамеры
Метод устанавливает смещение при большой области просмотра. Это годится для многооконных или многомониторных/многомашинных установках.
Например, если имеются два ряда мониторов друг над другом, по три монитора в каждом ряду (3x2), причем каждый монитор (обозначены буквами A, B, C, D, E и F) с разрешением 1920x1080 пикселей и они располагаются в сетке вот таким образом:
+---+---+---+
| A | B | C |
+---+---+---+
| D | E | F |
+---+---+---+
то для каждого монитора будем вызывать его следующим образом:
var w = 1920;
var h = 1080;
var fullWidth = w * 3;
var fullHeight = h * 2;
// A camera.setViewOffset( fullWidth, fullHeight, w * 0, h * 0, w, h ); // B camera.setViewOffset( fullWidth, fullHeight, w * 1, h * 0, w, h ); // C camera.setViewOffset( fullWidth, fullHeight, w * 2, h * 0, w, h ); // D camera.setViewOffset( fullWidth, fullHeight, w * 0, h * 1, w, h ); // E camera.setViewOffset( fullWidth, fullHeight, w * 1, h * 1, w, h ); // F camera.setViewOffset( fullWidth, fullHeight, w * 2, h * 1, w, h );
Обратите внимание, мониторы могут быть разного размера и не располагаться в сетке.

.updateProjectionMatrix
Метод обновляет матрицу проецирования. Он должен быть вызван после любого изменения параметров.


— то есть, в текстовый формат описания объекта,
основанный на JavaScript');" onmouseout="hide()">.toJSON
()
Метод возвращает данные камеры в формате JSON.

Исходники


StereoCamera

Сдвоенная камера с перспективной проекцией, используемая для получения эффектов, подобных 3D Anaglyph или Parallax Barrier.
Вот эти эффекты на русском языке: Анаглиф и Параллаксный барьер.

Пример

effects / anaglyph
effects / parallaxbarrier
effects / stereo
Этот класс камер используется внутри файлов
examples/js/effects/AnaglyphEffect.js (исходный файл эффекта анаглиф)
examples/js/effects/ParallaxBarrierEffect.js (исходник параллаксного барьера)
examples/js/effects/StereoEffect.js (исходник стереоэффекта)
используемых, в свою очередь, в вышеупомянутых примерах.

Конструктор

StereoCamera( )

Свойства


.aspect
Значение по умолчанию равно 1.


- разделение глаз');" onmouseout="hide()">.eyeSep
Значение по умолчанию равно 0.064.


cameraL - сокращ. англ. слов
camera left - левая камера');" onmouseout="hide()">.cameraL
Левая камера. This is added to [page:Layers layer 1] - objects to be rendered by the left camera must also be added to this layer.


cameraR - сокращ. англ. слов
camera right - правая камера');" onmouseout="hide()">.cameraR
Правая камера. This is added to [page:Layers layer 2] - objects to be rendered by the left camera must also be added to this layer.

Методы


.update( camera )
Обновление стереокамер, основанное на камере, переданной в качестве параметра.

Исходники