PyMeshLab — скрипт фильтра целевой длины и абс — изотропное явное повторное построение сетки
Я хотел бы изменить свою модель, используя фильтр под названием «Повторное создание сетки: изотропное явное повторное создание сетки». В этом фильтре я хотел бы настроить целевую длину. Существует два типа целевой длины: абс и %. Но в сценарии фильтра, доступном в PyMeshLab, есть только сценарий фильтра для целевой длины в процентах. Я не хочу настраивать процент, так как хочу применить один и тот же сценарий для моделей разного размера, где целевая длина абс (в формате мировых единиц) сделает более похожей длину края, а не форму %.
Могу ли я в любом случае написать скрипт для целевой длины в форме абс?
1 ответ
Я думаю, что документация для remeshing_isotropic_explicit_remeshing не очень понятна. Я предполагаю, что вы используете текущую версию pymeshlab (21.10)
если вы передаете значение с плавающей запятой в качестве параметра, оно должно интерпретироваться как абсолютное значение. Вы можете заставить это поведение использовать аргументы типа
pymeshlab.AbsoluteValue(x)
. Если вам нужно интерпретировать аргументы как процентное значение, используйте
pymeshlab.Percentage(x)
. Вы можете найти пример здесь
import pymeshlab
ms = pymeshlab.MeshSet()
ms.load_new_mesh('bunny10k.ply')
#Apply absolute value 3 as argument
ms.remeshing_isotropic_explicit_remeshing(targetlen = pymeshlab.AbsoluteValue(3))
ms.save_current_mesh('output1.ply')
ms.load_new_mesh('bunny10k.ply')
#Apply percentage 3% as argument
ms.remeshing_isotropic_explicit_remeshing(targetlen = pymeshlab.Percentage(3))
ms.save_current_mesh('output2.ply')