参考 createFilterShader()

createFilterShader()

创建一个 p5.Shader 对象,与 filter()< /a> 函数。

createFilterShader() 的工作方式与 createShader() 类似,但包含默认的顶点着色器。 createFilterShader() 旨在与 filter() 一起使用来为画布的内容添加滤镜。 滤镜着色器将应用于整个画布,而不仅仅是 p5.Geometry 对象。

参数 fragSrc 设置片段着色器。 它是一个字符串,包含编写的片段着色器程序 GLSL

创建的 p5.Shader 对象有一些可以设置的 uniform:

  • sampler2D tex0,其中包含作为纹理的画布内容。
  • vec2 canvasSize,即画布的宽度和高度,不包括像素密度。
  • vec2 texelSize,这是物理像素的大小,包括像素密度。 像素宽度的计算方式为 1.0 / (width * Density),像素高度的计算方式为 1.0 / (height * density)

创建的 p5.Shader 还提供了 varyingvec2 vTexCoord,这是一个值介于 0 和 1 vTexCoord 之间的坐标,描绘像素在画布上绘制的位置。

有关滤镜和着色器的更多信息,请参阅 Adam Ferriss 的 repo of shader examplesIntroduction to Shaders 教程。

示例

语法

createFilterShader(fragSrc)

参数

fragSrc
字符串:

片段着色器的源代码。

Returns

p5.Shader: 从片段着色器创建的新着色器对象。
Notice any errors or typos? Please let us know. Please feel free to edit src/webgl/material.js and open a pull request!

相关参考