dlib 0.1.2

Коллекция библиотек dlib обновилась до версии 0.1.2. Были внесены несколько значительных нвовведений:

  • В dlib.image.color типы ColorRGBA и ColorRGBAf были переименованы в Color4 и Color4f соответственно. Для обеспечения обратной совместимости, старые имена сохранены в виде псевдонимов, но новый код рекомендуется писать с использованием новых имен;
  • Добавлена поддержка свертки изображений (dlib.image.filters.convolution), которая позволяет реализовать на ее основе множество различных фильтров. Есть несколько встроенных ядер 3×3: Identity, BoxBlur, GaussianBlur, Sharpen, Emboss, EdgeEmboss, EdgeDetect, Laplace;
  • Добавлена поддержка цветового пространства HSV. На его основе реализованы эффекты Chroma Key (“зеленый фон”) и Color Pass (выборочное обесцвечивание).
  • Исправлены баги, связанные со сборкой при помощи DUB.

Страница проекта:
https://github.com/gecko0307/dlib

Скачать dlib 0.1.2:
https://github.com/gecko0307/dlib/releases/tag/v0.1.2

Релиз dlib 0.1

Состоялся первый нестабильный релиз коллекции библиотек dlib.

Нововведений по сравнению с последней ревизией SVN практически нет (если не считать функцию генерации тангенс-векторов для полигональных мешей) – релиз просто ознаменовал переезд проекта на GitHub (однако старый репозиторий в обозримом будущем продолжит обновляться параллельно с новым).

Одновременно с этим был зарегистрирован пакет dlib в реестре DUB: http://code.dlang.org/packages/dlib.

Страница проекта:
https://github.com/gecko0307/dlib

Скачать dlib 0.1:
https://github.com/gecko0307/dlib/releases/tag/v0.1

Журнал “FPS” №24

Вышел 24 номер электронного PDF-журнала “FPS”, посвященного разработке игр, программированию, компьютерной графике и звуку.

Читайте в этом номере:

> Авторы “FPS” – кто они?
> Blender: новости
> История Blender
> Проект “Лондон”. Интервью с режиссером
> Тренд года – трехмерная печать
> Физический движок своими руками. Часть 1
> Новости игровой индустрии
> История компьютерных игр
> Демосцена: алгоритм как произведение искусства

Номер доступен для онлайн-чтения и загрузки на сервисе Issuu.com, Документах Google и Dropbox.

Последние новости по проекту вы можете узнать в публичной странице журнала в социальной сети Google+: http://gplus.to/fpsmag. Добавляйте нас в круги, оставляйте свои комментарии и отписывайтесь в нашем сообществе.

Обновление dlib (r23)

Состоялось обновление набора библиотек dlib.

  • В модуле dlib.math.vector реализованы функция isAlmostZero, шаблоны для целочисленных векторов (Vector2i, Vector2u). vectorDecreaseToZero теперь поддерживает векторы произвольного размера;
  • В dlib.math.utils добавлены функции sign и swap;
  • В dlib.math.matrix3x3 реализовано покомпонентное сложение и вычитание матриц;
  • В dlib.math.matrix4x4 добавлены функции shadowMatrix для построения теневых матриц (проекции вершин на плоскость) и matrixFromAxisAngle для построения матриц вращения из представления “ось-угол”;
  • Для изображений в частотном диапазоне (dlib.image.compleximage) реализованы обратная свертка (deconvolve) и деление (divide).

Изменения доступны в ревизии r23 и выше.

http://code.google.com/p/dlib/

Фигуры Лиссажу для анимации оружия

Оружие в шутерах от первого лица не должно быть прибито к камере гвоздями – оно раскачивается в такт ходьбе, да и при стоянии на месте медленно ходит туда-сюда из-за постоянного движения рук. Конечно, довольно трудно сымитировать этот эффект в полном соответствии с реальностью, но можно обойтись дешевым и убедительным фейком. Оружие можно двигать вдоль кривой Лиссажу: x = sin(t), y = cos(2t). В результате получается траектория, изображенная на рисунке справа.

Vector2f lissajousCurve(float t)
{
    return Vector2f(sin(t), cos(2 * t));
}

//...

if (playerWalking)
    t += 10.0f * delta;
else
    t += 1.0f * delta;
    
if (t > 2 * PI)
    t = 0.0f;
    
Vector2f p = lissajousCurve(t) / 10.0f;
weapon.localPos = Vector3f(p.x, p.y, 0.0f);