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

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

Перевод: Максим Кузьмин
Проверка/Оформление/Редактирование: Мякишев Е.А.


loadShader() [1]

Обозначение

loadShader()

Описание

Загружает шейдер в объект PShader. Чтобы файл шейдера загрузился корректно, он должен находиться в папке «data» текущего скетча. Шейдеры совместимы с визуализаторами P2D и P3D, но не с тем визуализатором, который используется по умолчанию.

Кроме того, файл шейдера можно загрузить из любого места на локальном компьютере – для этого нужно воспользоваться абсолютным путем (в системах Linux/Unix он начинается с символа «/», а в Windows – с буквы диска). Файл шейдера также можно скачать из интернета, и для этого в параметре fragFilename или vertFilename нужно указать URL.

Если файла нет или выскакивает какая-то ошибка, метод вернет значение null, а в консоли будет напечатано сообщение об ошибке. Оно не останавит программу, но если в вашем коде нет проверки на возвращение null, а loadShader() все же возвращает null, это может вызвать исключение NullPointerException.

Синтаксис

loadShader(fragFilename)
loadShader(fragFilename, vertFilename)

Параметры

fragFilename – название файла фрагментного шейдера. Тип данных – String
vertFilename – название файла вершинного шейдера. Тип данных – String

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

Тип данных – объект PShader.

Пример

PShader blur;

void setup() {
  size(640, 360, P2D);
  // чтобы файл шейдера загрузился корректно, 
  // он должен находиться в папке «data» текущего скетча:
  blur = loadShader("blur.glsl"); 
  stroke(0, 102, 153);
  rectMode(CENTER);
}

void draw() {
  filter(blur);  
  rect(mouseX-75, mouseY, 150, 150); 
  ellipse(mouseX+75, mouseY, 150, 150);
}

См.также

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