Главная страница
    Top.Mail.Ru    Яндекс.Метрика
Форум: "Игры";
Текущий архив: 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.035 c
8-1069732158
ss300
2003-11-25 06:49
2004.04.04
Инфо о мп-файле


3-1078923508
Vit
2004-03-10 15:58
2004.04.04
Как сделать многострочный текст в отчете


4-1074577418
FVova
2004-01-20 08:43
2004.04.04
Как поставить хук на событие смены активного окна


7-1074602584
abs2
2004-01-20 15:43
2004.04.04
средства Windows


1-1079612266
Сниф
2004-03-18 15:17
2004.04.04
Где можно взять подробный пример создания Com-объекта?





Afrikaans Albanian Arabic Armenian Azerbaijani Basque Belarusian Bulgarian Catalan Chinese (Simplified) Chinese (Traditional) Croatian Czech Danish Dutch English Estonian Filipino Finnish French
Galician Georgian German Greek Haitian Creole Hebrew Hindi Hungarian Icelandic Indonesian Irish Italian Japanese Korean Latvian Lithuanian Macedonian Malay Maltese Norwegian
Persian Polish Portuguese Romanian Russian Serbian Slovak Slovenian Spanish Swahili Swedish Thai Turkish Ukrainian Urdu Vietnamese Welsh Yiddish Bengali Bosnian
Cebuano Esperanto Gujarati Hausa Hmong Igbo Javanese Kannada Khmer Lao Latin Maori Marathi Mongolian Nepali Punjabi Somali Tamil Telugu Yoruba
Zulu
Английский Французский Немецкий Итальянский Португальский Русский Испанский