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);
}
輸出:
範例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);
}
輸出:
參考: https://p5js.org/reference/#/p5/loadModel
相關用法
- p5.js min()用法及代碼示例
- p5.js log()用法及代碼示例
- d3.js d3.min()用法及代碼示例
- p5.js arc()用法及代碼示例
- p5.js tan()用法及代碼示例
- p5.js nf()用法及代碼示例
- p5.js second()用法及代碼示例
- p5.js sin()用法及代碼示例
- p5.js value()用法及代碼示例
- p5.js hue()用法及代碼示例
- PHP ord()用法及代碼示例
注:本文由純淨天空篩選整理自sayantanm19大神的英文原創作品 p5.js | loadModel() Function。非經特殊聲明,原始代碼版權歸原作者所有,本譯文未經允許或授權,請勿轉載或複製。