РЕДАКТИРОВАНИЕ · УПРОСТИТЬ
Упростить сетку STL: меньше полигонов в модели
Уменьшить количество полигонов STL в редакторе можно ползунком «Сохранить геометрию»: он задаёт, какая доля треугольников останется — от 10 до 100% с шагом 5, — а панель ещё до нажатия показывает «N сейчас» и «≈ M после». Каждое применение строится из исходной сетки, поэтому сколько ни двигай ползунок, ошибки не накапливаются.
Инструмент откроется на демо-модели Benchy — свой файл можно открыть там же
Файл не покидает устройство
Паспорт инструмента
- Сохранить геометрию
- 10–100% от исходного числа треугольников, шаг 5, умолчание 100%; при новом файле и «Сбросе изменений» возвращается к 100
- ≈ M после
- прогноз = исходное число треугольников × процент / 100, округлённо, не меньше 1; «N сейчас» — текущее число, формат ru-RU
- Движок
- MeshoptSimplifier из meshoptimizer 0.18.1; целевая ошибка 0.01, опция LockBorder (границы открытой сетки не сдвигаются)
- Порог меша
- меш меньше 100 треугольников пропускается; целевое число индексов кратно 3 и не меньше 12 (4 треугольника)
- Подготовка сетки
- все атрибуты кроме position снимаются, вершины свариваются с допуском 1e-5; после упрощения нормали, bounding box и sphere пересчитываются
- Где считается
- отдельный Web Worker «polyzon-mesh-task», по одному на задачу; нужен WebAssembly
- Таймаут операции
- 120 секунд, затем «Превышено время операции. Модель слишком детализирована.»
- Запись в истории
- «Упрощение сетки» — отмена Ctrl/Cmd+Z, повтор Ctrl/Cmd+Y или Shift+Ctrl/Cmd+Z
Упрощение сетки STL: как это работает
- Откройте модель кнопкой «Открыть модель» или перетащите файл в окно. Если пришли по ссылке с ?section=simplify, раздел откроется сам, как только модель загрузится.
- Переключитесь на «Редактирование» и в рейке «Инструменты модели» выберите «Упростить» — подсказка «Меньше полигонов». Стрелки ← → на рейке переключают соседние инструменты.
- Сдвиньте ползунок «Сохранить геометрию». Под ним — «N сейчас» и «≈ M после»; прогноз считается от исходного числа треугольников, а не от текущего.
- Нажмите «Применить к исходной сетке». Пока кнопка показывает «Упрощение…», счётчик проходит стадии «Запуск оптимизатора», «Подготовка сетки», «Упрощение сетки», «Пересчёт нормалей», «Передача результата»; кнопка «Отменить» прерывает задачу без сообщения об ошибке.
- Не устроил результат — сдвиньте ползунок и примените ещё раз: инструмент снова возьмёт исходную геометрию. Или Ctrl/Cmd+Z — в истории лежит запись «Упрощение сетки».
- Экспорт берёт уже упрощённую сетку: STL, 3MF, GLB или OBJ уйдут с новым числом треугольников.
Упрощение сетки STL: где предел
- Меньше 10% оставить нельзя — ползунок и воркер зажимают значение в 10–100%; меши меньше 100 треугольников пропускаются целиком, как есть.
- С сетки снимается всё, кроме координат: UV-развёртка, цвета вершин и исходные нормали упрощение не переживают, нормали строятся заново. Покраска граней тоже теряется, если число треугольников изменилось.
- Итог всегда от исходной сетки, а не от текущей: «доупростить» отремонтированную или полую версию нельзя, а состояние полости и дренажа после применения сбрасывается. Пока идёт упрощение, другие операции над сеткой и экспорт ждут.
- Нужен WebAssembly, иначе «Браузер не поддерживает WebAssembly…»; предел времени — 120 секунд. Допустимая ошибка не настраивается: 0.01 зашито в воркере.
Упрощение сетки STL: вопросы
- Как уменьшить число треугольников в STL онлайн?
- Откройте файл, переключитесь на «Редактирование» и выберите в рейке «Упростить». Ползунок «Сохранить геометрию» задаёт долю оставляемых треугольников от 10 до 100% с шагом 5; кнопка «Применить к исходной сетке» запускает упрощение. Считает MeshoptSimplifier из meshoptimizer 0.18.1 в отдельном Web Worker'е — файл не покидает браузер.
- Сколько треугольников останется после упрощения?
- Панель показывает это заранее: «N сейчас» — текущее число, «≈ M после» — исходное число, умноженное на процент ползунка. Воркер берёт ту же долю от числа индексов, кратно 3 и не меньше 12 индексов на меш, поэтому итог совпадает с прогнозом с точностью до округления. Меши меньше 100 треугольников не трогаются.
- Можно ли откатить упрощение модели?
- Да, двумя способами. Ctrl/Cmd+Z снимает запись «Упрощение сетки» из истории — со снимками геометрии до и после. А если поставить ползунок на 100% и снова применить, воркер не запускается: модель просто возвращается к исходной сетке, которая хранится отдельно с момента загрузки.
- Почему после упрощения пропала покраска или полость?
- Упрощение снимает с сетки все атрибуты, кроме координат, и пересобирает треугольники, так что слой покраски сохраняется только при совпавшем числе граней — иначе он пересоздаётся пустым. Состояние полости и дренажа после применения сбрасывается: их нужно применять заново, уже к упрощённой сетке.
- Что делать, если STL не упрощается или выходит «Превышено время операции»?
- Воркер живёт 120 секунд, после чего задача снимается с сообщением «Превышено время операции. Модель слишком детализирована.» — попробуйте больший процент. Если ничего не меняется, проверьте ползунок: при 100% воркер не стартует, а меши меньше 100 треугольников пропускаются. Без WebAssembly инструмент отвечает ошибкой прямо под панелью.