Сергей Резник

Сергей Резник


СтатьиФорумИнфо

Статьи

1 авг 2011

Kinect SDK. Часть первая

Получаем изображение с камер кинекта.

Читать | Комментарии [11]

Знакомство с Kinect SDK

Блог

12 июня 2012

Два с половиной месяца сидения по ночам в виртуальной машине с макосью увенчались успехом! 12-ого июня мое приложение прошло рассмотрение и попало в App Store. Представляю вам iScorecard :)

Ссылка | Комментарии [1]

1 авг 2011

После чуть меньше чем трех месяцев упорных боев с движками, шейдерами и ошибками в коде четыре участника представили на суд зрителей свои демки. Ознакомится с ними можно здесь (желательно иметь DX11 видеокарту):

Chaos_Optima: ссылка, пост из обсуждения
Che@ter: ссылка, пост из обсуждения
SNVampyre: ссылка, пост из обсуждения
coordBox: ссылка, пост из обсуждения

SHart_probe4 | ShaderArt HD закончен.

Выбираем лучшего:

Roulette, polls, FX, Royal vegas, Casino Games

Спасибо Dimich за голосовалку.

Ссылка

23 мая 2011

Совершенно недавно TundraMobile (одним из разработчиков в которой являюсь я) совместно с Motalen, закончили работу над крупным проектом: Infernus: verse 2.

Ссылка | Комментарии [20]

6 мая 2011

ShaderArt HD

Приглашаем всех желающих к участию в новом конкурсе по программированию шейдеров - Shader Art HD (пятый по счету конкурс).
Главным идейным вдохновителем этого конкурса стал Аврелий. Он же предоставил отличную сцену для этого конкурса, за что ему большое спасибо.

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

SHart_probe4 | ShaderArt HD

Условия конкурса:

1) приложение должно выводить изображение в реал-тайме, то есть:
1.1) не должно содержать заранее просчитанных текстур и картинок
1.2) количество кадров в секунду - не менее 10-ти в разрешении 1920x1080 (тестироваться приложения будут на GTX 460 SE)

2) сцена не должна быть статической:
2.1) может меняться положение источника света (желательно сделать так, чтобы положением источника управлял пользователь)
2.2) камера может менять положение (допускается ограничение перемещения камеры)

3) возможность сохранить изображение рендера (не через PrintScreen) для использования в качестве обоев.

Предварительная дата окончания конкурса - 5 июня. По желанию участников конкурс может быть продлен.
Победители, как всегда, будут определены народным голосованием.
Скачать сцену для конкурса можно здесь: http://www.gamedev.ru/download/scene.zip (4,73 Мб)

Перейти к обсуждению.

Ссылка | Комментарии [2]

7 авг 2010

Начинаем новый конкурс по шейдерам!

На этот раз сцена будет очень простая - всего лишь набор кубиков. Выглядит она вот так (стандартный рендер 3ds max):

render | Shader art 2010

Задание участникам: сделать данную сцену как можно более реалистичной, учитывая следующие факторы:
1) сцена не должна содержать текстур. При этом допускается использование "служебных" текстур (как то текстура с шумом, случайными нормалями, карты нормалей и пр.). Использование текстур не допускается (для того, чтобы сцена не зависила от арта)
2) материалы объектов на сцене выбираются участником произвольно. Предполагаются следующие материалы: пластик, металл, стекло, кожа, мех, дерево и др.
3) не следует забывать, что мы не делаем offline рендер. Приложение должно давать не менее 15 кадров в секунду. Производительность будет замеряна на следующей конфигурации: Intel Core 2 Quad 2/5GHz, 2GB RAM, nVidia 220GT
4) минимальное разрешение 640x480

Допускается как GPU так и CPU рендер.

Сроки проведения конкурса будут объявлены позже (1-2 месяца). При желании участников сроки могут быть продлены.
Победители будут определены жюри, состав которого будет объявлен позже.

Скачать сцену можно здесь: cubes

Ссылка | Комментарии [8]

3 мая 2010

Официально считаю сегодняшний день (3-е мая, час ночи) началом разработки нового проекта, который мы будем делать вместе с S_L_A_V_A. У нас для этого все готово: есть довольно неплохой диздок, есть прототип игры и есть желание. Постараюсь писать проект без говнокода и без смешивания в кучу всяких несовместимых вещей (типа логики и рендера) - в дальнейшем есть идеи портировать игру на iPhone (для этого есть заранее закупленый iPod Touch 3G :)).
А теперь я иду спать...

правка: хм... под началом разработки я понимаю готовую структуру проекта, а не голословные заявления ;)

Ссылка

22 апр 2010

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

typedef double PRECISION;
typedef vector3<PRECISION> vec3p;

#define EARTH_LONG_RADIUS          PRECISION(6378136.49)
#define EARTH_ECCENTRICITY_SQUARE  PRECISION(0.00669438)
#define EARTH_PARAMETER_MU         PRECISION(3.9860009e+14)
#define EARTH_PARAMETER_C20        PRECISION(-1082.63e-6)
#define EARTH_ANGULAR_VELOCITY     PRECISION(7.292116e-5)

...

void Ce2Geolocation::calculateGravity()
{
 PRECISION N = EARTH_LONG_RADIUS / ::sqrt(1.0 - EARTH_ECCENTRICITY_SQUARE * et::sqr(sin(_latitude)));
 PRECISION NH = N + _altitude;
 vec3p R(( NH - EARTH_ECCENTRICITY_SQUARE * N) * sin(_latitude), NH * cos(_latitude) * cos(_longitude), NH * cos(_latitude) * sin(_longitude) );
 PRECISION r = R.length();
 PRECISION rp3 = r * r * r;
 PRECISION g1 = 1.5 * EARTH_PARAMETER_C20 * et::sqr(EARTH_LONG_RADIUS / r);
 PRECISION RX5 = 1.0 - 5.0 * et::sqr(R.x / r);
 vec3p local_gravity = g1 * vec3p(2.0 + RX5, RX5, RX5) - vec3p(1.0);
 local_gravity *= R * EARTH_PARAMETER_MU / rp3;
 _gravity = local_gravity - vec3p(0.0, -sqr(EARTH_ANGULAR_VELOCITY) * R.y, -sqr(EARTH_ANGULAR_VELOCITY) * R.z);
 _gravity = (Quaternionp(_longitude, 1) * Quaternionp(-_latitude, 3)).invtransform(_gravity); 
}

На фоне модели гравитационного поля Земли математическая модель стандартной атмосферы выглядит совсем игрушкой:

class Ce2StandartAthmosphere
{
 public:
  static const PRECISION getDensity(const PRECISION& atAltitude, const PRECISION& gravity);
};

...

const PRECISION Ce2StandartAthmosphere::getDensity(const PRECISION& atAltitude, const PRECISION& gravity) 
{
 const PRECISION R = 8.31447; // universal gas constant 
 const PRECISION standartPressure = 101325;
 const PRECISION temperatureLapseRate = 0.0065;
 const PRECISION standartTemperature = 288.15;
 const PRECISION airMolarMass = 0.0289644; 
 const PRECISION air_temperature = standartTemperature - temperatureLapseRate * atAltitude;
 const PRECISION air_density = standartPressure * pow(1.0 - atAltitude * temperatureLapseRate / standartTemperature, (gravity * airMolarMass) / (R * temperatureLapseRate) );
 return air_density * airMolarMass / (R * air_temperature);
}

19 апр 2010

19.04.2010
Вот у меня есть персональная страница на GameDev.ru ура! Буду потихоньку её наполнять. Планов много, а времени - мало :)

twitter style :)

Ссылка | Комментарии [5]