Referencia p5.Shader

p5.Shader

Una clase para describir un programa de sombreado.

Cada objeto p5.Shader contiene un programa de sombreado que se ejecuta en la unidad de procesamiento gráfico (GPU). Los sombreadores pueden procesar muchos píxeles o vértices al mismo tiempo, lo que los hace rápidos para muchas tareas gráficas. Están escritos en un lenguaje llamado GLSL y se ejecutan junto con el resto del código en un sketch.

Un programa de sombreado consta de dos archivos, un sombreador de vértices y un sombreador de fragmentos. El sombreador de vértices afecta dónde se dibuja la geometría 3D en la pantalla y el sombreador de fragmentos afecta el color. Una vez que se crea el objeto p5.Shader, se puede usar con la función shader(), como en shader(myShader).

Nota: createShader(), createFilterShader() y loadShader() son las formas recomendadas de crear una instancia de esta clase.

Ejemplos

Sintaxis

p5.Shader(renderer, vertSrc, fragSrc)

Parámetros

renderer

Contexto WebGL para este sombreador.

vertSrc

Código fuente para el programa de sombreado de vértices.

fragSrc

Código fuente para el programa de sombreado de fragmentos.

Métodos

copyToContext

Copia el sombreador de un contexto de dibujo a otro.

Cada objeto p5.Shader debe ser compilado llamando a la función shader() antes de poder ejecutarse. La compilación se realiza en un contexto de dibujo que generalmente es el lienzo principal o una instancia de p5.Graphics. Un sombreador solo se puede usar en el contexto donde se compiló. El método copyToContext() vuelve a compilar el sombreador y lo copia a otro contexto de dibujo donde se puede reutilizar.

El parámetro context es el contexto de dibujo donde se utilizará el sombreador. El sombreador se puede copiar a una instancia de p5.Graphics, como en myShader.copyToContext(pg). También se puede copiar el sombreador desde un objeto p5.Graphics al lienzo principal utilizando la variable window, como en myShader.copyToContext(window).

Nota: Un objeto p5.Shader creado con createShader(), createFilterShader() o loadShader() se puede utilizar directamente con un objeto p5.Framebuffer creado con createFramebuffer(). Ambos objetos tienen el mismo contexto que el lienzo principal.

setUniform

Establece las variables uniformes (globales) del sombreador.

Los programas de sombreado se ejecutan en la unidad de procesamiento gráfico (GPU) de la computadora. Viven en una parte de la memoria de la computadora que es completamente separada del sketch que los ejecuta. Las variables uniformes son variables globales dentro de un programa de sombreado. Proporcionan una forma de pasar valores desde un sketch que se ejecuta en la CPU a un programa de sombreado que se ejecuta en la GPU.

El primer parámetro, uniformName, es una cadena con el nombre de la variable uniforme. Para el sombreador anterior, uniformName sería 'r'.

El segundo parámetro, data, es el valor que se debe utilizar para establecer la variable uniforme. Por ejemplo, llamar a myShader.setUniform('r', 0.5) establecería la variable uniforme r en el sombreador anterior a 0.5. data debe coincidir con el tipo de la variable uniforme. Números, cadenas, booleanos, matrices y muchos tipos de imágenes se pueden pasar a un sombreador con setUniform().

Notice any errors or typos? Please let us know. Please feel free to edit src/webgl/p5.Shader.js and open a pull request!

Referencias Relacionadas