Table Of Contents
Shader¶
Класс Shader
обрабатывает компиляцию вершинного и фрагментного
шейдера, а также создание программы в OpenGL.
Задача
Добавить более полную документацию о шейдере.
Включение заголовка¶
Добавлено в версии 1.0.7.
При создании Shader Kivy всегда будет включать параметры по умолчанию. Если вы не хотите переписывать это каждый раз, когда вам нужно настроить / написать новый шейдер, вы можете добавить токен “$HEADER$”, и его заменят на соответствующий заголовок шейдера.
Вот заголовок для фрагментного шейдера:
#ifdef GL_ES
precision highp float;
#endif
/* Outputs from the vertex shader */
varying vec4 frag_color;
varying vec2 tex_coord0;
/* uniform texture samplers */
uniform sampler2D texture0;
uniform mat4 frag_modelview_mat;
А вот заголовок для вершинного шейдера:
#ifdef GL_ES
precision highp float;
#endif
/* Outputs to the fragment shader */
varying vec4 frag_color;
varying vec2 tex_coord0;
/* vertex attributes */
attribute vec2 vPosition;
attribute vec2 vTexCoords0;
/* uniform variables */
uniform mat4 modelview_mat;
uniform mat4 projection_mat;
uniform vec4 color;
uniform float opacity;
Программы шейдера glsl в одном файле¶
Добавлено в версии 1.6.0.
Для упрощения управления шейдерами вершин и фрагментов их можно загружать автоматически из одного исходного файла glsl (обычного текста). Файл должен содержать разделы, идентифицируемые строкой, начинающейся с ‘—vertex’ и ‘—fragment’ соответственно (регистр не имеет значения), например:
// все содержимое до значимого раздела такого как этот комментарий игнорируется
---VERTEX SHADER--- // вершинный шейдер начинается здесь
void main(){
...
}
---FRAGMENT SHADER--- // фрагментный шейдер начинается здесь
void main(){
...
}
Свойство source шейдера должно быть установлено в имя файла glsl (в указанном выше формате), например, phong.glsl
- class kivy.graphics.shader.Shader(unicode vs=None, unicode fs=None, unicode source=None)¶
Базовый класс:
builtins.object
- Параметры
- vs: строка, по умолчанию None
Исходный код вершинного шейдера
- fs: строка, по умолчанию None
Исходный код фрагментного шейдера
- fs¶
Исходный код фрагментного шейдера.
Если вы установите новый исходный код фрагментного шейдера, он будет автоматически скомпилирован и заменит текущий фрагментный шейдер.
- source¶
Исходный код glsl.
source должен быть именем файла glsl, содержащего как вершинный, так и фрагментный исходный код шейдера, каждый из которых обозначен заголовком раздела состоящим из одной строки, начинающейся либо с “–VERTEX”, либо с “–FRAGMENT” (без учета регистра).
Добавлено в версии 1.6.0.
- success¶
Указывает, успешно ли загружен шейдер и готов ли он к использованию или нет.
- vs¶
Исходный код вершинного шейдера.
Если вы установите новый исходный код вершинного шейдера, он будет автоматически скомпилирован и заменит текущий вершинный шейдер.