
^ Начало
Как это работает - в редакторе UV развёртки выбираем остров, для которого есть аналогичная развёртка (например симметричную часть объекта - это самый распространённый вариант, но не единственный). Нажимаем Copy, выбираем аналогичный остров - нажимаем Paste. Результат - UV развёртка островов занимает одну и ту же поверхность и UV координаты аналогичных точек одинаковы.
Реализация - обойти меш и получить UV координаты всех вертексов не проблема.
Скопировать координаты нужного острова и вставить в нужные вертексы другого - вот здесь нужна ваша помощь. Вопрос - как реализовать нужный порядок вершин для обхода списка или скажем по другому, от каких точек отталкиваться - в принципе можно было бы руками их указать, но это замедляет работу и у оригинала этого также не происходит.
Буду признателен за любые наводки и советы.
Copy/paste UV островов
Очень понравился этот инструмент в 3D Coat. Есть желание реализовать аналогичный в виде плагина для блендера.Как это работает - в редакторе UV развёртки выбираем остров, для которого есть аналогичная развёртка (например симметричную часть объекта - это самый распространённый вариант, но не единственный). Нажимаем Copy, выбираем аналогичный остров - нажимаем Paste. Результат - UV развёртка островов занимает одну и ту же поверхность и UV координаты аналогичных точек одинаковы.
Реализация - обойти меш и получить UV координаты всех вертексов не проблема.
Скопировать координаты нужного острова и вставить в нужные вертексы другого - вот здесь нужна ваша помощь. Вопрос - как реализовать нужный порядок вершин для обхода списка или скажем по другому, от каких точек отталкиваться - в принципе можно было бы руками их указать, но это замедляет работу и у оригинала этого также не происходит.
Буду признателен за любые наводки и советы.
Вот пример развёртки, на которой мы видим что у нас есть 3 пары одинаковых островов. И мы хотим для максимализации использования текстурного пространства, переместить каждую пару в одно пространство.
Надеюсь что объяснил доступно. Люди много работающие с развёрткой меня поймут, так как приходится руками совмещать острова, а при наличии множества одинаковых островов, это занимает достаточное количество времени.
Надеюсь что объяснил доступно. Люди много работающие с развёрткой меня поймут, так как приходится руками совмещать острова, а при наличии множества одинаковых островов, это занимает достаточное количество времени.
Итак, дорогие друзья я рад представить вам плагин, который делает достаточно простое, но полезное действие. А именно копирует координаты одного острова UV-развёртки, в координаты другого. Похожий функционал вы возможно встречали в таком ПО как 3DCoat. Зачем это нужно, я думаю понятно из предыдущей картинки, а также из приложенного видео.
Демо видео плагина можно посмотреть здесь - http://www.youtube.com/watch?v=vNyUDn76ntI
Через некоторое вермя ссылочки на сам плагин я выложу здесь на сайте.
Я думаю лоу-поли моделеры его оценят.
Демо видео плагина можно посмотреть здесь - http://www.youtube.com/watch?v=vNyUDn76ntI
Через некоторое вермя ссылочки на сам плагин я выложу здесь на сайте.
Я думаю лоу-поли моделеры его оценят.
На видео показаны острова идентичные друг другу. Если взять один остров отразить в нужную сторону и прилепить магнитом то ведь будет тоже самое. Скажи а если 2 острова разной формы но одинаковые по содержанию то сработает ли копи паст?
Главное чтобы острова были идентичными по сути (если залезать в глубь, то графы которые представлены двумя островами должны быть изоморфны). А если по проще, то главное что бы эти острова были из равного количества вершин и граней и совпадала принадлежность вершин рёбрам. Ну например для этой развёртки не проблема скопировать острова друг в друга. С магнитом пришлось бы возиться отдельно с каждой вершиной.
Дорогие друзья, прошу вашего участия в тестировании.
Как установить плагин я описал здесь - onesteptospace.blogspot.com/20...nder-uv-island-copy-paste.html
На все вопросы буду стараться отвечать по мере возможности. Пробуем, не стесняемся и пишем в комментариях как всё прошло. Мне важны ваши отзывы.
Как установить плагин я описал здесь - onesteptospace.blogspot.com/20...nder-uv-island-copy-paste.html
На все вопросы буду стараться отвечать по мере возможности. Пробуем, не стесняемся и пишем в комментариях как всё прошло. Мне важны ваши отзывы.
INeedMySpaceа , спасибо! А если два острова будут не симметричны, но по форме похожие и одинаковые по количеству полигонов, оно так же хорошо вставит скопированное в другой остров?
graphite, если у тебя Windows x64, то на неё можно поставить Blender 32bit и под него попробовать плагин. Я для винды его так и тестировал.
hikkikamori, острова должны быть идентичны по своей структуре, т.е. я там выше писал
> главное что бы эти острова были из равного количества вершин и рёбер и совпадала принадлежность вершин рёбрам
Если количество вершин, рёбер и принадлежность рёбер вершинам совпадают, то форма похожа, это как раз и получается различные варианты "симметричности", "зеркальности". Если я тебя правильно понял.
Приведи пожалуйста пример - я тогда смогу сказать более точно.
hikkikamori, острова должны быть идентичны по своей структуре, т.е. я там выше писал
> главное что бы эти острова были из равного количества вершин и рёбер и совпадала принадлежность вершин рёбрам
Если количество вершин, рёбер и принадлежность рёбер вершинам совпадают, то форма похожа, это как раз и получается различные варианты "симметричности", "зеркальности". Если я тебя правильно понял.
Приведи пожалуйста пример - я тогда смогу сказать более точно.
INeedMySpaceа, какие файлы копировать в ~/.config/blender/2.64/scripts/addons/modules ?
Прикреплён файл:
python%2Digraph.txtvknw123, не опасен, большую часть там занимает библиотека python-igraph (работа с графами).
Я понял у тебя прошло немного криво (судя по картинке)? Скинь мне пожалуйста бленд файл - буду разбираться.
Я понял у тебя прошло немного криво (судя по картинке)? Скинь мне пожалуйста бленд файл - буду разбираться.
hikkikamori, &&& - папку igraph из /usr/local/lib/python3.1/dist-packages/ (в других дистрибутивах она может быть в site-packages) копируй в папку scripts/addons/modules (например у меня в OpenSuSE это в домашней папке ~/.config/blender/2.64/scripts/addons/modules/)
Файл с кубиком, действие применено.
Прикреплён файл:
unun.blendINeedMySpace, это я и делал, но всё равно не запускалась ... т.е. не могу активировать твой аддон по следующей причине :
ImportError: /home/hikkikamori/.config/blender/2.64/scripts/addons/modules/ig raph/_igraph.so: undefined symbol: PyUnicode_CompareWithASCIIString
В питоне не разбираюсь, но возможно из-за того, что у меня стоит 3.1, а не 3.2, хотя не знаю
ImportError: /home/hikkikamori/.config/blender/2.64/scripts/addons/modules/ig raph/_igraph.so: undefined symbol: PyUnicode_CompareWithASCIIString
В питоне не разбираюсь, но возможно из-за того, что у меня стоит 3.1, а не 3.2, хотя не знаю

> если у тебя Windows x64, то на неё можно поставить Blender 32bit и под него попробовать плагин. Я для винды его так и тестировал
не у меня 32 битная винда, просто пока моделил и текстурил на статичные картинки( не шибко экономил на развёртках), и всегда учитвывал развёртки ещё в процессе моделирования. хотя я знаю, что такой плаг мне точно пригодится в будущем, и очень благодарен за его написание.
не у меня 32 битная винда, просто пока моделил и текстурил на статичные картинки( не шибко экономил на развёртках), и всегда учитвывал развёртки ещё в процессе моделирования. хотя я знаю, что такой плаг мне точно пригодится в будущем, и очень благодарен за его написание.
Разобрался с "багом" найденным vknw123. Оказалось всё немного сложнее.
В своих тестах я везде использовал "замкнутый" шов и при этом все вертексы внутри острова получаются уникальные. В случае же "открытого" шва вертекс и примыкающая к нему грань получаются дублированными (как бы разрезанные пополам) - в этом случае плагин даёт не правильный результат. При этом я пока не очень хорошо представляю как логически разделить эти вершины (ну разделить их можно основываясь на UV координатах) и построить матрицу(или список) смежности для этих вершин.
Буду разбираться дальше.
Плагин можно использовать в реальной работе с указанными выше ограничениями. (К моему сожалению, они пока достаточно серьёзные, так как большинство техник развёртки подразумевает "открытые" швы)
В своих тестах я везде использовал "замкнутый" шов и при этом все вертексы внутри острова получаются уникальные. В случае же "открытого" шва вертекс и примыкающая к нему грань получаются дублированными (как бы разрезанные пополам) - в этом случае плагин даёт не правильный результат. При этом я пока не очень хорошо представляю как логически разделить эти вершины (ну разделить их можно основываясь на UV координатах) и построить матрицу(или список) смежности для этих вершин.

Плагин можно использовать в реальной работе с указанными выше ограничениями. (К моему сожалению, они пока достаточно серьёзные, так как большинство техник развёртки подразумевает "открытые" швы)

БлендерУкраина © 2016 Дмитрий Корбут