Показать сообщение отдельно
Старый 06.08.2011, 15:53   #6
Черный крыс
 
Сообщений: n/a
Ответ: Рябь на воде

Пиксмапы хранятся в ОЗУ, поэтому будет очень медленно.
ОЗУ->Перегонка данных пиксмапа по шине в видяху->Билд пиксмапа в видеопамяти в текстуру OpenGL\DirectX - вот такая получается длинная дорожка.

Думаю тебе известно что GAPI хранит текстуры в видеопамяти - это копии пиксмапов переведенные в формат графической библиотеки, и именно от них надо плясать, нет ничего сложного чтобы прочесть\записать данные напрямую в видеопамяти.

БлицМакс хранит текстуры здесь :
image.Frame(frame).name
Это адрес в видеопамяти но напрямую обращатся к нему нельзя доступ к текстуре обеспечивает графическая библиотека что то наподобии этого :

Local frame:TD3D7ImageFrame = TD3D7ImageFrame(image.Frame(0))
Local pixels:Byte Ptr = MemAlloc(16*16*driver.GetPitch(frame.name))
driver.Lock(frame.name, D3D_READONLY)
driver.Read([0, 0, 16, 16], frame.name, Varptr pixels[0])
driver.UnLock(frame.name)
Предупреждаю - это псевдокод, поэтому надо разбиратся - но общая картина такова.

А вообще Анимированая текстура - тру_решение.
 
Ответить с цитированием
Сообщение было полезно следующим пользователям:
Reizel (07.08.2011)