Triangulation и cubic mapping

Главные вкладки

40 сообщений [Последнее сообщение]

bac9i4mo

с mymodo 3020 дней
10
Голос за!
0
Голос против!

молодо зелено

Привет. Я переезжаю из ЛВ и мне многое не дает покоя.

Первое - триангуляция. У модо с триангуляцией сложных многоточечных поликов дела не лучше чем в ЛВ.

Но в ЛВ меня это никогда не парило, т.к. триангуляцию можно было легко пофиксить.
Я замечаю такие зоны в геометрии быстрее чем осознаю - привычка "выделить-смержить-потриплить" уже глубоко в моих рефлексах. Либо если ретрипл малых зон не помогает, я делаю ручной spin quad.

Но вручную крутить полики на ландшафте, либо на импорченной из макса геометрии - это слив времени. В LW есть отличный плаг - dxs_relax ((c) Dratov Denis), с его помощью такой процесс занимает минимум времени:

В модо и модофорумах колупаюсь второй день, ниче пока не нашлось.

Еще вопрос. Я плотно юзаю процедурные маппинги - cubic и planar. Это сокращает время затраченное на маппинг в 10 раз, учит делать правильные (power of 2) текстуры и вообще в ЛВ 10 лет назад другого маппинга и не было :)
Но чтобы это экспортнуть (в .fbx, например), нужно cubic маппинг запечь в UV. В LW это можно было делать тулом Texture Guide. А в modo как? Опять-таки, этот вопрос висит нерешенным второй день.

В общем, кто шарит, помогите, плз. Время ценю, пытаюсь итерации сократить до минимума, поэтому все по максимуму пытаюсь решить в одном пакете онли.

С триангуляцией не подскажу.

Запекать можно по разному. ПКМ на мапе > Bake to Texture - например.

Смотри видео

Автор

bac9i4mo

с mymodo 3020 дней
10
Голос за!
0
Голос против!

молодо зелено

Cubic mapping - это процедурные коорды. Мне нужно запечь их в чистый UV маппинг.

Пока на геометрии юзается Cubic/Planar mapping, у вертексов нет никакой UV-инфы, а экспортер в .fbx читает только значения UV.

Спасибо за ответ anyway. И за видосы спасибо. Пересматриваю их все для профилактики.

Я наверное не понял что требуется.

Если надо процедурную текстуру на Cubic/Planar запечь в текстуру с юв разверткой, то делается это так, как я написал выше.

Или что то другое надо запечь?

stepanio

с mymodo 3252 дня
606
Голос за!
0
Голос против!

Du meine Güte

 Какой хороший плагинчик. Другое дело: как ты умудрился забабахать этот геометрический беспридел?))

Автор

bac9i4mo

с mymodo 3020 дней
10
Голос за!
0
Голос против!

молодо зелено

13й, запечь нужно именно координаты. Другими словами, создать UV с такими же параметрами как в material editor'е. Пошагово я это делал бы так:

- выделить полик по материалу #1

- вырезать вставить (чтобы изолировать его вертексы от смежных поликов

- взять параметры текущего материала из material editor'а (mapping type, pos, rot, size)

- создать с этими параметрами UV

- поменять в материале тип маппинга с cubic на UV

- снять выделение, приступить к след материалу

Степанио, на фотке пример способностей плуга с сайта разработчика. :)

А если юв будет выглядеть не так, но краска ляжет ровно, т.е. просто перезапечь текстуру под новую развертку, нормальную, не планарную/кубиковую?

Не могу понять зачем такой гемор, если я вобще что то понял) Глянул кстати видео, не знаю по теме ли - www.youtube.com/watch

И называй вещи так как они в модо названы, а то понять трудно что ты имеешь ввиду - texture locator и projection type. Об этом речь?

И для чего юв именно с такими же параметрами?

Автор

bac9i4mo

с mymodo 3020 дней
10
Голос за!
0
Голос против!

молодо зелено

Похоже, нужно картинками объяснять, либо видосом :) Сразу уточню - тема по геймдеву. То есть, юзание неограниченных оффлайн ресурсов мне недоступны.

В общем, представь длинную стенку (20м длиной, 4м высотой), на ней висит материал, в материале есть текстура (из движка), текстура накладывается на геометрию через Projection type = Cubic с такими параметрами - size = (4m, 4m, 4m), pos = (0m, 2m, 0m). UV-информации у точек этой геометрии нет, то есть текстура на геометрию накладывается в реалтайме по кубику. Стенка этой текстурой будет затайлена 5 раз.

Все хорошо в modo, но это нужно экспортнуть в двигло. Экспортер .fbx не умеет читать такую привязку текстуры к точкам. На самом деле вообще нельзя говорить, что текстура как-либо привязана к точкам - ведь если их позиции модифицировать, маппинг будет оставаться в мировых координатах. В общем, экспортеру нужно помочь - описать этот самый Cubic Mapping через UV. Для этого достаточно посмотреть какие мапинг параметры у текстуры в Material Editor'e и заюзать их при создании UV. Это несложный шаг. Но таких стен у меня много - дома, целый левел, в общем-то. И материалов больше 50 штук. То есть, процесс переделки может спокойно сожрать минут 20. И самое важное, что такая переделка Cubic Mapping'а в UV нужна только для экспорта, а продолжать работу нужно с тем же cubic mapping'ом. Экспорт может происходить очень часто - до 30 раз в день. Чем больше времени жрет процесс экспорта, тем дольше итерации, и тем меньше их будет, и тем хуже качество и т.д.

stepanio

с mymodo 3252 дня
606
Голос за!
0
Голос против!

Du meine Güte

Чето я непойму в чем проблема и что куда надо печь? 

Когда-то я занимался подобной хренью.) Я думаю эта картинка тебе все объяснит.

don_vladimir

с mymodo 3521 день
135
Голос за!
0
Голос против!
Человек дела

Может Cubic в manual режиме у UV Projection Tool поможет?

don_vladimir

с mymodo 3521 день
135
Голос за!
0
Голос против!
Человек дела

 Во, блин, опоздал )

stepanio

с mymodo 3252 дня
606
Голос за!
0
Голос против!

Du meine Güte

 Конечно поможет. Поставь там свои 4м и иди за пивом))

 

)) если это поможет, тогда я со своими догадками вообще в другую сторону думал

пс: эх Люся, сдались тебе эти макароны...

Yuriy

с mymodo 3553 дня
169
Голос за!
0
Голос против!

просто Юра

GameDevSupermanЧеловек дела

Народ , вы не поняли что хочет человек . Давайте я попробую обьяснить.

Процедурнуй мапинг (cubic\planar ) который задается в texture locator\projection type . Он не создает UV map и накладывается процедурно в рилтайме . Прелесть в том , что если изменить геометрию - мапинг не покоцается ,он и  дальше будет накладыватся процедурно и не надо ничего перемапливать. Вопрос в том , как из его запечь\зафризить на Uv map .

Прожекшн тул это ручная работа , процедурный кубик автоматический . Для многих задач процедуры достаточно и это очень быстро.

Автор

bac9i4mo

с mymodo 3020 дней
10
Голос за!
0
Голос против!

молодо зелено

Yuriy четкий :)

stepanio

с mymodo 3252 дня
606
Голос за!
0
Голос против!

Du meine Güte

 Ага)) 

Автор

bac9i4mo

с mymodo 3020 дней
10
Голос за!
0
Голос против!

молодо зелено

Шо ага, проблема-то не решена :)

Надо писачить скрипт, короче.

mynglam

с mymodo 3266 дней
178
Голос за!
6
Голос против!
модонафтЧеловек дела

 Насчёт правильной триангуляции, пробую писать скрипт, давно ничего не писал для модо, уже все позабыл. Надеюсь много времени он не займет.

А вот за UV хз возьмусь ли, пока понятия не имею как там это реализуется, но мне и самому хотелось бы такой.

Автор

bac9i4mo

с mymodo 3020 дней
10
Голос за!
0
Голос против!

молодо зелено

Круто, круто! Раз уж делать свое, то можно попробовать связаться с Дратовым Денисом. Его алгоритм на практике оказался лучше всех.

Кусочек из истории. До 2000г в ЛВ был ужасный триангулятор, хуже чем нынешний в модо. Потом где-то в 6й версии они начали писать об апгрейдах, но на практике это не ощущалось. Действительно крутой апгрейд вышел с 7й версией. Триангулятор ЛВ практически перестал вылезать за баунды, хорошо предиктил площади треугольников и принимал решения однозначно (при повторных триангуляциях получался одинаковый результат, чего не было раньше). Но потом я нашел плагин Дратова (который тоже обновлялся) и он у меня сразу попал на шорткат около Shift+T. В общем, алгоритм модо 501 сейчас где-то на уровне 6й версии. За баунды не лезет, но наплевательски относится к площадям трисов. См картинку с тестом:

ыч

 

А насчет конверта кубик маппинга в UV - по-моему, это проще триангуляции. Нужно собрать список материалов открытой модели и к каждой применить цикл проверки типа маппинга в material editor'е (если UV, то skip material) и переноса пропертей маппинга в создание UV для полигонов с этим материалом.

mynglam

с mymodo 3266 дней
178
Голос за!
6
Голос против!
модонафтЧеловек дела

 Написал умную триангуляцию, правда в одну итерацию, там замуты с рёбрами, если их вращать то их индексы меняются. Просто если результат не шибко удовлетворяет нужно повторить операцию.

dl.dropbox.com/u/446966/Modo/MyScripts/SmartTriangulate.pl

 

Насчет второго скрипта тоже подумаю, но ничего не обещаю.

dropbox плохо работает как то, загружай сразу на сайт в раздел скриптов в пресеты.

mynglam

с mymodo 3266 дней
178
Голос за!
6
Голос против!
модонафтЧеловек дела

 Ок, надеюсь там можно будет править пост, я его еще дорабатывать буду.

mynglam

с mymodo 3266 дней
178
Голос за!
6
Голос против!
модонафтЧеловек дела

 Дабавил скрипт Smart Triangulation, кому нужно ищите в пресетах.

alextango

с mymodo 3494 дня
522
Голос за!
0
Голос против!

modo as sex and love

GuildMyModoМедаль ТролляПлюсПлюс_2Человек дела

mynglam

с mymodo 3266 дней
178
Голос за!
6
Голос против!
модонафтЧеловек дела

 Всё отлично работает.

alextango

с mymodo 3494 дня
522
Голос за!
0
Голос против!

modo as sex and love

GuildMyModoМедаль ТролляПлюсПлюс_2Человек дела

http://img197.imageshack.us/img197/1600/line67.jpg тут мессаг ошибки на m501 sp4 

mynglam

с mymodo 3266 дней
178
Голос за!
6
Голос против!
модонафтЧеловек дела

 Не может получить ID item'a, видимо потому что ты в режиме выделения полигонов.

Там нужно сначало выделить один итем объект, потом второй итем который с кривой.

И к тому же ты включил Fill by Spacing и Fill by Number одновременно, это не есть гуд.

mynglam

с mymodo 3266 дней
178
Голос за!
6
Голос против!
модонафтЧеловек дела

 Скрипт с триангуляцией обновил. Добавил итерации, прогресс бар и пофиксил работу с поликами.

mynglam

с mymodo 3266 дней
178
Голос за!
6
Голос против!
модонафтЧеловек дела

Сделал запекание локаторов в UV карту: http://mymodo.ru/preset/locators2uv

Но есть небольшие баги в самом модо:

1 и 2. При сферическом и цилиндрическом наложении локаторы тупят, а вот внизу в UV всё отлично спроецировалось.

3. Там наложение Cubic, есть небольшое различие от локатора, но на цилиндрические поверхности вообще конечно лучше не накладывать такие проекции.

Левая часть кольца с наложением Solid, он не запекся, я его не стал поддерживать, потому что хз как он себя поведёт, хоть и выглядит как Cubic наложение.

Yuriy

с mymodo 3553 дня
169
Голос за!
0
Голос против!

просто Юра

GameDevSupermanЧеловек дела

Спс за скрипт .

Работает .

На счет кубика . Он не правильно мапит верхние полики .Прикол модо .Для теста , взять обычный куб . Сделать ему ув-прожекшн \кубик . И потом щелкать тип прожекшина с кубик на УВ . Будет видно что мапинг другой . Это все лечится разворотом процедурного кубика на 180 по Y . Можно в скрипт  , для случая с кубиком , добавить разворот ?

mynglam

с mymodo 3266 дней
178
Голос за!
6
Голос против!
модонафтЧеловек дела

Ага посмотрю, надо было на кубике проверить отдельно.

mynglam

с mymodo 3266 дней
178
Голос за!
6
Голос против!
модонафтЧеловек дела

 Да посмотрел, накладывает не правильно, но при поекции UV поворот херит боковые грани, хотя в локаторах они остаются неизменны. Пробовал разные варианты, лишь один сработал: задать в локатореповорот по Y 180 и в скрипте потом вращать еще на 180 и умножать X и Z size на -1. Но это слишком частный случай. Конечно можно в скрипте отдельно искать горизонтальные полики и накладывать на них отдельно планар с поворотом в 180, но придется сильно усложнить скрипт и как то лень для такой не первой необходимости фичи заморачиваться.

На самом деле стоило бы дать волшебный пендель разработчикам Modo за то что они по идиотски считают проекции локаторов. Они не совпадают с projection UV. В баг репорт это бы стоило записать.

При чем дело даже не в cubic, как я показывал цилиндрические и сферические тоже черезжопные, походу они со старых версий даже не правили это дело.

Пока только могу посоветовать на горизонтальные класть планар.

Автор

bac9i4mo

с mymodo 3020 дней
10
Голос за!
0
Голос против!

молодо зелено

Сори, я был в плотной загрузке неделю, работал вне модо :)

Я заюзал триангуляцию пока только. mynglam, ты дико крут. Спасибо! Результ в разы лучше чем модовский, мне нравится что он работает и с трисами и с н-гонами. Но есть несколько пожеланий:

- После работы скрипта не сбрасывать выделение. Это позволит быстро повторить операцию, если результа оказалось недостаточно. Да и будет вписываться в стандарт модо-инструментов (после применения тулов выделение не ресетится).

- Для пар полигонов нужна доп проверка на сбалансированность их площадей. На картинке внизу результат текущих правил - минимальная общая площадь полигонов + минимальная длина общего эджа. Но геометрия была бы лучше, если бы выделенные эджи были повернуты. Я думаю, что это можно решить подобрав порог соотношения площадей пары поликов и в случае превышения делать повторный spin. Предполагаю, что это примерно 1/5. Но хз, надо подбирать.

1/5

Спасибо еще раз за контрибуцию, это действительно крутая помощь. Надеюсь на саппорт :)

mynglam

с mymodo 3266 дней
178
Голос за!
6
Голос против!
модонафтЧеловек дела

Пожалуйста. Я рад если нравится и работает.

1. Выделение поликов легко восстановить, а вот с ребрами хз, особенно если там есть н-гоны, но я посмотрю что можно сделать.

2. Думал про площади, но не хотелось усложнять вычисления, потому что скрипт и так медленный. В принципе можно сделать, с коэффициентом только надо определиться.

mynglam

с mymodo 3266 дней
178
Голос за!
6
Голос против!
модонафтЧеловек дела

 Обновил скрипт, пробуй.

Автор

bac9i4mo

с mymodo 3020 дней
10
Голос за!
0
Голос против!

молодо зелено

Потестил скрипт, вот результы:

http://i.piccy.info/i5/96/16/1901696/smartri.jpg

Результат прикольный, но у верхней фигуры в правом нижнем куске есть пара, которую хочется покрутить. А у бублика остался один очень узкий треугольник и одна пара вывернулась.

Вот таже геометрия в LW под плагом Дратова:

Ням очень. Там юзается Триангуляция Делоне. Принцип алгоритма - максимально увеличить угол между эджами.

Я пробовал подбирать коэфф в сравнении площадей, попробовал без куска проверки на увеличение площади. И в какой-то момент у меня получился бублик с красивой триангуляцией. Я обрадовался, ы, но нифига. Это не повторилось при запуске скрипта на изначальной геометрии с большим кол-вом повторов (итераций, запущенных вручную). Дальнейшие тесты выявили, что финальный результат триангуляции зависит от стартового состояния и процесса.

В общем, результат версии 1.1 крутой - она решает большую часть проблем, после нее нужно только немного руками подфиксить. Смутил только вывернутый полигон. Ведь по правилу "увеличилась площадь пары поликов -> spin" такое не должно было произойти. М?

Trilobyte

с mymodo 3551 день
1512
Голос за!
2
Голос против!

Беспощадный кошкодав.

Luxology GalleryMrBigМоделлер. Лучший в своем роде.

Привереда.

mynglam

с mymodo 3266 дней
178
Голос за!
6
Голос против!
модонафтЧеловек дела

Обновил скрипт, немного поменял алгоритм, но до Делоне ему далеко.

Исправил ошибку с выворачиванием ребра.

Автор

bac9i4mo

с mymodo 3020 дней
10
Голос за!
0
Голос против!

молодо зелено

Trilobyte wrote:

Привереда.

Че, это ж багрепорт :)

Trilobyte

с mymodo 3551 день
1512
Голос за!
2
Голос против!

Беспощадный кошкодав.

Luxology GalleryMrBigМоделлер. Лучший в своем роде.

Вот именно. Я бы эти нюансы к багам не причислял :)