Войти
ПрограммированиеФорумГрафика

создание оптимального стрипа из набора треугольников

#0
14:32, 27 июля 2006

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

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

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

#1
15:30, 27 июля 2006

uss
>строятся на теугольниках с количеством соседей по рёбрам не более трёх
У тебя ребро может относится более чем к двум треугольникам?
Можно создать копию ребра для каждого треугольника.

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

#2
15:32, 27 июля 2006

есть ребро с одной его стороны один треугольник, а с другой несколько (точки лежат на ребре)

#3
17:02, 27 июля 2006

uss
>есть ребро с одной его стороны один треугольник, а с другой несколько (точки лежат на ребре)
Не делай так!!!! Любая литература по моделированию будет вопить что это плохо!!!! Переделай чтоб было как у людей, гарантирую с такими моделями в дальнейшем будеш плакать крокодиловыми слезами...

#4
17:15, 27 июля 2006

Breezy
не нервничай это не изменит начальных условий+в дальнейшем модель будет только отрисовываться никто и никак с ней работать не будет

#5
17:26, 27 июля 2006

uss
все равно получишь проблемы даже при отрисовке
со стандартным освещением или любым нетривиальным шейдером
плюс выпадающие пиксели на стыках
короче, делай по-человечески, 5% лишних треугольников не стоят геморроя

#6
17:47, 27 июля 2006

1.не нада советов не по теме
2. свет и материал поверхности думаю буду реализовывать parallax occlusion mapping(это будет потом и не является темой для данного обсуждения) потому мне не будет "гемороя" от плохой геометрии
3. пикселы не выпадают при отрисовке просто плохие стрипы выходят(мягко говоря плохие)

"экономить нужно экономно"

#7
18:14, 27 июля 2006

uss
А NvTriStrip тебе разве не подходит?

#8
18:33, 27 июля 2006

кратко нет
а если подробно то у них алгоритм 2004 го года и они его не улучшали он и тогда был не лучшим а теперь и подавно+он мне не подходит по причине указаной высше

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

повторная прозьба не разводить полемику не по теме и не предлагать того в чём не разобрались толком сами

#9
19:08, 27 июля 2006

Прошу прощения, что отклоняюсь от темы, но всё-таки спрошу:
Зачем нужны стрипы? Чем они лучше обычных индексированных треугольников?
Лично я вижу только один небольшой бонус – экономия памяти на индексах, и всё.

#10
19:13, 27 июля 2006

экономи памяти + не загружаем шину памяти+используем такую вещ как вершинный кеш как он задумывался

#11
19:48, 27 июля 2006

uss
>+используем такую вещ как вершинный
>кеш как он задумывался
А какие проблемы с кэшем для триангл листа?

А вообще, что-то мне подсказывает, что при проектировании вершинных кэшей, об эффективности их работы на стрипах думают в самую последнюю очередь.

#12
22:24, 27 июля 2006

uss

Что-то ты какой-то "дерзкий". \m/
Тебе люди говорят способы, а ты с ними споришь.
Теперь по теме: NvTriStrip - один из лучших вариантов решения твоей задачи. Если настаиваешь на своем \m/, то и делай сам.

#13
22:40, 27 июля 2006

uss
Советую прикинуть что ты выиграеш на своем подходе и что проиграеш. А так Prolet прав.

#14
0:46, 28 июля 2006

лучший это tunnel, ftsg-sgi, draft а nvidia это так не рыба не мясо...

ПрограммированиеФорумГрафика

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