Предыдущая тема :: Следующая тема |
Автор |
Сообщение |
f0x

Зарегистрирован: 23.09.2007 Сообщения: 498
|
Добавлено: Пт Янв 10, 2014 20:52 Заголовок сообщения: |
|
|
у меня вообще ощущение, что булеаны и полигоны - вещи из разных опер. В реймаршах всяческих несопоставимо проще оно делается. _________________ кто сделал демку тот и выиграл (с) uncle night (?) |
|
Вернуться к началу |
|
 |
BiTL DOS lover

Зарегистрирован: 22.09.2007 Сообщения: 2950
|
Добавлено: Пт Янв 10, 2014 20:57 Заголовок сообщения: |
|
|
f0x писал(а): | у меня вообще ощущение, что булеаны и полигоны - вещи из разных опер. В реймаршах всяческих несопоставимо проще оно делается. |
Ну дык... Но с рэймарчингом у тебя будут другие проблемы ) С моделингом особо не разгуляешься ) Придётся всё строить из дистантфиелдов ) |
|
Вернуться к началу |
|
 |
f0x

Зарегистрирован: 23.09.2007 Сообщения: 498
|
Добавлено: Пт Янв 10, 2014 21:55 Заголовок сообщения: |
|
|
ну вобщем поэтому туда и не лезу пока, нагулялся по шейдертою _________________ кто сделал демку тот и выиграл (с) uncle night (?) |
|
Вернуться к началу |
|
 |
BiTL DOS lover

Зарегистрирован: 22.09.2007 Сообщения: 2950
|
Добавлено: Пт Янв 10, 2014 22:28 Заголовок сообщения: |
|
|
f0x писал(а): |
определение принадлежности точки пространству - тут хз. форма-то не аналитически задана, сходу методов кроме как отрендерить орто, простите, гонально, фигуру 2 раза (бэк и фронт грани), забрать z-буфер, пройти куб точек отбросив ненужные - не приходит.
ну или проще, сенсилом сделать операцию нужную, забрать з-буфер, восстановить xyz точки. тоже 2 раза, для фронта и бэка.
короче, вычислительная сложность получается запредельной. |
страшно
проводим линию от точки которую надо проверить к точке которая заведомо находится внутри меша. Считаем
кол-во пересечений с гранями меша.
Если количество пересечений четное (0 тоже чётное) - точка лежит внутри, если нечетное - точка снаружи.
Или наоборот, берём точку снаружи меша, считаем
количество пересечений, если нечетное то внутри, четное - значит снаружи. |
|
Вернуться к началу |
|
 |
f0x

Зарегистрирован: 23.09.2007 Сообщения: 498
|
Добавлено: Пт Янв 10, 2014 23:10 Заголовок сообщения: |
|
|
на одну точку перебор всех граней. без тестов могу сказать, что на сетке 512х512 машинка умрет _________________ кто сделал демку тот и выиграл (с) uncle night (?) |
|
Вернуться к началу |
|
 |
san
Зарегистрирован: 11.10.2007 Сообщения: 18
|
Добавлено: Пт Янв 10, 2014 23:17 Заголовок сообщения: |
|
|
Если в конечном итоге результат будет выводиться на экран, то однозначно надо юзать CSG.
Работа с stencil & z-буфером не так ударит по производительности, как это сделает расчет пересечения на CPU. Да и вообще, это будет очень быстро (проверено на практике). Плюс ко всему, сложность вычислений при таком подходе не будет зависеть от числа полигонов/вершин.
Вспомнилось на эту же тему. Когда-то у меня была близкая задача - найти пересечение луча и полигональной геометрии (для того, чтобы выбирать объекты мышкой). В конечном итоге проще и быстрее всего оказалось рендерить каждый объект своим цветом (не выводя на экран) и потом читать пиксель из back buffer. Получилось очень точно и быстро.
Так что вовсе не обязательно решать задачу самым очевидным способом
Если все-таки нужна "честная" геометрия, то нужно искать пересечения полигонов между объектами. Тут может помочь bsp (и аналогичные техники).
Но все же честный boolean это сложно, ресурсоемко и иногда глючно. Тот же 3ds max при расчете пересечений иногда выдает кривой результат в зависимости от сложности топологии и числа полигонов. |
|
Вернуться к началу |
|
 |
BiTL DOS lover

Зарегистрирован: 22.09.2007 Сообщения: 2950
|
Добавлено: Пт Янв 10, 2014 23:35 Заголовок сообщения: |
|
|
f0x писал(а): | на одну точку перебор всех граней. без тестов могу сказать, что на сетке 512х512 машинка умрет |
почему всех, если только пересекающихся с отрезком? |
|
Вернуться к началу |
|
 |
f0x

Зарегистрирован: 23.09.2007 Сообщения: 498
|
Добавлено: Сб Янв 11, 2014 07:37 Заголовок сообщения: |
|
|
BiTL писал(а): |
почему всех, если только пересекающихся с отрезком? |
чтобы определить, пересекается или нет, тебе нужно ведь перебрать все треугольники
san писал(а): |
Если в конечном итоге результат будет выводиться на экран, то однозначно надо юзать CSG.
|
идея в том чтобы дальше работать с моделью...
а селектор объектов тоже делал как ты _________________ кто сделал демку тот и выиграл (с) uncle night (?) |
|
Вернуться к началу |
|
 |
BiTL DOS lover

Зарегистрирован: 22.09.2007 Сообщения: 2950
|
Добавлено: Сб Янв 11, 2014 11:45 Заголовок сообщения: |
|
|
f0x писал(а): |
чтобы определить, пересекается или нет, тебе нужно ведь перебрать все треугольники
|
методов много,
масса возможностей сократить количество проверяемых трианглов (например взяв на вооружение их нормали, ведь ясно, что одно из полупространств мы точно не должны проверять), как и нет смысла проверять грани, координаты которых лежат "далеко" (тут можно сформулировать правило, но щас некогда) от точек отрезка. К томуже задача упрощается (мне кажется) тем, что мы не пытаемся находить сами точки пересечения. И ещё больше упрощается тем, что вершины отрезка могут лежать только в узлах нашей скан-решётки, это целые числа и лежат в известных нам приделах.
Ну и в конце концов, если мы имеем оба первоначальных объекта на моменте прекалсинга, то наверное сможем построить разные полезные таблицы заранее...
Ну, так то ваще, мы могли бы сразу воксели в прекалсе создать, а в рантайме уже совокуплять их друг с другом и шарашить Маршинг кубесом меш. Тогда мы сможем в реалтайме дырявить и откусывать один объект другим, и даже модифицировать воксельные объекты нам ничто не мешает (например "откусить", сохранить результат, далее работать с уже "откушенным"). Вопрос в том - чего мы хотим? Да, моделить чёткие объекты с острыми контурами так не получится.
ЗЫ:а почему бы тебе не довольствоваться твоими привычными модификаторами, и вместо булевых операций просто "вминать" одну 3д-фигуру другой? Ну да, нужно заведомо много поликов. Но зато проще и понятнее в реализации.
Последний раз редактировалось: BiTL (Сб Янв 11, 2014 12:07), всего редактировалось 1 раз |
|
Вернуться к началу |
|
 |
BiTL DOS lover

Зарегистрирован: 22.09.2007 Сообщения: 2950
|
Добавлено: Сб Янв 11, 2014 12:04 Заголовок сообщения: |
|
|
f0x писал(а): |
идея в том чтобы дальше работать с моделью...
|
в реалтайме? Тоесть это такой супер-эффект, где нужно применять каждый кадр булевские операции, а потом ещё что-то делать с мешем?
Прям любопытно, для чего же это может понадобиться?  |
|
Вернуться к началу |
|
 |
f0x

Зарегистрирован: 23.09.2007 Сообщения: 498
|
Добавлено: Сб Янв 11, 2014 17:33 Заголовок сообщения: |
|
|
видимо так и придется сделать - загнать в модификаторы некоторые простые фигуры.
а рилтайм - это идет от архитектуры двигла в целом _________________ кто сделал демку тот и выиграл (с) uncle night (?) |
|
Вернуться к началу |
|
 |
BiTL DOS lover

Зарегистрирован: 22.09.2007 Сообщения: 2950
|
Добавлено: Сб Янв 11, 2014 17:54 Заголовок сообщения: |
|
|
f0x писал(а): |
а рилтайм - это идет от архитектуры двигла в целом |
ох, набахаешь ты опять тяжеленного монстра
А когда интру с Дихальта-лайт зарелизишь? |
|
Вернуться к началу |
|
 |
f0x

Зарегистрирован: 23.09.2007 Сообщения: 498
|
Добавлено: Сб Янв 11, 2014 18:01 Заголовок сообщения: |
|
|
у меня бардак сейчас только в интерфейсном коде, и то более-менее контролируемый.
в рантаймовую часть можно впихивать что угодно, архитектура все стерпит ))
про дихалт, думал орги выложат. в итоге решили подправить косячки и пересобрать, я как раз баги зафиксил. думаю, завтра все будет. а может и сегодня, как настроение будет. _________________ кто сделал демку тот и выиграл (с) uncle night (?) |
|
Вернуться к началу |
|
 |
BiTL DOS lover

Зарегистрирован: 22.09.2007 Сообщения: 2950
|
Добавлено: Сб Янв 11, 2014 18:05 Заголовок сообщения: |
|
|
f0x писал(а): | у меня бардак сейчас только в интерфейсном коде, и то более-менее контролируемый.
в рантаймовую часть можно впихивать что угодно, архитектура все стерпит )) |
Возможность написания плагинов не рассматривается? |
|
Вернуться к началу |
|
 |
Manwe Администратор сайта

Зарегистрирован: 21.09.2007 Сообщения: 1426
|
Добавлено: Сб Янв 11, 2014 18:23 Заголовок сообщения: |
|
|
BiTL писал(а): | Возможность написания плагинов не рассматривается? |
Так шейдеры внешние - чем не плагины? _________________ Manwe/SandS
www.manwe.ru |
|
Вернуться к началу |
|
 |
|