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

И всё-таки SceneGraph.

Страницы: 1 2 Следующая »
#0
15:49, 25 янв 2010

Заранее приношу извинения зато, что поднимаю тему, которая обсуждалась здесь уже десятки, если не сотни раз.
Тем не менее, ни поиск по сайту, поиски на просторах интернетов не дали ответа на один вопрос.
А вопрос таков : что есть в графическом движке граф сцены? Какие на него возлагаются функции?
Насколько я понимаю, в простейшем случае граф сцены нужен для проверки объектов сцены (SceneNode) на попадание в видимость и на проверку какие источники света светят в данный момент на определённый объект.
Если не прав - пните пожалуйста в правильном направлении.
Был бы сильно благодарен за описание возможных вариантов реализации/применения сабжа. Опционально - интерфейсы, т.е. как оно выглядит.
Спасибо.

#1
19:15, 25 янв 2010

Сцен граф по идее может делать - фрустум куллинг, проксимити тест (те же лампочки vs обьектъ), оклюжн куллинг и граф трансформаций. Однако объчно под ето делают или несколько структур или как минимум дополнительнъе подсистемъ, которъе помогают с етими задачами.
Примерно - сцен граф для фрустум куллинга только + ленивъй апдейт графа трансформаций, которъй в стороне от етого сцен графа (примерно каждъй обьект знает своего родителя).
У нас (далеко не идеальное решение) - основной контейнер - 2д грид. Поверх него построено квад три, для бъстрого куллинга. Лампочки же работают без квадтри, прямо в гриде, переодически каждая аптейтит обьектъ вокруг себя.
В зависимости от сцен может вообще бъть разное - примерно сферическое дерево для space sim-а с корабликами, если мало обьектов - тупой вектор.
Интерфейс снаружи может бъть основан на операциях, которъе мъ хотим от сценъ - "собери мне все видимое в вот етом фрустуме", "найди мне все обьектъ в волюме X" и поди все. Оптиционально подклучать к етим операциям оклюжн какой-то. А граф трансформаций - ето широкое и ниское дерево, где масса обьектов вообще не имеют ни детей ни родителей, т.к. вокруг него не стоит дизайнить тип графа...

#2
19:58, 25 янв 2010

Z
Спасибо.
Слегка появилось вопросов)
Что есть проксимити тест?)

>делают или несколько структур или как минимум дополнительнъе подсистемъ, которъе помогают с етими задачами
можно минимальный пример?

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

П.С. Можешь набросать приблизительный вид интерфейсов, которые сверху всего этого добра?
Спасибо.

#3
21:42, 25 янв 2010

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

#4
18:44, 26 янв 2010

Мда, непопулярная и неинтересная видимо тема)

#5
20:55, 26 янв 2010

Просто Тут тема такая в которой сколько людей столько и мнений. А примеров нет имхо потому что сценграф тесно связан с графическим движком и логикой...

#6
20:57, 26 янв 2010

ALTAIR
+1
всё зависит от самого движка. Можно вообще без сценеграфа делать.

#7
21:28, 26 янв 2010

Subject
>>Тем не менее, ни поиск по сайту, поиски на просторах интернетов не дали ответа на один вопрос.
признайся что лень просто искать=) в гугле погугли, на инглише много всего найдешь.
а вобще не надо искать каноны движкописания, каждый делает так как считает более подходящим под конкретные задачи.

#8
23:25, 26 янв 2010

Subject
Я вот тоже раньше много думал за архитектуру, а потом на работу пошёл - думать стало некогда, надо было работу делать :) И вот как за пару дней представилась архитектура, так и делалось, потом переделывались места в которых совсем уж тяжко...
так это я к чему :) ты сделай как тебе это сейчас видится и сразу станет ясно что не так и в какую сторону себя пинать.

#9
23:29, 26 янв 2010

Subject
Сделай просто для начала дерево объектов для Frustum Culling'а. Уже будет с чего развивать. Советую глянуть как сделано в Ogre.

#10
1:01, 27 янв 2010

http://smartcamera.googlecode.com/svn/trunk/Doc/OSGSGrus.pdf

#11
2:15, 27 янв 2010

Subject
> А зачем разделять граф сцены и граф трансформаций?
Потому что это разные вещи.
Определение видимости и поиск пересечений нужны в каждом движке, а вот граф трансформаций для всех объектов сцены не нужен почти никогда (имхо).

#12
7:54, 27 янв 2010

BUzer
> Потому что это разные вещи.
Второе вполне может быть подмножеством первого

#13
13:07, 27 янв 2010

innuendo
подмножеством первого может быть что угодно - это не означает что такую нёх стоит делать

#14
13:09, 27 янв 2010

Xunter
> нёх

?

я не знаю, что ты понимаешь под SG, то что я понимаю, это классический от OpenInventor, так вот там в SG и трансформации, и др фичи

Страницы: 1 2 Следующая »
ПрограммированиеФорумГрафика

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