grupa AntalisaФорум

PNGImage Component (комментарии)

#0
11:14, 5 сен 2006

PNGImage Component (комментарии)

Это сообщение сгенерировано автоматически.

#1
11:14, 5 сен 2006

А зачем использовать PNG, когда можно использовать свой формат, для сжатия можно использовать тот же APLib?
Кроме удобства сохранения в конечный формат из редактора еще плюсы есть?

#2
12:42, 5 сен 2006

Мне просто нравиться этот формат (Это мое сугубо личное мнение). Конечно, можно например хранить в файле сразу RGBA-данные и сжимать их. Но я поступаю иначе - я сжимаю уже готовые dll и exe.

#3
12:46, 5 сен 2006

Antalis

>я сжимаю уже готовые dll и exe

В результате, при загрузке оно все распаковывается в память. Для маленькой программки это еще не проблемма, а вот для большой суицид.

#4
13:54, 5 сен 2006

Честно говоря, я не занимался оптимизацией хранения данных. но в свое время интерессовался вопросом как засунуть свои ресурсы в один файл. Используя TStream создавал нетипизированный файл, в котором все и хранилось.
Еще замечу, что я не профессиональный программист, я - дизайнер, который фанатеет от программирования. Я очень давно хотел создавать игры (по-началу я рисовал настольные игры, а мои знакомые играли в них). Мне очень нравятся красивые игры. Однажды я не стерпел, и обратился через интернет к программистам создавать игры. но никто не откликнулся! В итоге я самостоятельно изучал программирование (уже 2 года) без отрыва от основной дизайнерской работы. В итоге, я пришел к выводу, который озвучил препод на компьютерных курсах - "Программировать - не сложно, учиться - долго"!
Так как я очень многому научился благодаря информации из интернета, то написание этих статей - моя благодарность этим людям. Надеюсь, я никому не попорчу их профессиональный бизнес!
А так - я всегда открыт для новой полезной информации! ;-)
В ОpenGL для создания текстуры нужны данные RGBA, а как их подготавливать, хранить, загружать - дело каждого. Но если я узнаю что-то более толковое и полезное - использую эту новую информацию ;-)

#5
13:56, 5 сен 2006

Кстати, если заметил, одновременно у меня существует только один экземпляр класса PNG и после изготовления текстуры, он тут же уничтожается.

#6
15:00, 5 сен 2006

>Кстати, если заметил, одновременно у меня существует только один экземпляр класса PNG и после изготовления текстуры, он тут же уничтожается.

Это не здорово ;)

Почему я предложил вариант своего формата и именно aplib.
aplib позволяет очень быстро распаковать весь блок данных в другой блок, минуя любые временные подблоки, как например в jpeg, как дело в png обстоит точно не знаю, но тоже наверное поблочное сжатие. Также aplib жмет лучше.
Далее при использовании своего формата нет необходимости в преобразованиях, то есть загрузил сжатый блок, распаковал, загрузил текстуру.
Сделать перепаковщик из PNG в свой формат не проблема.
Еще один момент. Частые выделения и освобождения памяти - зло. Лучше всего выделить один кусок памяти, например 1Mb и делать загрузку и распаковку туда, в случае если кусок станет мал, делать realloc/resize или просто освобождать и выделять новый, в два раза больший, кусок.
Это все никак не влияет на конечный результат, но скорость загрузки должно повысить возможно заметно повысить.

#7
15:02, 5 сен 2006

>я рисовал настольные игры

То есть рисовать умеешь ;) Можно посмотреть на что-нибудь, а то может ты замечательный художник, а тратишь время на программирование.

#8
16:15, 5 сен 2006

Благодаря знанию программирования - я могу разговаривать с тобой на равных, а то бы ты мне, как дизайнеру, рассказывал бы, как сложно и долго что-то программировать :-)
Хорошо, пороюсь дома, чего-нибудь и выложу :-)

Но пока я продолжу описывать здесь создание архитектуры графического движка на основе PNG (коней на переправе не меняют)
В следующих статьях я буду усложнять классы, создам класс менаджера сцены, потом опишу файл свойств объектов. Пока я не трогаю тему манипулирования текстурными координатами (эту тему я пока сознательно пропустил) и разделения спрайта на тайлы, но я обязательно напишу на эту тему статьи. Здесь я описываю свои шаги от простого к сложному, но в действительности мои классы давно уже умеют делить спрайты на тайлы :-)

#9
16:54, 5 сен 2006

Кстати, программирование для меня - это интеллектуальное творчество, где я чувствую свободу действий. Конечно, если бы я сидел где-то в конторе и ваял базы данных, то мне это быстро наскучило, а вот в gamedeveloping-е есть простор где разгуляться :-) (Мне так кажется, так как я никогда в этой индустрии не работал, как и не программировал профессионально).

grupa AntalisaФорум

Тема в архиве.