bada
Оно возращает int - это хендл файла. Там все стандартно .
FILE* это как раз извращение небольшое, он как раз поверху файл хендл идет.
ну посмотри самплы, ну это уже реально самое простое что можна сделать, их десятки в pspsdk, и у меня на SVN там все это есть.
Таких документаций нет на русском. Я же говорил читать не все , а про CACHE :)
(Хотя программируя на MIPS систему, стоит очень хорошо знать такие документации) :)
вобщем вкрутил в пнг либу
SceUID fp;
fp = sceIoOpen(filename, PSP_O_RDONLY, 0777);
-----
void png_psp_read_data(png_structp png_ptr, png_bytep data, png_size_t length)
{
sceIoRead((SceUID)png_ptr->io_ptr, data, length);
}
png_set_read_fn(png_ptr, (void *)fp, png_psp_read_data);
-----
результат (загружал ~3.5мб )
fread- 12 sec
sceIoRead- 11 sec
даааа..прирост налицо не спорю, но что то мега круто от этого не стало, да.
Что то я не пойму, по моим тестам никакого существенного прироста не вижу....если не считать енти примерно 9% ... но это в 2д проекте не фатально как бы, я вот думал что ща будет 100% ну как мин....
bada
А никто про прирост не говорил совсем. Говорилось что на consoles , fopen , fread, fclose это зло. Потому что кривая реализация в libc.a
bada
1) На самом деле R4 Manual читается намного проще чем Intel P3 Ясность мысли.
2) Чтобы был прирост тебе надо:
- отказать reallocation, т.е. отказать аллокации по сути. делать стэк из памяти, а не друшлак. как вариант более классический - фпулы.
- отказать libpng исходя из первого пункта.
- inplace textures, фиксапить ручками пару pointers. забыть про понятие texture(const char* file) и думать про texture packs.
- привязывать texture packs к игровым локациям.
- если понадобится сжать, то выбрать со скоростью разжатия большей скорости копирования и чтения.
Или сменить флешку.
neteraser
ага, хорошие советы, только это оочень долго реализовывать с учетом того что условия боевые )))
кроме того мне не надо мильен текстур, мне нужно штук -ндцать + с десяток самых больших на фон 512Х512 .... топик то про примитивные 2д проекты, а не про сложные 3д игры ))))) хотя идеи правильные и когда-нибудь .... ))))
если кого интересует могу прислать на почту демку с тем самым глюком что есть моушн блур....2-3 метра весит
а отказать библиотекам - тогда когда будет проект? через год? неее.....он есть щас...да с тормозами при подгрузке, да не учтены вабще почти все фичи псп, да не оптимизировано нихрена..но вот он - лежит себе и скоро будет у издателя...its a cruel world baby )))))
bada
1. На вопрос из поста 9 ты так и не ответил :) По ходу дела ты рисуешь quad на весь экран, у KVaks были мысли что так делать не стоит (в значении встает). Пробуй рисовать полосками 32(33)x272.
2. Это совсем никак не дорого, это намного тупее и дешевле. В твоей игре, раз уж все просто, так - заставляешь в photoshop делать тебе texture pack с текстурами одинакового размера, читаешь его inplace. адрес текстуры по номеру высчитывается очень легко.
neteraser
ну я вот очень тупой )))
мне вот нужно время чтоб разобраться что такое текстур пэк что с ним делать, как это применимо....вот если бы мне кусок кода показал который чето такого делает то я с радостью )) а так , я просто не могу оценить время котороя я потрачу на все это, может это решит какието проблемы, но глобально мне менеджер скажет делать фичи ИИ или там уровни собирать, вот так. А пробовать мысли - это конечно гут но время на инвестигейт я уже съел )))).
Вот положили бы вы тестовые премеры со всякими комментами - было б дело, да, было б мега круто.
Например - вот отрисовка ламерская - она занимает - хз скока времени. А вот мега крутая - она занимает там стокато процентов от ламерской ... и усе. А так в теории ну очень стремно все поднимать...нету времени.
Я просто уже давно не говорю что сделать легко или сложно, каждый человек делает по разному, хоть ему и легко а делает хз скока времени, другой скажет - ооо я не сделаю, и склепает работающий вариант за полчаса. Потому, вот скока времени понадобится переделать на паки или там выводить по слайсам?
а на пост 9 уже раза 2 отвечал как мог.
Вот есть класс текстура, при загрузке при помощи либпнг он получает указатель на сами данные, ширину и длину , при рендере текстуры она рендерится в квад размеры которого идентичны размеру текстуры - все просто чем проще....я вот наверно даже терминологию может неправильно воспринимаю.
Те текстуры макс размера 512х512 не рекомендуются к выводу чтоли?
bada
я так понял у тебя банально спрашивают размер текстуры (циферку для высоты и циферку для ширины)
bada
512x512 это п....ц PSP :)
Я еще подозреваю , что после png у тебя 32 бита :)
Самый оптимальный размер текстуры на PS2,PSP ,.... 64x64x4 бита вот так .... :)
А 512x512 у тебя просто может не успевать рендериться отсюда и аhтефакты.
Насчет примеров ....
Здесь таки не благотворительная организация, мы и так стараемся помогать в попытке душевного согласия с подписанным NDA с Sony :)
кроме того здесь все люди очень реально занятые (у меня например 3 проекта , и ничего) , и успевают при этом что то исследовать.Ибо эта "ненужная" работа, это есть тот бесценный опыт, без которого ты никогда не сделаешь достойный title.
Возьми сам все померяй , есть sceKernelGetSystemTimeWide . Отрисуй 1000 раз этот background, сделай sceGuFinish, замеряй время.
А потом отрисуем кусочками по 32x32 и т.д. И поверь , сам получишь кайф от того, когда увидишь как правильно сделать.
KVaks
ну я как бы не в благотворительную организацию пришел, а высказал свое имхо, как было б лучше. Нет так нет.
А опыт можно получить и смотря на работы других, иначе все бы ходили не в школу, а пытались выучить азбуку сами без ничьей помощи.
А с текстурами, вот вы зря не смотрели на мою функцию рендера, там как раз и выводится полосами 64хheight
bada
Смотрели, тыкни пальцем где, я же просил дать SLICE :)
KVaks
пост 25
bada
>KVaks
>#define SLICE_SIZE_F 64.0f
тогда совсем явно слайс = 64
Ух ты, как тред разросся, пока я в командировке был...
[bada]
> мне вот нужно время чтоб разобраться что такое текстур пэк что с ним делать, как это применимо....
> вот если бы мне кусок кода показал который чето такого делает то я с радостью )) а так , я просто не могу
> оценить время котороя я потрачу на все это, может это решит какието проблемы, но глобально мне
> менеджер скажет делать фичи ИИ или там уровни собирать, вот так. А пробовать мысли - это конечно
> гут но время на инвестигейт я уже съел )))).
> Вот положили бы вы тестовые премеры со всякими комментами - было б дело, да, было б мега круто.
Сейчас пока еще очень мало примеров, которые можно было бы показывать. Все экспериментируют и делятся своими идеями и результатами. Но вот тратить время на объяснение разницы между FILE* и int sceIOOpen() никто не будет. Как ты сам говорил, все люди очень занятые.
> Например - вот отрисовка ламерская - она занимает - хз скока времени.
> А вот мега крутая - она занимает там стокато процентов от ламерской ... и усе.
> А так в теории ну очень стремно все поднимать...нету времени.
> Я просто уже давно не говорю что сделать легко или сложно, каждый человек делает по разному,
> хоть ему и легко а делает хз скока времени, другой скажет - ооо я не сделаю, и склепает работающий вариант за полчаса.
> Потому, вот скока времени понадобится переделать на паки или там выводить по слайсам?
Зависит еще и от того, как делать :). Вот прикрутишь STL или fopen() - придется сносить и переделывать. Тормознутую или глюкавую игрушку в Сони лучше не показывать.
> а на пост 9 уже раза 2 отвечал как мог.
> Вот есть класс текстура, при загрузке при помощи либпнг он получает указатель на сами данные,
> ширину и длину , при рендере текстуры она рендерится в квад
> размеры которого идентичны размеру текстуры - все просто чем проще....я вот наверно даже
> терминологию может неправильно воспринимаю.
> Те текстуры макс размера 512х512 не рекомендуются к выводу чтоли?
На проекте на PS2 на то, чтобы добавить в проект текстуру 256*256, требовалось разрешение арт-директора и согласование с главным программистом :)
Юзай 128*128, палитру и color key, если уж очень необходимо прозрачность.
С такими ресурсами, как у тебя, оно не взлетит.
Димка
я конечно все понимаю.....хотелось что б была хоть какая-то база от чего отталкиваться....
то, что делается в данном случае никакая соня в жизни не увидит )))
а большие текстуры выводятся кусочками. это уже указывалось, точнее полосами по 64хвысоту....тормозов или мега глюков замечено не было.
Кстати, а глюки при юзании стл в чем именно заключаются? А то я юзаю...очень. Все это очень странно.
Тема в архиве.