当前位置: 首页>>代码示例 >>用法及示例精选 >>正文


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-callback

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




相关用法


注:本文由纯净天空筛选整理自sayantanm19大神的英文原创作品 p5.js | loadModel() Function。非经特殊声明,原始代码版权归原作者所有,本译文未经允许或授权,请勿转载或复制。