Processing:Справочник языка Processing/frustum()

Материал из Онлайн справочника
Перейти к навигацииПерейти к поиску


Перевод: Максим Кузьмин (Cubewriter) Контакты:</br>* Skype: cubewriter</br>* E-mail: cubewriter@gmail.com</br>* Максим Кузьмин на freelance.ru
Проверка/Оформление/Редактирование: Мякишев Е.А.


Cat poo.png Черновик


frustum() [1]

Обозначение

frustum()

Описание

Задает матрицу перспективы.

Слово «frustum» переводится как «пирамида с усеченным конусом». В результате «глаз» пользователя находится как бы в верхней части этой пирамиды (т.е. в месте, где у нее усечен конус) и смотрит внутрь нее, а шесть граней пирамиды выступают плоскостями для 3D-сцены, которую нужно отрендерить. В результате все, что будет находиться в пределах этих 6 граней, будет видимо и отрендерено, а все, что за их пределами – видимо не будет.

Метод frustrum() позволяет менять перспективу в отрендериваемой сцене. Впрочем, в большинстве случаев ее легче поменять при помощи метода perspective().

Имейте в виду, что значение near должно быть выше нуля (потому что ближняя плоскость пирамиды не может находиться за «глазом» пользователя). Аналогично значение far должно быть больше значения near (потому что дальняя – т.е. far – плоскость должна находиться дальше от «глаза» пользователя, чем ближняя – т.е. near – плоскость).

Метод frustum() работает аналогично методу glFrustum() в OpenGL, но за исключением того, что он удаляет текущую матрицу перспективы, а не умножает себя на нее.

Синтаксис

frustum(left, right, bottom, top, near, far)

Параметры

left    координата для левой грани пирамиды. Тип данных  float
right   координата для правой грани пирамиды. Тип данных  float
bottom  координата для нижней грани пирамиды. Тип данных  float
top     координата для верхней грани пирамиды. Тип данных  float
near    координата для ближней грани пирамиды (должна быть больше «0»). Тип данных  float
far     координата для дальней грани пирамиды (должна быть больше, чем значение в параметре near). Тип данных  float

Возвращаемое значение

void

Пример

Processing frustum 0.png


size(100, 100, P3D);  
noFill();
background(204);
frustum(-10, 0, 0, 10, 10, 200);
rotateY(PI/6);
box(45);

См.также

Внешние ссылки