Nano Hash - криптовалюты, майнинг, программирование

загружать/удалять несколько моделей в PhiloGL - WebGL

Я пытаюсь загрузить и удалить модели из основного представления webgl с помощью philoGL. В оригинальном скрипте нашел место, где загружается одна модель. Однако я хочу удалить первую модель и заменить ее второй.

Вот как модель загружается при запуске:

model = new O3D.Model({
    program: 'default',
    drawType: (item[0] == 't') ? "TRIANGLES" : "TRIANGLE_STRIP",
    vertices: item[1],
    normals: item[2],
    colors: item[3],
    indices: item[4]
});
scene.add(model);

Я думал о запуске следующего кода:

scene.remove(model);
scene.add(otherModel);

Идеи кто-нибудь? Спасибо, ЭЛ

19.02.2014

Ответы:


1

Лучший способ заменить model в philoGL — это

var indexModel = scene.models.indexOf(model);

if (indexModel > -1) {
   models.splice(indexModel, 1, otherModel);
   scene.defineBuffers(otherModel);
}

Это связано с тем, что вы не можете отслеживать позицию model, которую хотите заменить, с помощью методов, которые есть в PhiloGL. Для выполнения операций в model вам необходимо получить прямой доступ к свойству models объекта Scene.

20.02.2014
  • Спасибо. У меня это работает. Остается одна проблема: когда применены такие преобразования, как поворот камеры, перезагрузка модели отобразит ее в исходной ориентации. Можно ли как-то обновить координаты модели? 22.02.2014
  • Кажется, что перевод / масштабирование синхронизированы, но не повороты модели. Я показываю модели одного и того же объекта в разных условиях. Следовательно, я хотел бы иметь последовательную ротацию для всех моделей. 22.02.2014
  • Новые материалы

    Кластеризация: более глубокий взгляд
    Кластеризация — это метод обучения без учителя, в котором мы пытаемся найти группы в наборе данных на основе некоторых известных или неизвестных свойств, которые могут существовать. Независимо от..

    Как написать эффективное резюме
    Предложения по дизайну и макету, чтобы представить себя профессионально Вам не позвонили на собеседование после того, как вы несколько раз подали заявку на работу своей мечты? У вас может..

    Частный метод Python: улучшение инкапсуляции и безопасности
    Введение Python — универсальный и мощный язык программирования, известный своей простотой и удобством использования. Одной из ключевых особенностей, отличающих Python от других языков, является..

    Как я автоматизирую тестирование с помощью Jest
    Шутка для победы, когда дело касается автоматизации тестирования Одной очень важной частью разработки программного обеспечения является автоматизация тестирования, поскольку она создает..

    Работа с векторными символическими архитектурами, часть 4 (искусственный интеллект)
    Hyperseed: неконтролируемое обучение с векторными символическими архитектурами (arXiv) Автор: Евгений Осипов , Сачин Кахавала , Диланта Хапутантри , Тимал Кемпития , Дасвин Де Сильва ,..

    Понимание расстояния Вассерштейна: мощная метрика в машинном обучении
    В обширной области машинного обучения часто возникает необходимость сравнивать и измерять различия между распределениями вероятностей. Традиционные метрики расстояния, такие как евклидово..

    Обеспечение масштабируемости LLM: облачный анализ с помощью AWS Fargate и Copilot
    В динамичной области искусственного интеллекта все большее распространение получают модели больших языков (LLM). Они жизненно важны для различных приложений, таких как интеллектуальные..