Главная страница
Top.Mail.Ru    Яндекс.Метрика
Текущий архив: 2004.04.04;
Скачать: CL | DM;

Вниз

Визуальный процесс загрузки   Найти похожие ветки 

 
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;
Скачать: CL | DM;

Наверх




Память: 0.49 MB
Время: 0.052 c
3-1078501438
klyonov
2004-03-05 18:43
2004.04.04
TDBGrid


14-1078899146
stone
2004-03-10 09:12
2004.04.04
Пришел спам


1-1079424786
Noway
2004-03-16 11:13
2004.04.04
shift: TShiftState;


3-1078910413
Pavel
2004-03-10 12:20
2004.04.04
Blob


1-1079101806
h010d
2004-03-12 17:30
2004.04.04
Влияние оформления windows на отображение формы