






















在 P2D(OpenGL)里,tint() 只对 image() 和纹理有效,不会影响 fill()/stroke() 画的普通形状**。
官方定义一句话:
tint() = 给图像/纹理“叠加颜色+透明度”,是 image() 的“专属 fill”。
简单记:tint 只作用“带纹理的绘制”,纯色形状不走这步。
size(400, 400, P2D);
// 红色,半透明(等效 tint(255,0,0,128) 给形状)
fill(255, 0, 0, 128);
rect(50, 50, 100, 100);
PImage whiteTex;
void setup() {
size(400, 400, P2D);
whiteTex = createImage(1, 1, RGB);
whiteTex.set(0, 0, color(255)); // 纯白
}
void draw() {
background(0);
tint(255, 0, 0, 128); // 红色半透明
texture(whiteTex);
beginShape();
vertex(50, 50);
vertex(150, 50);
vertex(150, 150);
vertex(50, 150);
endShape(CLOSE);
noTint(); // 关闭 tint,避免影响后续 image
}
PGraphics pg;
void setup() {
size(400, 400, P2D);
pg = createGraphics(200, 200, P2D);
pg.beginDraw();
pg.fill(255, 0, 0);
pg.rect(0, 0, 200, 200);
pg.endDraw();
}
void draw() {
background(0);
tint(255, 128); // 半透明
image(pg, 100, 100);
}
一次性、完整、清晰列出:在 Processing 里,专门只对 image() 生效、对 fill()/stroke()/形状完全无效**的函数清单,全部是 P2D / P3D / 默认渲染器都通用的规则。
这些函数只控制图片的绘制方式,跟 rect()、ellipse()、line() 一毛钱关系都没有。
你已经知道了:染色、透明,只作用于图片/纹理。
关闭 tint,只影响后续的 image()。
控制 image() 的坐标模式(CENTER/CORNER/CORNERS)。
对形状完全无效。
控制纹理重复模式(CLAMP/REPEAT)。
只对纹理和 image() 有效。
控制纹理坐标是 IMAGE 还是 NORMAL。
只影响图片/纹理。
很多人以为它们只对图片生效,但其实形状也能用:
真正只对 image() 生效的函数只有 5 个:
tint()noTint()imageMode()textureWrap()textureMode()其余几乎所有绘制函数(fill、stroke、blendMode 等)都是全局生效。
| 函数 | 仅对 image()/纹理 生效 | 仅对图形形状(rect/ellipse/line等)生效 | 全局通用(图片+形状+文字全生效) | P2D/P3D 渲染器差异 |
|---|---|---|---|---|
tint() |
✅ | ❌ | ❌ | P2D严格只作用图像;JAVA2D会顺带影响形状 |
noTint() |
✅ | ❌ | ❌ | 同上,仅清除图像染色 |
imageMode() |
✅ | ❌ | ❌ | 纯图像坐标规则,形状不受控 |
textureMode() |
✅ | ❌ | ❌ | 仅控制纹理贴图坐标 |
textureWrap() |
✅ | ❌ | ❌ | 仅控制纹理平铺/裁切 |
fill() |
❌ | ✅ | ❌ | 纯色形状填充,图像无效 |
stroke() |
❌ | ✅ | ❌ | 形状描边,图像无效 |
noFill() |
❌ | ✅ | ❌ | 只控形状 |
noStroke() |
❌ | ✅ | ❌ | 只控形状 |
strokeWeight() |
❌ | ✅ | ❌ | 仅形状线条粗细 |
strokeCap() |
❌ | ✅ | ❌ | 仅线条端点样式 |
strokeJoin() |
❌ | ✅ | ❌ | 仅线条转角样式 |
blendMode() |
❌ | ❌ | ✅ | 所有绘制内容混合叠加通用 |
pushStyle()/popStyle() |
❌ | ❌ | ✅ | 存储恢复全部绘制样式 |
smooth()/noSmooth() |
❌ | ❌ | ✅ | 抗锯齿全局生效 |
textSize()/textAlign() |
❌ | ❌ | 仅文字 | 独立文字样式体系 |
filter() |
❌ | ❌ | 画布全局 | 整屏后处理,非绘制时属性 |
background() |
❌ | ❌ | 画布底层 | 清空画布专用 |
此内容由惯性聚合(RSS阅读器)自动聚合整理,仅供阅读参考。 原文来自 — 版权归原作者所有。