Автор Тема: Получить проекцию меша (силует)  (Прочитано 7356 раз)

Оффлайн Grohot

  • Житель
Получить проекцию меша (силует)
« : 13 Февраль 2016, 14:42:25 »
Есть относительно сложный меш с кучей полигонов.
Необходимо получить например силуэт проекции например вида сверху.
То есть на выходе получить контур и всего один заполняющий его полигон.

Можно пытаться вычистить все руками delete (очень долго, нудно и неудобно).
Можно сделать срез нужной проекции (разом выделить все вершины и массово удалить, но остается все равно много мелких деталей, которые потом надо подчищать).
Но даже когда выделяем контур силуэта, не всегда отрабатывает клавиша F, чтобы залить этот силуэт полигоном, видимо требует более мелкого разбиения или что-то не так с контуром.

Оффлайн sandman

  • Житель
Re: Получить проекцию меша (силует)
« Ответ #1 : 13 Февраль 2016, 15:19:47 »
Для  старого блендера 2.4х был такой плагин- pantograph, с ним можно было делать проекции в svg.
Как это в 2.7х делается... ? ???

Оффлайн sungreen

  • ...
  • Житель
  • Kostroma mon amour
    • sungreen.github.io
Re: Получить проекцию меша (силует)
« Ответ #2 : 13 Февраль 2016, 15:44:31 »
... можно добавить плоскость с модификатором Boolean ...
... крышка полученной фигуры будет требуемым результатов ...
Для Кота

Оффлайн Grohot

  • Житель
Re: Получить проекцию меша (силует)
« Ответ #3 : 13 Февраль 2016, 16:12:42 »
... можно добавить плоскость с модификатором Boolean ...
... крышка полученной фигуры будет требуемым результатов ...
Отличный вариант, но реализация не выходит пока - меш представляет собой тоже плоскость, только выгнутую (например, полая полусфера).
И когда делаешь Boolean, не выходит "крышка" ), на цельнотелом получается нормально.

Оффлайн Samovar

  • Житель
Re: Получить проекцию меша (силует)
« Ответ #4 : 13 Февраль 2016, 17:22:11 »
Цитировать
Можно сделать срез нужной проекции
А как срез делаешь? С помощью Knife -> Z ?
Попробуй Knife Project этого сечения на плоскость типа Grid.
« Последнее редактирование: 13 Февраль 2016, 17:27:08 от Samovar »

Оффлайн Grohot

  • Житель
Re: Получить проекцию меша (силует)
« Ответ #5 : 13 Февраль 2016, 18:56:45 »
А как срез делаешь? С помощью Knife -> Z ?
Попробуй Knife Project этого сечения на плоскость типа Grid.
Нет, в режиме редактирования жму B, выделяю все вершины выше нужной плоскости и удаляю.
Получается почти что надо, потом приходится чистить еще вершины по периметру, чтобы остался контур только из одной линии.
И потом на некоторых мешах даже отрабатывает F (создается полигон, но на некоторых нет).
Knife Project не знаю что это. Жму просто K->Z (при этом не заметил, чтобы Z влияло на то, чтобы разрез был в одной плоскости), ну и так придется пройти по кругу, тоже не очень удобно однако.

Оффлайн sungreen

  • ...
  • Житель
  • Kostroma mon amour
    • sungreen.github.io
Re: Получить проекцию меша (силует)
« Ответ #6 : 13 Февраль 2016, 18:58:59 »
>> например, полая полусфера
... и в чём проблема её закрыть!? ...
Для Кота

Оффлайн Samovar

  • Житель
Re: Получить проекцию меша (силует)
« Ответ #7 : 13 Февраль 2016, 20:11:02 »
Для  старого блендера 2.4х был такой плагин- pantograph, с ним можно было делать проекции в svg.
Как это в 2.7х делается... ? ???
Хороший вопрос. Вот чего нарыл: https://github.com/hvfrancesco/freestylesvg

Оффлайн HomoSapientior

  • Житель
Re: Получить проекцию меша (силует)
« Ответ #8 : 16 Февраль 2016, 13:12:12 »
А если так попробовать
1 Применяем Rotation & Scale (Ctrl+A) если были изменения
2 Делаем Scale по Z до 0, снова применяем Scale
3 В режиме редактирования выделяем все, далее Alt+E Edges Only по Z
4 Снимаем выделение, в режиме выделения граней выделяем все боковые грани с помощью B или C, что теперь несложно
5 Копируем выделенное, отделяем в другой объект
6 Делаем Scale по Z до 0, получается контур
« Последнее редактирование: 16 Февраль 2016, 13:17:30 от HomoSapientior »

Оффлайн solonmaun

  • Житель
Re: Получить проекцию меша (силует)
« Ответ #9 : 17 Февраль 2016, 08:50:39 »
вроде FreeStail рендером можно силуэт экспортировать

Оффлайн Samovar

  • Житель
Re: Получить проекцию меша (силует)
« Ответ #10 : 17 Февраль 2016, 17:05:48 »
HomoSapientior, попробовал твой метод, но делал маленько по иному. Если интересно, то опишу пошагово. Принцип рабочий, но увы, только для простых объектов. Экспериментировал твоим методом с профилем модели Сюзанны. Долго и муторно выделять выдавленные из рёбер грани... Хотя, метод работает и создаёт силуэт.
Ещё один вариант:
1. рендер чёрного силуэта модели на белом фоне (чёрный Shadeless материал у модели и ракурс орографической камерой)
2. сохранение рендера в .PNG без прозрачности
3. трассировка с помощью  InkScape  в кривые и сохранение в .SVG
4. импорт .SVG в Blender
5. конвертирование кривых в полигоны {Alt+C} -> {Tab}->выделить всё->{X}-> Dissolve Faces

Ранее предложенные методы с помощью Boolean и Knife хорошо подходят для получения сечений и разрезов, но не для получения силуэта модели.

Оффлайн HomoSapientior

  • Житель
Re: Получить проекцию меша (силует)
« Ответ #11 : 18 Февраль 2016, 11:02:26 »
HomoSapientior, попробовал твой метод, но делал маленько по иному. Если интересно, то опишу пошагово.
Интересно, опиши. У меня получается легко и быстро, но теперь вижу, что у сюзанны силуэт выходит дефектный.

mr.A

  • Гость
Re: Получить проекцию меша (силует)
« Ответ #12 : 18 Февраль 2016, 15:25:13 »
Еще можно shrinkwrap-ом сплющить меш. А дальше, что-то фантазий нет.

Оффлайн Samovar

  • Житель
Re: Получить проекцию меша (силует)
« Ответ #13 : 18 Февраль 2016, 15:35:24 »
mr.A, ну а дальше удалить все грани, оставив рёбра и вершины, сварить дубли вершин, и действовать по методу HomoSapientor (дополнительно сделав самопересечение граней после выдавливания)
П.С.Перед проецированием надо обязательно триангулировать модель.

Оффлайн Samovar

  • Житель
Re: Получить проекцию меша (силует)
« Ответ #14 : 19 Февраль 2016, 01:17:13 »
Цитировать
Интересно, опиши.



Делал примерно так:
  • Добавляем модель Сюзанны
  • Входим в режим режим редактирования: {Tab}
  • Переходим в режим редактирования вершин: {Ctrl+Tab}->Vertex
  • Выделяем всё: {A}
  • Триангулируем модель: {Ctrl+T}
  • Удаляем только грани: {X}->Only Faces
  • Масштабируем модель вдоль оси X: {S}{X}{0}{Enter}
  • Удаляем дубликаты вершин: {W}->Remove Doubles
  • Выдавливаем по оси X: {E}{X}{2}{Enter}
  • Выделяем всё: {A}{A}
  • Делаем самопересечение граней модели: {Ctrl+F}->Intersect->{F6}->Source:Self Intersect и убираем галку с Separate
  • Снимаем выделение: {A}
  • Переходим в режим затенения в 3d-виде Solid и режим выделения граней: {Ctrl+Tab}->Faces и включаем непрозрачность для выделений (первая кнопка справа от кнопки режима редактирования граней в меню 3d-вида)
  • Аккуратно выделяем внешние грани модели с помощью методов {C},{B} и {Ctrl+ЛКМ}. Это самая ответственная и долгая операция
  • Дублируем выделение куда-нибудь, и создаём из него новый объект: {Shift+D}, {P}->Selection
  • Переходим к редактированию этого нового объекта
  • Выделяем всё: {A}
  • Удаляем только грани: {X}->Only Faces
  • Переходим в режим редактирования вершин: {Ctrl+Tab}->Vertex
  • Выделяем всё: {A}
  • Масштабируем модель вдоль оси X: {S}{X}{0}{Enter}
  • Удаляем дубликаты вершин: {W}->Remove Doubles
  • Если есть разрывы в контуре, то вручную замыкаем контур с помощью выделения пары вершин концов разрыва и {F}, или переделываем заново начиная с пункта 14
  • Если контур вогнутый (а в данном случае так и есть), то желательно его разбить на выпуклые части, так же попарно выделяя вершины и соединяя их рёбрами с помощью {F}
  • Далее, выделяем всё: {A}{A}
  • Создаём грани, нажав {F}
  • Если надо, то упрощаем грани в один полигон: {X}-> Dissolve Faces
Можно также предварительно получить проекцию модели способом, который предложил mr.A, а далее по пунктам, заменив  в операциях масштабирования и выдавливания ось X на ось Z...


Всё-таки думаю, что для получения силуэта сложной модели, лучше использовать совместную работу с InkScape. Могу портянку с комментариями сделать из скриншотов, если это нужно.