![]() |
| ||
|
|
Новости |
Поиск |
FAQ |
Статьи |
Книги |
Новости VCL
| | Форумы ЧАТ |
Орешник |
|
| |||
| |||
« предыдущая ветвь | форум | следующая ветвь »
быстрая загрузка текстур
Комбинатор © (2004-04-24 12:38:00)Подскажите можно ли грузить из бмп формата текстуры быстрее, чем
попиксельно разлагая на составляющие и создавая структуру для объекта текстуры в директе? Я недавно занялся программированием игры и столкнулся с проблеммой быстрой загрузки картинок....
зарание спасибо.
NailMan (2004-04-24 23:53:00) [1]Есть набор таких замечательных функций в D3DX:
D3DXCreateTexture
D3DXCreateTextureFromFile
D3DXCreateTextureFromFileEx
D3DXCreateTextureFromFileInMemory
D3DXCreateTextureFromFileInMemoryEx
D3DXCreateTextureFromResource
D3DXCreateTextureFromResourceEx
И не надо засирать мозг всякими битами, байтами и прочей мутотенью. Короче велосипед до тебя уже изобрели - сами мелкомягкие постарались. Скорость загрузки максимальная + куча всяких фенечек.
Dmitryy (2004-04-24 17:43:00) [2]Наверное, это делается примерно так же, как работают все видеокодеки - а как, не знаю
Комбинатор (2004-04-24 14:12:00) [3]Я на директе...соответственно у меня есть заголовочные файлы к интерфейсам...через них(интерфейсы) я создаю объект - текстуры.
Я щас не за рабочей машиной (не могу воткнуть кусок).
Вот этот объект и требует структуру данных о картинке, для создания которой и приходиться переберать пиксели.
Это всё я нашёл в книге Краснова.
Yar-Com (2004-04-24 14:06:00) [4]ты на Direct X делаешь? или на OpenGL?
если на Direct X то я тебе ничем помочь не могу, потому что никак не пойму что такое >объект< текстуры?
Воткни кусок кода сюда, а то я так и не понял ничего...
Комбинатор (2004-04-24 13:55:00) [5]Ты не понял я ламерок во всём этом...Просто и кратко :
как имея бмп файл создать объект текстуры (наверняка - это стандартная процедурка, которая небольшая и её не трудно скинуть либо сюда либо на buzapta@mail.ru) :)
Yar-Com (2004-04-24 13:18:00) [6]bgr с rgb менять чтоли?
procedure SwapRGB(data : Pointer; Size : Integer);
asm
mov ebx, eax
mov ecx, size
@@loop :
mov al,[ebx+0]
mov ah,[ebx+2]
mov [ebx+2],al
mov [ebx+0],ah
add ebx,3
dec ecx
jnz @@loop
end;
Комбинатор (2004-04-24 13:15:00) [7]вся проблема не в загрузки в память, а в создании объекта текстуры...для неё приходится переберать пикселы в памяти...
а как по другому?
Yar-Com (2004-04-24 13:08:00) [8]не пойму ты что по байту из файла читаешь? я загружаю весь бмп в память там его обрабатываю потом гружу его в видеопамять и удаляю из оперативки.
других вариантов и быть не может.....
Комбинатор (2004-04-24 13:03:00) [9]пример....после запуска игры у меня грузятся ресурсы меню(фон и т. д.) - из бмп файла читаю инфу и попиксельно создаю структуру необх для объекта текстур....но на это уходит время....например на картинку 512*512....
Yar-Com (2004-04-24 12:47:00) [10]а ты что картинки по ходу игры грузишь?
быстрее можно прочитать весь имэйдж в память и там его обработать....и картинки грузить нужно до начала игры....