Заранее приношу извинения зато, что поднимаю тему, которая обсуждалась здесь уже десятки, если не сотни раз.
Тем не менее, ни поиск по сайту, поиски на просторах интернетов не дали ответа на один вопрос.
А вопрос таков : что есть в графическом движке граф сцены? Какие на него возлагаются функции?
Насколько я понимаю, в простейшем случае граф сцены нужен для проверки объектов сцены (SceneNode) на попадание в видимость и на проверку какие источники света светят в данный момент на определённый объект.
Если не прав - пните пожалуйста в правильном направлении.
Был бы сильно благодарен за описание возможных вариантов реализации/применения сабжа. Опционально - интерфейсы, т.е. как оно выглядит.
Спасибо.
Сцен граф по идее может делать - фрустум куллинг, проксимити тест (те же лампочки vs обьектъ), оклюжн куллинг и граф трансформаций. Однако объчно под ето делают или несколько структур или как минимум дополнительнъе подсистемъ, которъе помогают с етими задачами.
Примерно - сцен граф для фрустум куллинга только + ленивъй апдейт графа трансформаций, которъй в стороне от етого сцен графа (примерно каждъй обьект знает своего родителя).
У нас (далеко не идеальное решение) - основной контейнер - 2д грид. Поверх него построено квад три, для бъстрого куллинга. Лампочки же работают без квадтри, прямо в гриде, переодически каждая аптейтит обьектъ вокруг себя.
В зависимости от сцен может вообще бъть разное - примерно сферическое дерево для space sim-а с корабликами, если мало обьектов - тупой вектор.
Интерфейс снаружи может бъть основан на операциях, которъе мъ хотим от сценъ - "собери мне все видимое в вот етом фрустуме", "найди мне все обьектъ в волюме X" и поди все. Оптиционально подклучать к етим операциям оклюжн какой-то. А граф трансформаций - ето широкое и ниское дерево, где масса обьектов вообще не имеют ни детей ни родителей, т.к. вокруг него не стоит дизайнить тип графа...
Z
Спасибо.
Слегка появилось вопросов)
Что есть проксимити тест?)
>делают или несколько структур или как минимум дополнительнъе подсистемъ, которъе помогают с етими задачами
можно минимальный пример?
>апдейт графа трансформаций, которъй в стороне от етого сцен графа (примерно каждъй обьект знает своего родителя).
А зачем разделять граф сцены и граф трансформаций?
П.С. Можешь набросать приблизительный вид интерфейсов, которые сверху всего этого добра?
Спасибо.
думай товарищ, думай) основное уже сказано, а далее нужно исходить из твоих задач. Будешь ли ты разделять графы и какие будут интерфейсы решать только тебе, и даже будь на то сильное желание, было бы сложно сказать как конкретно тебе нужно поступить.
Другими словами прежде чем разбираться с продвинутыми сцен графами, нужно самостоятельно столкнуться с проблемой и осознать их необходимость - тогда и поймёшь что это такое.
Мда, непопулярная и неинтересная видимо тема)
Просто Тут тема такая в которой сколько людей столько и мнений. А примеров нет имхо потому что сценграф тесно связан с графическим движком и логикой...
ALTAIR
+1
всё зависит от самого движка. Можно вообще без сценеграфа делать.
Subject
>>Тем не менее, ни поиск по сайту, поиски на просторах интернетов не дали ответа на один вопрос.
признайся что лень просто искать=) в гугле погугли, на инглише много всего найдешь.
а вобще не надо искать каноны движкописания, каждый делает так как считает более подходящим под конкретные задачи.
Subject
Я вот тоже раньше много думал за архитектуру, а потом на работу пошёл - думать стало некогда, надо было работу делать :) И вот как за пару дней представилась архитектура, так и делалось, потом переделывались места в которых совсем уж тяжко...
так это я к чему :) ты сделай как тебе это сейчас видится и сразу станет ясно что не так и в какую сторону себя пинать.
Subject
Сделай просто для начала дерево объектов для Frustum Culling'а. Уже будет с чего развивать. Советую глянуть как сделано в Ogre.
Subject
> А зачем разделять граф сцены и граф трансформаций?
Потому что это разные вещи.
Определение видимости и поиск пересечений нужны в каждом движке, а вот граф трансформаций для всех объектов сцены не нужен почти никогда (имхо).
BUzer
> Потому что это разные вещи.
Второе вполне может быть подмножеством первого
innuendo
подмножеством первого может быть что угодно - это не означает что такую нёх стоит делать
Xunter
> нёх
?
я не знаю, что ты понимаешь под SG, то что я понимаю, это классический от OpenInventor, так вот там в SG и трансформации, и др фичи
Тема в архиве.