Войти
ПрограммированиеФорумОбщее

TexturePacker optimizing sprite meshes (2 стр)

Страницы: 1 2
#15
10:44, 3 ноя. 2016

Bishop
важно не кол-во трианглов, а от (площадь*вес1 + кол-во трианглов*вес2) где веса подбираются в больше степени интуитивно и зависят от нагрузки на пиксельные/вершинные блоки видюхи.


#16
6:37, 4 ноя. 2016

MrShoor
> Любой полигон триангулируется с помощью N-2 треугольников за конечное время.
> Это минимальное кол-во треугольников.
Значит я что-то напутал.

#17
7:38, 4 ноя. 2016

Aroch
> важно не кол-во трианглов, а от (площадь*вес1 + кол-во трианглов*вес2) где веса
> подбираются в больше степени интуитивно и зависят от нагрузки на
> пиксельные/вершинные блоки видюхи.
А это уже триангуляция Делоне.

#18
16:49, 4 ноя. 2016

Меня больше интересовал вопрос как они строят полигон для картинки

#19
17:41, 4 ноя. 2016

IROV..
> Меня больше интересовал вопрос как они строят полигон для картинки
думаю находят все точки по перимертру(прозрачные, но граничат с непрозрачной частью картинки)
потом выкидывают часть точек, которые к примеру находятся на одном прямом отрезке или около него
что останется - триангулируют

#20
17:45, 4 ноя. 2016

leonardo98
это же элитарный клуб, и "капитаны очевидности, и адмералы яень *уй" тут не рады :)

#21
18:17, 4 ноя. 2016

IROV..
> Меня больше интересовал вопрос как они строят полигон для картинки
Мне кажется строят они его через marching squares.
Ну а далее экспандят на N пикселей, и строят упрощенный полигон, выкидывая часть вершин так, чтобы отклонение не превышало N.

#22
18:30, 4 ноя. 2016

MrShoor
Это уже интересней, но все же задача интерполяции такой лесенки и что бы он не залазил внутрь - мне не понятна

#23
18:39, 4 ноя. 2016

IROV..
> Это уже интересней, но все же задача интерполяции такой лесенки и что бы он не
> залазил внутрь - мне не понятна
Я же говорю, делают экспанд контура. Это могут многие библиотеки. Гугли polygon offset library.

#24
18:46, 4 ноя. 2016

MrShoor
http://www.angusj.com/delphi/clipper.php

пробовал, результат не удовлетворительный, создает лесенку, а такой что бы офсетил и аппроксимировал?
там же есть оптимизатор(аппроксимация) но она жует оригинал

http://w8r.github.io/polygon-offset/
вот тут можно видеть проблему с лесенками

#25
19:27, 4 ноя. 2016

IROV..
> и аппроксимировал?
Так апроксимируй сам. Проходишь по контуру, и выкидываешь вершины, до тех пор, пока отклонение этих вершин меньше N пикселей (на которые ты экспандил). Вроде простой алгоритм.

#26
19:31, 4 ноя. 2016

MrShoor
Я тоже думал что простой, пока не встретил ряд проблем, такие как изгибы, второе грань съедает оригинал полигона

#27
19:34, 4 ноя. 2016

IROV..
> Я тоже думал что простой, пока не встретил ряд проблем, такие как изгибы,
> второе грань съедает оригинал полигона
Нарисовать можешь? Я пока не вижу на экспанднутом контуре проблем.

#28
16:31, 6 ноя. 2016

IROV..
Приложи подорожник немного фантазии и всё заработает. Получаешь контур, убираешь из него лишние точки (здесь много интересного можно сделать для повышения качества (p.s. используй углы, Люк)), триангулируешь то, что получилось.
Чтобы ничего не "съедало", нужно проверять: "вот если уберу точку, съест?", нет - убирай, да - не убирай. После того, как трианглы готовы, считай себе текстурные координаты.
Для красивой упаковки, как бы странно это не звучало, я юзал свой физ двиг. Кидал все объекты внутрь ректа, к который надо запаковать (предварительно, неплохо бы проверить площади объектов и ректа, чтобы не пытаться втолкать слона в стакан) и включал расталкивание, за пару сотен итераций оно нормально всё расталкивало к запакованному виду.

Страницы: 1 2
ПрограммированиеФорумОбщее

Тема в архиве.