点赞 + 关注 + 收藏 = 学会了
什么是 model ()?为什么需要它?
在 p5.js 中,model()
是专门用来绘制 3D 模型的 "画笔"。它的作用很简单:把一个提前准备好的 3D 几何对象(p5.Geometry
)画到画布上。
但有个关键前提:必须在 WebGL 模式下使用。因为 3D 绘图需要 WebGL 的 3D 渲染能力,普通 2D 画布(默认模式)不支持!
核心概念:p5.Geometry 对象
model()
的参数必须是p5.Geometry
类型 ------ 你可以把它理解为 "3D 模型的数字描述"(包含顶点、面、颜色等信息)。
怎么得到p5.Geometry
?有两种方式:
- 自己创建 :用
buildGeometry()
或beginGeometry()
+endGeometry()
手动定义形状; - 加载外部文件 :用
loadModel()
导入.obj 格式的 3D 模型文件(比如从 Blender 导出的模型)。
基础用法
步骤 1:创建 WebGL 画布
用createCanvas(width, height, WEBGL)
开启 3D 模式:
js
function setup() {
createCanvas(400, 400, WEBGL); // 最后一个参数WEBGL是关键!
}
步骤 2:准备 p5.Geometry 对象
可以自己画一个简单形状,比如圆锥:
js
let myModel; // 存储3D模型
function setup() {
createCanvas(400, 400, WEBGL);
// 用buildGeometry创建模型:传入一个画形状的函数
myModel = buildGeometry(drawCone);
}
// 定义要画的形状(这里画一个圆锥)
function drawCone() {
cone(50, 100); // 圆锥:底面半径50,高100
}
步骤 3:用 model () 绘制
在draw()
里调用model(你的模型)
就能显示了:
js
function draw() {
background(200); // 灰色背景
model(myModel); // 画出准备好的模型
}
完整代码

js
let myModel; // 存储3D模型
function setup() {
createCanvas(400, 400, WEBGL);
// 用buildGeometry创建模型:传入一个画形状的函数
myModel = buildGeometry(drawCone);
}
// 定义要画的形状(这里画一个圆锥)
function drawCone() {
cone(50, 100); // 圆锥:底面半径50,高100
}
function draw() {
background(200); // 灰色背景
model(myModel); // 画出准备好的模型
}
允许鼠标操作
orbitControl()
是 3D 绘图的常用工具,让你能 360° 查看模型。

js
function draw() {
background(200); // 灰色背景
orbitControl(); // 允许鼠标拖拽旋转视角(3D必备交互)
model(myModel); // 画出准备好的模型
}
采用前面的代码,然后在 draw()
里加入一句 orbitControl()
即可。
以上就是本文的全部内容啦,想了解更多 P5.js 用法欢迎关注 《P5.js中文教程》。
可以➕我 green bubble 吹吹水咯

点赞 + 关注 + 收藏 = 学会了