LG.BALUKATION's Weblog

Ничего, это тоже кое-что… А при желании из него можно сделать что угодно

Частицы

Posted by LG.BALUKATION на 2008/07/01

Что-то давненько не писал я ничего «просто так» — всё тока на работе, да для работы…

А вот в эту суботу (точнее, уже утром воскресенья) решил накодить кое-что… Это не сложная штука, простой эффект — появляется море чатиц и они по спирали падат к центру экрана. Собстно само действо не суть важно, меня больше интересовало то, что завётяся «системой частиц» — читал некогда о таких механизмах, но сам никогда не пробовал написать подобное.

Итак, писать я вздумал это под Linux, т.к. такая система установлена у меня дома (Gentoo Linux если быть точным). Но вроде как особо линушных штук не юзал, так что оно наверно скомпилится в любой POSIX-совместимой среде.

Основной каркас приложения я построил вокруг SDL. Это ИМХО очень хорошая библиатека! Она позволяет избавиться от рутины написания кода для X Window или Win32 API, охватывая несколько разлиных областей, которые могут пригодится при создании игр (изначально — это игровая библиатека, как например Micro$oft DirectX) или разлиных демок. Хотя там обычно есть лишь базовые возможности, более тонкие фичи тоже доступны через дополнения к этой библиатеке, коих доступно великое множество. Но я пользовался тут только базовыми вещами.

Отрисовку я возложил на OpenGL. Хотя, для данной прожки и не существенно, будет отрисовка вестись самим SDL или OpenGL, я привык рисовать именно средствами последнего — это очень распространённый стандарт и его использование позволяет легко шагнуть за пределы возможностей SDL при изменении проги (например можно небольшой правкой добавить третье измерение или скажем освещение, текстуры).

Пара строк про требования к железу — естественно, рекомендуется аппаратное ускорение графики +) Хотя самая жесть (простенькая тригонометрия) всёж возложена на проц. Но в целом нагрузка и объём потребляемой памяти тут весьма просто регулируются через количество частиц — на значении 0xFFFFFFFF оно всё падало, т.к. не нашлось стока памяти (у меня дома 2 гига, но есь и ещё кое-какие ограничения), а вот тысяча-десяток тысяч частиц отрисовывается вроде без «тормозов» (Athlon64 3000+). Хотя, быть может некоторый прирост может быть достигнут и включением оптимизации под процессор при сборке, но ИМХО куда более правильно тогда уж переложить тригонометрию с проца на OpenGL — ведь там это будет сделано аппаратно блоком T&L, который есть почти на всех видяхах после первой GeForce +)

ЗЫ: код открыт, но это всёж палево и многое там надо переделать, чтоб было нормально… Но это просто первая версия, которая не тока компилиццо, но и работает приемлимо. Насчёт двух варнингов при сборке — не обращайте внимания, просто программа не принимает аргументов командной строки, соответственно они и не обрабатываются.

particles-1.0.200806010405.7z

Реклама

Добавить комментарий

Заполните поля или щелкните по значку, чтобы оставить свой комментарий:

Логотип WordPress.com

Для комментария используется ваша учётная запись WordPress.com. Выход / Изменить )

Фотография Twitter

Для комментария используется ваша учётная запись Twitter. Выход / Изменить )

Фотография Facebook

Для комментария используется ваша учётная запись Facebook. Выход / Изменить )

Google+ photo

Для комментария используется ваша учётная запись Google+. Выход / Изменить )

Connecting to %s

»