创建一个 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 examples 或 Introduction 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!