processing水墨晕染笔刷
时间: 2023-11-08 12:03:59 浏览: 151
实现水墨晕染效果的笔刷,可以使用Processing的`PShader`类来实现。以下是一个简单的示例:
```java
PShader inkShader;
void setup() {
size(400, 400, P2D);
inkShader = loadShader("inkfrag.glsl");
strokeWeight(10);
stroke(0);
}
void draw() {
if (mousePressed) {
shader(inkShader);
line(pmouseX, pmouseY, mouseX, mouseY);
resetShader();
}
}
```
在这个例子中,我们使用了一个名为`inkfrag.glsl`的着色器,它实现了水墨晕染效果。在`setup()`函数中,我们加载并初始化着色器,设置笔刷的粗细和颜色。在`draw()`函数中,当鼠标按下时,我们使用`shader()`函数将着色器应用于线条,从而实现水墨晕染的效果。
下面是`inkfrag.glsl`着色器的代码:
```glsl
#ifdef GL_ES
precision mediump float;
precision mediump int;
#endif
uniform vec2 u_resolution;
uniform float u_time;
uniform vec2 u_mouse;
void main() {
vec2 st = gl_FragCoord.xy/u_resolution.xy;
float dist = distance(st, gl_FragCoord.xy/u_resolution.yy);
float intensity = smoothstep(0.5, 0.0, dist);
gl_FragColor = vec4(vec3(intensity), 1.0);
}
```
该着色器将通过`shader()`函数将线条显示为模糊的水墨晕染效果。
阅读全文