Cat hungry.png
Здравствуйте! Собираем деньги на перевод материалов по электронике(https://www.allaboutcircuits.com/education/). Реквизиты указаны здесь.

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

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


Перевод: Максим Кузьмин (Cubewriter)
Перевел 2685 статей для сайта.

Контакты:

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


Ambox content.png Черновик


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.

Пример

  1. PShader blur;
  2.  
  3. void setup() {
  4.   size(640, 360, P2D);
  5.   // чтобы файл шейдера загрузился корректно,
  6.   // он должен находиться в папке «data» текущего скетча:
  7.   blur = loadShader("blur.glsl");
  8.   stroke(0, 102, 153);
  9.   rectMode(CENTER);
  10. }
  11.  
  12. void draw() {
  13.   filter(blur);  
  14.   rect(mouseX-75, mouseY, 150, 150);
  15.   ellipse(mouseX+75, mouseY, 150, 150);
  16. }

См.также

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

  1. processing.org - loadShader()