Quest3D - Русскоязычное сообщество

Quest3D => Программирование => Тема начата: mef от 10 Ноября 2008, 23:02:30



Название: Дозагрузка (динамическая подгрузка) и переключение сцен.
Отправлено: mef от 10 Ноября 2008, 23:02:30
Здравствуйте, помогите пожалуйста. Возник такой вопрос - есть значит дом, в котором много комнат, в каждой комнате свой интерьер и прочее. Сцена начинается например на первом эиаже в холе и ходим по дому. Комнтаы (интерьеры) у нас в виде отдельных сценок есть. Нужно чтобы в начле загружалась лишь первая сценка (холл на первом этаже), а дальше подошли например к двери кухни (она закрыта) нажали кнопку и идет загрузка кухни (одна сцена переходит в другую). Что то вроде ГТА (подошли к дому, нажали кнопку и хоп, пошла загрузка интерьера дома).

Почему собственно возник вопрос. Потому что предпологается размещение этого дома в интернете (через ВЕБ-ПАБЛИШ в квесте). Так вот, естественно, будет очень неудобно, если пользователь будет сидеть и ждать пока загрузится весь дом. А так, загрузился холл например, вот он по нему ходит, подошел к первой двери, нажал - пошла загрузка этой комнаты и т.д. (каждая комната весит метров 10-12 или даже меньше) ждать нужно будет не очень долго естественно, а весь дом весит метров 200-300 (в нем очень много комнат), ждать пока загрузятся все 200 метров никто не станет...


Название: Re: Дозагрузка (динамическая подгрузка) и переключение сцен.
Отправлено: Viik от 11 Ноября 2008, 09:57:43
http://quest.ovos.at/browse/detail/18
Вот лоадер который позволяет делать динамическу загрузку и удаление групп. В конкретно таком исполнение в вебе работать не будет, так как сканирует директории, можно переделать под загрузку конкретных файлов.


Название: Re: Дозагрузка (динамическая подгрузка) и переключение сцен.
Отправлено: KBECT0MAH от 11 Ноября 2008, 15:53:30
Есть прекрасный пример динамической подгрузки который лежит:
[локальный диск]..\Quest3D\Examples\Advanced\Dynamic lua loading
.


Название: Re: Дозагрузка (динамическая подгрузка) и переключение сцен.
Отправлено: Erath от 23 Ноября 2008, 14:13:02
А можно ли через LUA подгружать именно объекты, модели в формате .х, к примеру, а не сцены? Как тогда будет выглядеть код? В туториалах че-т не нашел такого.


Название: Re: Дозагрузка (динамическая подгрузка) и переключение сцен.
Отправлено: mef от 25 Ноября 2008, 01:37:35
Спасибо за подсказку, покопаюсь в примерах. если что выложу сюда образец или вопросы, если они будут (а то что будут - уверен на все 100) ))))))))


Название: Re: Дозагрузка (динамическая подгрузка) и переключение сцен.
Отправлено: VeT от 19 Декабря 2008, 17:33:01
[локальный диск]..\Quest3D\Examples\Advanced\Dynamic lua loading

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


Название: Re: Дозагрузка (динамическая подгрузка) и переключение сцен.
Отправлено: Erath от 20 Декабря 2008, 18:43:05
Отвечу на свой же вопрос. Я решил его так: используя как основу Weather System заменил сцену на ярлык от 3D Render'a в своей сцене, находящейся в другом .cgr-файле и при помощи Lua-скрипта содержания
Код:
-- CallChannel function is called when channel is called
function CallChannel()
q.RemoveChannelGroup("world.cgr", "World", instance)
q.LoadChannelGroup("world.cgr", "World", instance)

end

-- GetValue function is called when this channels is used as Value
function GetValue()
return -1
end
загружаю его в проект по нажатии кнопки. Так же можно сделать включение загрузки и от какого-либо другого фактора, например от позиции, взаимодействия с обхектом и т.д.
Смысл в том, что в данном случае сцена загружается целиком, все объекты должны быть подключены к рендеру. Источники света можно не использовать и не нужна камера, так все это есть в Weather System.
Прикрепляю скриншот что б было понятней.


Название: Re: Дозагрузка (динамическая подгрузка) и переключение сцен.
Отправлено: Denil-Tornado от 04 Февраля 2009, 23:31:08
Ну допустим, бегаю по сцене ну назовём её "x" а когда перехожу на другую сцену "y", то y подгружается а та страя сцена выгружается?