Как импортировать модель в p5.js? - PullRequest
1 голос
/ 03 июля 2019

В настоящее время я работаю над проектом с использованием p5.js. До сих пор я мог отображать трехмерные формы примитивов, таких как коробки, сферы или цилиндры. Я искал в Интернете и обнаружил, что 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, пожалуйста, дайте мне знать, как.

Сообщение об ошибке, которое у меня было:

Uncaught (в обещании) RangeError: Максимальный размер стека вызовов превышен на p5.js: 63060

1 Ответ

1 голос
/ 04 июля 2019

Во-первых, ваш код выглядит нормально.

Какую версию p5 вы используете?Была известная проблема с импортом сложных моделей .По сути, то, как они это сделали, было рекурсивным, что объясняет:

Превышен максимальный размер стека вызовов

В более позднем патче они изменили свой подход и пошли по итеративному маршруту.

Что вы можете сделать:

  1. Проверьте, можете ли вы импортировать более простую / уменьшенную модель, если вы можете, вы, вероятно, испытываете то же самоеошибка
  2. Перейти к более новой версии, где это исправление было объединено.
...