Processing:Справочник языка Processing/PShader/set(): различия между версиями

Материал из Онлайн справочника
Перейти к навигацииПерейти к поиску
 
Нет описания правки
Строка 4: Строка 4:
{{Myagkij-редактор}}
{{Myagkij-редактор}}


{{Черновик}}
 


= set() <ref>[https://processing.org/reference/PShader_set_.html processing.org - set()]</ref>=
= set() <ref>[https://processing.org/reference/PShader_set_.html processing.org - set()]</ref>=
Строка 10: Строка 10:
==Класс==
==Класс==


<syntaxhighlight lang="c" enclose="div">
<syntaxhighlight lang="c">
PShader
PShader
</syntaxhighlight>
</syntaxhighlight>
Строка 16: Строка 16:
==Обозначение==
==Обозначение==


<syntaxhighlight lang="c" enclose="div">
<syntaxhighlight lang="c">
set()
set()
</syntaxhighlight>
</syntaxhighlight>
Строка 26: Строка 26:
==Синтаксис==
==Синтаксис==


<syntaxhighlight lang="c" enclose="div">
<syntaxhighlight lang="c">
.set(name, x)
.set(name, x)
.set(name, x, y)
.set(name, x, y)
Строка 41: Строка 41:
==Параметры==
==Параметры==


<syntaxhighlight lang="c" enclose="div">
<syntaxhighlight lang="c">
name    – название стандартной переменной, которую нужно поменять. Тип данных – String
name    – название стандартной переменной, которую нужно поменять. Тип данных – String
x      – первый компонент переменной, который нужно модифицировать. Тип данных – boolean, float или int
x      – первый компонент переменной, который нужно модифицировать. Тип данных – boolean, float или int
Строка 56: Строка 56:
==Возвращаемое значение==
==Возвращаемое значение==


<syntaxhighlight lang="c" enclose="div">
<syntaxhighlight lang="c">
void
void
</syntaxhighlight>
</syntaxhighlight>
Строка 62: Строка 62:
==Пример==
==Пример==


<syntaxhighlight lang="c" line="GESHI_NORMAL_LINE_NUMBERS|GESHI_FANCY_LINE_NUMBERS" enclose="div">
<syntaxhighlight lang="c" line="GESHI_NORMAL_LINE_NUMBERS|GESHI_FANCY_LINE_NUMBERS">
PImage tex;
PImage tex;
PShader deform;
PShader deform;
Строка 102: Строка 102:
|Высота логотипа издателя для schemaNewsArticle=45
|Высота логотипа издателя для schemaNewsArticle=45
}}
}}
{{Навигационная таблица/Справочник языка Processing}}
{{Навигационная таблица/Портал/Processing}}

Версия от 12:04, 20 мая 2023


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



set() [1]

Класс

PShader

Обозначение

set()

Описание

Меняет значения в стандартных переменных шейдера, чтобы модифицировать его эффект во время работы программы.

Синтаксис

.set(name, x)
.set(name, x, y)
.set(name, x, y, z)
.set(name, x, y, z, w)
.set(name, vec)
.set(name, vec, ncoords)
.set(name, boolvec, ncoords)
.set(name, mat)
.set(name, mat, use3x3)
.set(name, tex)

Параметры

name     название стандартной переменной, которую нужно поменять. Тип данных  String
x        первый компонент переменной, который нужно модифицировать. Тип данных  boolean, float или int
y        второй компонент переменной, который нужно модифицировать; эта переменная должна быть объявлена внутри шейдера как элемент массива или вектор (например: int[2], vec2). Тип данных  boolean, float или int
z        третий компонент переменной, который нужно модифицировать; эта переменная должна быть объявлена внутри шейдера как элемент массива или вектор (например: int[3], vec3). Тип данных  boolean, float или int
w        четвертый компонент переменной, который нужно модифицировать; эта переменная должна быть объявлена внутри шейдера как элемент массива или вектор (например: int[4], vec4). Тип данных  boolean, float или int
vec      модифицирует все компоненты в стандартной переменной, имеющей вид массива или вектора. Если тип переменной  это vec3, можно использовать только PVector. Тип данных  boolean[], float[], int[] или объект PVector
ncoords  количество координат на элемент (максимум  4). Тип данных  int
mat      матрица значений. Тип данных  объект PMatrix3D или PMatrix2D
use3x3   принудительно выставляет матрицу на 3 x 3. Тип данных  boolean
tex      задает стандартную переменную для изображения-текстуры. Тип данных  PImage

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

void

Пример

PImage tex;
PShader deform;

void setup() {
  size(640, 360, P2D);
  tex = loadImage("tex1.jpg");
  deform = loadShader("deform.glsl");
  deform.set("resolution", float(width), float(height));
}

void draw() {
  deform.set("time", millis() / 1000.0);
  deform.set("mouse", float(mouseX), float(mouseY));
  shader(deform);
  image(tex, 0, 0, width, height);
}

См.также

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