如何在p5.js中导入模型?

时间:2019-07-03 16:46:22

标签: javascript import 3d processing p5.js

我目前正在使用p5.js进行项目。到目前为止,我可以显示3D基本形状,例如盒子,球体或圆柱体。我在Internet上搜索时发现p5.js仅接受.obj文件作为模型。因此,我尝试按照The Coding Train的教程(https://www.youtube.com/watch?v=FUI7HEEz9B0)进行操作,但结果并不相同。

我仍然尝试将教程中的代码放在我看来合理,但是控制台上出现错误。 有关信息,我在http服务器上运行项目,仅通过运行index.html文件就不再运行。 这是代码:

let bottle;

function preload() {
    bottle = loadModel('glass_bottle.obj');
}

function setup() { 
    pixelDensity(10.0);
    createCanvas(800, 600, WEBGL);
}

function draw() {
    background(0);
    noStroke();
    model(bottle);
}

如果要使用.obj文件进行测试,则可以在此处使用免费模型:https://www.turbosquid.com/fr/3d-model/free/bottle/obj

如果您知道我们是否可以在p5.js上放置其他模型格式,请告诉我。

我收到的错误消息是:

  

未捕获(承诺)RangeError:在p5.js:63060处超出了最大调用堆栈大小

1 个答案:

答案 0 :(得分:1)

首先,您的代码看起来不错。

您使用的是哪个版本的p5? importing complex models存在一个已知问题。本质上,他们这样做的方式是递归的,这解释了:

  

超出了最大调用堆栈大小

在随后的补丁中,他们改变了方法并采用了迭代路线。

您可以做什么:

  1. 检查是否可以导入更简单/更小的模型,如果可以,您可能会遇到相同的错误
  2. 转到其中已合并this fix的较新版本。