Автор Тема: Как массово объединить (Merge) уже совпадающие вершины, не перетаскивая их?  (Прочитано 8468 раз)

Оффлайн ice99

  • Житель
Есть 2 части одного меша, которые "соприкасаются" допустим 100 вершинами.
Нужно объединить их в одну часть.
Вроде бы всё просто, выделить 200 вершин, дальше W и "remove doubles"
Остаётся 100 вершин, и всё в порядке.
ОДНАКО
Такое объединение непредсказуемо поступает с вертексными нормалями (если нормали вершин не совпадают -  Blender их интерполирует), что нежелательно.
Обе нормали при объединении сохраняет Merge (Alt-M), однако Merge-м получается объединять только пары (совпадающие) вершин.
Если поставить опцию "Автоматическое объединение вершин" - всё работает, но чтобы вершины объеденились, нужно подвигать либо одну, либо другую часть сетки.

Как это сделать без движения?
« Последнее редактирование: 11 Октябрь 2016, 21:39:38 от ice99 »

Оффлайн sungreen

  • ...
  • Житель
  • Kostroma mon amour
    • sungreen.github.io
>> ОДНАКО
... а если пересчитать нормали?! не помогает? ...
Для Кота

Оффлайн ice99

  • Житель
>> ОДНАКО
... а если пересчитать нормали?! не помогает? ...
Нет, в том то и дело, мне нужны МОИ нормали, а не "пересчитанные". А править потом 200 нормалей - ну уж нет.

Оффлайн sungreen

  • ...
  • Житель
  • Kostroma mon amour
    • sungreen.github.io
... покажи, как выглядят ТВОИ нормали? каким образом ты их задаёшь?  ...
... самому хотелось бы больше понять про пользовательские нормали, но пока из найденного на околотакуюжетему
https://www.youtube.com/watch?v=oAGEGBulzSU
Для Кота

Оффлайн ice99

  • Житель
... покажи, как выглядят ТВОИ нормали? каким образом ты их задаёшь?  ...
... самому хотелось бы больше понять про пользовательские нормали, но пока из найденного на околотакуюжетему
https://www.youtube.com/watch?v=oAGEGBulzSU

Ну смотрите, 2 плоскости

         |_________|      - на одной (горизонтальной) нормали вверх

          _
         |
         |
         |                 - на другой (вертикальной) нормали вправо (что абсолютно разумно)
         |_

Если попытаться объединить плоскости вот так:

          |_________|_
                              |
                              |
                              |
                              |_

То "remove doubles" делает в месте стыка плоскостей ОДНУ нормаль   под 45 градусов      _ /
                                                                                                                                                      |
А Merge сохраняет обе нормали.
                                                                                                                           
         

Оффлайн sungreen

  • ...
  • Житель
  • Kostroma mon amour
    • sungreen.github.io
>> А Merge сохраняет обе нормали.
... покажи картинку, у меня после  merge точки объединяются и остаётся одна нормаль ...
Для Кота

Оффлайн ice99

  • Житель
>> А Merge сохраняет обе нормали.
... покажи картинку, у меня после  merge точки объединяются и остаётся одна нормаль ...
см. вложение.
На рисунке 8 вершин и 16 нормалей. (у каждой вершины 2 нормали).
На самом деле, у вершины м.б. столько нормалей, сколько соседних граней.

Оффлайн sungreen

  • ...
  • Житель
  • Kostroma mon amour
    • sungreen.github.io
>> На самом деле, у вершины м.б. столько нормалей, сколько соседних граней.
... как этого добиться? непонятно, на практике с таким не сталкивался, поясни или выложи модель с кубиком ...
Для Кота

Оффлайн sungreen

  • ...
  • Житель
  • Kostroma mon amour
    • sungreen.github.io
... исходя из описания api:  normal - это Vertex Normal Type:float array of 3 items in [-1, 1], default (0.0, 0.0, 0.0) ...
... то есть один набор из трех чисел ...
https://www.blender.org/api/blender_python_api_2_78_release/bpy.types.MeshVertex.html#bpy.types.MeshVertex
Для Кота

Оффлайн ice99

  • Житель
>> На самом деле, у вершины м.б. столько нормалей, сколько соседних граней.
... как этого добиться? непонятно, на практике с таким не сталкивался, поясни или выложи модель с кубиком ...

https://www.blend4web.com/doc/ru/normal_editor.html

https://www.blend4web.com/doc/ru/_images/split_normals.gif

там же ссылка на видеоуроки

Оффлайн sungreen

  • ...
  • Житель
  • Kostroma mon amour
    • sungreen.github.io
... информация об этих нормалях (которые формируются и отрисовываются b4w) идёт поверх данных стандартной модели ...
... то есть управление ими целиком осуществляется на уровне b4w и логично было бы задать этот вопрос на тамошнем форуме и(или) высказать своё предложение по доработке ПО ...
Для Кота

Оффлайн sungreen

  • ...
  • Житель
  • Kostroma mon amour
    • sungreen.github.io
... в стандартной модели blender у вершин по одной нормали и на них не влияют нормали, формируемых в b4w ...
Для Кота

Оффлайн solonmaun

  • Житель
Для таких вещей есть модификатор Edge Split.
Или можно вручную помечать острые рёбра, через меню рёбер если модель достаточно сложная. И использовать совместно с автосглаживанием.

Оффлайн solonmaun

  • Житель
Вот, сначала выделяем нужные рёбра потом помечаем.  ;)

Оффлайн ice99

  • Житель
Вот, сначала выделяем нужные рёбра потом помечаем.  ;)
Да, так и приходится делать.
А кстати, можно ли потом убрать значок "sharp edge" с ребра, оставив его несглаженным?
Не отключить отображение "sharp edge" а убрать его с ребра, оставив на ребре 2 независимы нормали (которые и делают его "sharp") .

 


Яметрика

* По форуму

* Рекламный блок

* Последние вложения

1 (1).png
Скачано: 190
Автор: LEXA ANЭGROWND
blender.png
Скачано: 223
Автор: ipv2007
4.png
Скачано: 242
Автор: hiroyukiss
2.png
Скачано: 259
Автор: hiroyukiss

Скачано: 279
Автор: Dilifa12