📜  p5.js | loadModel()函数

📅  最后修改于: 2022-05-13 01:56:54.725000             🧑  作者: Mango

p5.js | loadModel()函数

loadModel()函数用于从文件加载 3d 模型,并将其作为 p5.Geometry 对象返回。此模型可以使用.obj.stl格式加载。

加载的 OBJ 和 STL 文件没有任何比例感,因此可能需要使用归一化参数,以便模型自动缩放到正确的大小。加载模型后,可以使用 scale()函数进一步更改模型的大小。

此方法本质上是异步的,因此在模型可以使用之前它可能无法完成。因此建议在 preload()函数中加载模型。

句法:

loadModel( path, normalize, [successCallback], [failureCallback] )

或者

loadModel(path, [successCallback], [failureCallback])

参数:此函数接受上面提到的四个参数,如下所述:

  • path:它是一个字符串,表示必须加载模型的路径。
  • normalize:它是一个布尔值,用于确定加载的模型在加载时是否会缩放到标准化大小。它是一个可选参数。
  • successCallback:这是一个在模型加载成功时调用的函数。加载的模型作为参数传递。它是一个可选参数。
  • failureCallback:这是一个函数,如果模型由于任何错误而没有加载,则调用该函数。错误事件作为参数传递。它是一个可选参数。

返回值:它返回具有给定模型的 p5.Geometry 对象。

下面的程序说明了 p5.js 中的loadModel()函数:

示例 1:此示例显示了模型是如何在 preload()函数中加载的。

let newObj;
  
function preload() {
  newObj = loadModel('models/ball.obj', true);
}
  
function setup() {
  createCanvas(400, 300, WEBGL);
}
  
function draw() {
  background('green');
  
  rotateZ(frameCount * 0.01);
  rotateX(frameCount * 0.01);
  
  model(newObj);
}

输出:
loadModel-preload

示例 2:此示例显示了如何使用回调来加载和使用模型。

let newModel;
  
function setup() {
  createCanvas(400, 300, WEBGL);
  noLoop();
  loadModel('models/ball.obj', true, modelLoaded, loadFailed);
}
  
function draw() {
  background('green');
  
  rotateZ(frameCount * 0.01);
  rotateX(frameCount * 0.01);
  model(newModel);
  
  loop();
}
  
function modelLoaded(modelObj) {
  newModel = modelObj;
  loop();
}
  
function loadFailed(error) {
  print("The model failed to load", error);
}

输出:
loadModel-回调

参考: https://p5js.org/reference/#/p5/loadModel