Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > разработка игр, графический дизайн и моделирование > Gamedev - cоздание игр: Unity, OpenGL, DirectX
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 05.11.2011, 01:52   #1
MaratZahidyl
Пользователь
 
Аватар для MaratZahidyl
 
Регистрация: 18.08.2011
Сообщений: 70
По умолчанию Долго загружаются меши (сетки, 3д модели), где проблемы?

В общем моделей совсем немного (по сравнению с обычным уровнем в любой игре) а загружаються они дольше чем уровень в какой либо игре (NFS, Fable).
Может кто знает. Может кто решал уже такую проблемму.

На кртинке видно что моделей совсем не много и все они почти квадратные - а загружаетья это все 30 секунд.
Изображения
Тип файла: jpg 1.jpg (165.0 Кб, 132 просмотров)
MaratZahidyl вне форума Ответить с цитированием
Старый 05.11.2011, 07:32   #2
phomm
personality
Старожил
 
Аватар для phomm
 
Регистрация: 28.04.2009
Сообщений: 2,882
По умолчанию

99.(9)% что Вы делаете что-то не так, и остаток от того процента - ошибка в Матрице. Показывайте код или вообще прикрепляйте проект.
phomm вне форума Ответить с цитированием
Старый 05.11.2011, 09:45   #3
MaratZahidyl
Пользователь
 
Аватар для MaratZahidyl
 
Регистрация: 18.08.2011
Сообщений: 70
По умолчанию

Здравствуйте!

Спасибо вам phomm - ваш ответ мне помог.
Я хотел отправить проект, решил немного его пичистить - удалил половину текстур - и загрузилось моментально.

Проблемма была вто м что было несколько текстур с разрешением 1900*1650. Эти текстуры очень долго загружало. Теперь поставил все большие текстуры с разрешением 1024*1024 - загружаеться за 5секунд.

Можете посоветовать чтото еще насчет текстур (слышал что нужно чтоб были кратными 32*2 (32*32, 64*64, 128*128, 256*256)), это так?
Может есть какието еще ньюансы с размерами и вообще в работе с текстурами, чтоб они быстро загружались.
MaratZahidyl вне форума Ответить с цитированием
Старый 05.11.2011, 10:39   #4
phomm
personality
Старожил
 
Аватар для phomm
 
Регистрация: 28.04.2009
Сообщений: 2,882
По умолчанию

Текстуры всегда желательно иметь размером соответствующим 2 в какой-то степени.
А как их загружаете - тоже ведь имеет значение, или стандартными директХ/опенГЛ средствами ?
phomm вне форума Ответить с цитированием
Старый 05.11.2011, 10:56   #5
MaratZahidyl
Пользователь
 
Аватар для MaratZahidyl
 
Регистрация: 18.08.2011
Сообщений: 70
По умолчанию

Цитата:
Сообщение от phomm Посмотреть сообщение
Текстуры всегда желательно иметь размером соответствующим 2 в какой-то степени.
А как их загружаете - тоже ведь имеет значение, или стандартными директХ/опенГЛ средствами ?
Вот функция которую я нашел в учебнике - ей и пользуюсь.

Код:
HRESULT InitialMesh(char * name_mesh)
		{
		if(FAILED (D3DXLoadMeshFromX (name_mesh,D3DXMESH_SYSTEMMEM,d3d, NULL, &pMeshBuffer, NULL, &dwNumber, &pMesh)))
		return E_FAIL;
		D3DXMATERIAL* D3DXMeshMaterials;
		D3DXMeshMaterials= (D3DXMATERIAL*)pMeshBuffer->GetBufferPointer();
		pMeshMaterials=new D3DMATERIAL9[dwNumber];
		pMeshTextura=new LPDIRECT3DTEXTURE9 [dwNumber];
				for(DWORD i=0; i<dwNumber;i++)
				{
				pMeshMaterials[i]=D3DXMeshMaterials[i].MatD3D;
				pMeshMaterials[i].Ambient=pMeshMaterials[i].Diffuse;
				if(FAILED (D3DXCreateTextureFromFile (d3d, D3DXMeshMaterials[i].pTextureFilename, &pMeshTextura[i])))
				pMeshTextura[i]=NULL;
				}
		pMeshBuffer->Release();
		return S_OK;
		}
Нормальна функция?

А что стандартные средства ДиректХ медленные?

Последний раз редактировалось MaratZahidyl; 05.11.2011 в 11:21.
MaratZahidyl вне форума Ответить с цитированием
Старый 05.11.2011, 12:37   #6
Selestis
Форумчанин
 
Аватар для Selestis
 
Регистрация: 21.01.2009
Сообщений: 719
По умолчанию

В целом да. Но если вас особо волнует скорость загрузки, можете написать свой конвертер формата: например, из какого-нибудь стандартного *.3ds или *.obj создайте уже готовые будеры вершин и индексов, а в главной программе потом просто загрузите их из файла цельным блоком. Выйдет в несколько раз шустрее.
Изобретатель велосипедов
Selestis вне форума Ответить с цитированием
Старый 05.11.2011, 12:40   #7
MaratZahidyl
Пользователь
 
Аватар для MaratZahidyl
 
Регистрация: 18.08.2011
Сообщений: 70
По умолчанию

Я это представляю только в общих чертах. У меня пока мало опыта чтоб реализовать такое.
MaratZahidyl вне форума Ответить с цитированием
Старый 05.11.2011, 21:57   #8
MaratZahidyl
Пользователь
 
Аватар для MaratZahidyl
 
Регистрация: 18.08.2011
Сообщений: 70
По умолчанию

Я нашел вторую причину почему долго загружалось. У меня каждый эллемент был отдельным обьектом, и скорее всего на каждый такой эллемент Директ выделял память под текстуры, даже если они одинаковые.

Тоесть у меня там забор из 15 брусьев и каждый брус -отдельный обьект. Но на всех наложена одинаковая текстура большого разрешения. Я думаю что директ на каждый брус выделил память для текстуры и загружал одну и туже текстуру 15 раз.

Может так а может и нет, но сейчас я обединяю все в один обект и загружается моментально даже с большими текстурами.

Еще интересно что если модель одним обектом то она грузиться моментально даже если очень много треугольников. У меня террайн из 2400000 треугольников грузится моментально - никогда бы не подумал что это возможно -удивило.
MaratZahidyl вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц

Опции темы Поиск в этой теме
Поиск в этой теме:

Расширенный поиск


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Как и где продать исходники социальной сетки kroogi Свободное общение 5 15.06.2011 12:36
Не загружаются вложения alco84 О форуме и сайтах клуба 1 24.03.2011 13:47
Не загружаются диски. IRobot Компьютерное железо 2 13.03.2011 13:18
Проблемы с компонентом F1Book на машине где не установлен Delphi F1Book Компоненты Delphi 3 07.04.2009 11:19
Где найти модели людей и животных (3d studio, ms3d...) theos Свободное общение 0 03.01.2008 05:49