Форум: "Игры";
Текущий архив: 2004.04.04;
Скачать: [xml.tar.bz2];
Вниз
Визуальный процесс загрузки Найти похожие ветки
← →
Orc (2003-09-10 08:50) [0]Привет Мастерам!
Ситуация такая: я гружу много текстур (примерно на 10М), выглядет это так - режим экрана меняется, проходит секунд 5 (именно когда грузятся файлы в виде текстур), и начинается собственно действие. Вопрос в том, чтобы загрузить сперва картинку типа "Гружу", показать её, догрузить все остальные текстуры и начать действо. Действо у меня происходит под Direct3D. Помогите пожалста!
← →
HolACost! © (2003-09-10 08:54) [1]Ну так грузи и отображай! А если Нужен прогресс бар - то просто рнисуй его - как для простого приложения с ним работай
← →
Orc (2003-09-10 09:17) [2]В том-то и дело, что не получается - я РАЗДЕЛЬНО гружу картинку загрузки (как спрайт, Direct3DSprite) и картинки-текстуры, между загрузками начинаю рендеринг, пытаюсь показать загрузочный экран - не получается. Догружаются ВСЕ текстуры - и только после этого начинается основной рендеринг.
← →
cyborg © (2003-09-10 10:02) [3]Меняй структуру программы. Между загрузками текстур, если приложение с формой, делай Application.ProcessMessages; Перед загрузкой текстур грузи картинку загрузки и покажи её, потом уже начинай грузить текстуры, после загрузки каждой текстуры обновляй прогрессбар.
← →
NailMan © (2003-09-10 11:54) [4]cyborg ©
Ха! Интересно я тоже хотел сделать прогрессбар при загрузке сцены, но! интересно как мне вычислить прибавление процента на прогрессбаре если заранее неизвестно сколько грузится текстур, сколько объектов и всего остального? :-)
Есть какие-то соображения?
ЗЫ: с контексным выводом прогресс бара проблем нет(класс тако я сделал).
← →
cyborg © (2003-09-10 12:37) [5]NailMan © (10.09.03 11:54)
Твоей программе всё известно и чего и сколько грузить, только реализовать тебе это нужно.
Не обязательно увеличивать прогресс после каждой текстуры, дастаточно поделить прогресс бар на логические части, загрузка интерфейса, создание объектов, загрузка текстур и т.д. и обновлять прогресс по завершению обработки очередного участка.
← →
NailMan © (2003-09-10 13:31) [6]cyborg ©
Не обязательно увеличивать прогресс после каждой текстуры, дастаточно поделить прогресс бар на логические части, загрузка интерфейса, создание объектов, загрузка текстур и т.д. и обновлять прогресс по завершению обработки очередного участка.
Ну это будет некузяво :-) Ведь на всегда будет одна и та же картина наращивания процента у прогресс бара.
Твоей программе всё известно и чего и сколько грузить, только реализовать тебе это нужно.
В том-то и дело что заранее не известно, так как карта генерируемая и количество объектов и количество остального заранее не известно. Хотя сами модельки загружаются до загрузки(генерации) сцены, но грузятся они из листа, в котором только имя файла модельки, а далее модельку грузит уже в динамике.
Так что чтобы узнасть сколько там у моделек всего напихано, надо их сканировать перед загрузкой, а это лишнее время.
← →
cyborg © (2003-09-10 13:34) [7]Некузяво это как?
Во многих играх такой прогресс бар.
Вот сколько имён файлов моделек, на столько и разбивай.
← →
Orc (2003-09-10 13:40) [8]2Cyborg: в том то и дело, что приложение без формы - было бы с формой, я бы не задавал дурацкие вопросы :)) Что делать то в "бесформенном" случае? :)
← →
cyborg © (2003-09-10 13:47) [9]Пропустить "если приложение с формой, делай Application.ProcessMessages;" в тексте
← →
NailMan © (2003-09-10 13:50) [10]cyborg ©
А модельки могут содержат разное количество текстур и прочего барахла, и как оценить вклад в инкремент к прогресс бару?
К тому же не только модельки учавствуют в процессе загрузки, а как я уже говорил и динамически создаваемая сцена. Вобщем дело мутное.
Orc
Я делаю так:
В начале программы я создаю ID3DXSprite. Делаю рект с размерами экрана (скажем 800x600).
Когда надо загружать, то рендерю заранее определенную картинку через ID3DXSprite, делаю present и гружу чё мне надо.
Сейчас буду делать через свой GUI - создам панель с лейблом "ЗАГРУЗКА", и на панельки будет прогресс бар, под которым будет выводиться лог текущего действа(возможно кусок моей консоли). Самое важное определить инкремент для каждого действа.
← →
cyborg © (2003-09-10 13:56) [11]NailMan © (10.09.03 13:50)
Пусть содержат, пользователю то какое дело, ему главное видеть, что игра не зависла.
Страницы: 1 вся ветка
Форум: "Игры";
Текущий архив: 2004.04.04;
Скачать: [xml.tar.bz2];
Память: 0.47 MB
Время: 0.024 c