當前位置: 首頁>>編程示例 >>用法及示例精選 >>正文


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。非經特殊聲明,原始代碼版權歸原作者所有,本譯文未經允許或授權,請勿轉載或複製。