В августе этого года, после полутора лет напряженной работы, наконец-то вышла наша третья книга (про первую и вторую уже были посты на Хабре) ориентированная на разработку игр: 3D Graphics Rendering Cookbook: A comprehensive guide to exploring rendering algorithms in modern OpenGL and Vulkan.
Sergey Kosarevsky @CorporateShark
User
Mastering Android NDK
1 min
8.4KВ конце прошлого года вышла наша вторая книга про нативную разработку под Android с использованием Android NDK и C++ (про первую уже было рассказано на Хабре).
www.packtpub.com/application-development/mastering-android-ndk
www.packtpub.com/application-development/mastering-android-ndk
+7
Мультиплатформенный аудио плеер на C++ и OpenAL
3 min
34KТак сложилось, что большую часть жизни я пользовался Windows и привык воспроизводить аудио файлы с помощью Winamp. Он очень удобно интегрируется с командной строкой — запустил любой аудио файл и готово. После перехода на Linux и OS X (в основном по работе, но Mac использую и дома вместе с виндой) возникла острая необходимость найти альтернативу. Перепробывал большое количестко крафических плееров. Основная их проблема — это отсутствие нормальной интеграции с командной строкой и часто поддержка только одной из платформ: либо Linux, либо OS X. С консольными плеерами ситуация получше: mpg123 и mpg321 практически идеально делают именно то, что надо. Вот только появилось одно большое «но». Они не умеют играть .ogg и трекерную музыку (.it, .mod, .xm, .s3m и прочие), которой тоже накопилось достаточно и расставаться с ней совершенно не хотелось.
+18
Передача умных указателей по константной ссылке. Вскрытие
4 min
19KУмные указатели часто передаются в другие функции по константной ссылке. Эксперты C++, Андрей Александреску, Скотт Мейэрс и Герб Саттер, обсуждают этот вопрос на конференции C++ and Beyond 2011 (Смотреть с [04:34] On shared_ptr performance and correctness).
По сути, умный указатель, который передан по константной ссылке, уже живёт в текущей области видимости где-то в вызывающем коде. Если он хранится в члене класса, то может случиться так, что этот член будет обнулён. Но это не проблема передачи по ссылке, это проблема архитектуры и политики владения.
Но этот пост не про корректность. Здесь мы рассмотрим производительность, которую мы можем получить при переходе на константные ссылки. На первый взгляд может показаться, что единственная выгода это отсутствие атомарных инкрементов/декрементов счётчика ссылок при вызове конструктора копирования и деструктора. Давайте напишем немного кода и посмотрим более внимательно, что же происходит под капотом.
По сути, умный указатель, который передан по константной ссылке, уже живёт в текущей области видимости где-то в вызывающем коде. Если он хранится в члене класса, то может случиться так, что этот член будет обнулён. Но это не проблема передачи по ссылке, это проблема архитектуры и политики владения.
Но этот пост не про корректность. Здесь мы рассмотрим производительность, которую мы можем получить при переходе на константные ссылки. На первый взгляд может показаться, что единственная выгода это отсутствие атомарных инкрементов/декрементов счётчика ссылок при вызове конструктора копирования и деструктора. Давайте напишем немного кода и посмотрим более внимательно, что же происходит под капотом.
+23
VSDCT на OpenGL ES 3
4 min
9.6KДавно хотел сделать демку VSDCT на мобильном телефоне. VSDCT (Virtual Shadow Depth Cubemap Texture) это представление cubemap текстуры, когда вместо 6 отдельных граней используется одна обычная 2D текстура-атлас, в которой исходные грани кубической карты помещены в виде плотно упакованных тайлов. Посмотрим, как сделать тени от точечного источника света, использую эту технику.
+21
Android NDK Game Development Cookbook
3 min
46KНаконец-то вышел наш сборник рецептов про С++ разработку под Android.
+42
Разрабатываем под Linux из Windows через sshd: настройка Far и NetBox
1 min
22KИногда бывает так, что разработчики вынуждены работать под Windows (например, привычка или политика компании) но им надо вносить изменения в какой-то переносимый код собирать его под Linux. Можно просто поставить виртуальную машину (например, Oracle Virtual Box) и работать прямо в ней. А можно настроить систему так, чтобы работать в Far в Windows, иметь доступ ко всей файловой системе виртуалки и выполнять все команды прямо из Far. Посмотрим как это настроить на примере Virtual Box, Ubuntu, Far Manager и плагин NetBox.
-1
Разработка на С++ для BlackBerry 10 без использования IDE (с использованием OpenGL ES 2)
15 min
7.4KПод BlackBerry OS 10 есть отличная среда разработки: QNX Momentics IDE, на базе Eclipse. И всё бы хорошо, но когда дело доходит до автоматизации сборки билдов, настройки билд-конфигураций на TeamCity, то IDE нужна как собаке пятая нога. Именно это было самой большой проблемой при портировании нашего движка на BlackBerry. Давайте разберёмся, как можно собрать проект, упаковать дистрибутив, подписать его и запустить на эмуляторе — и всё это без использования IDE.
+8
Система достижений (achievements) в Linderdaum Puzzle
5 min
6.7KНе так давно на Хабре поднимался вопрос о проектировании системы достижений для игры. В комментах шло бурное и плодотворное обсуждение различных вариантов. Тогда мы уже тестировали нашу игру, готовились к релизу и поучаствовать в дебатах я не смог. Но увидев топик сразу же подумал: «У нас же есть как раз такая работающая система. Почему бы о ней не рассказать?». Подумал и записал в todo-list. Сегодня настало время рассказать, как это работает в нашем игровом проекте Linderdaum Puzzle.
+6
Делаем OpenGL ES LiveWallpaper на Linderdaum Engine под Android
4 min
11KTutorial
Привет Хабр!
Тема создания LiveWallpaper под Android уже хорошо обкатана: есть туториалы на чистой Java, есть туториалы на Java с OpenGL ES 1.0/2.0, есть… да чего только нет!
Сегодня мы посмотрим, как быстро сделать LiveWallpaper под Android на С++ используя Linderdaum Engine и GLSL.
Тема создания LiveWallpaper под Android уже хорошо обкатана: есть туториалы на чистой Java, есть туториалы на Java с OpenGL ES 1.0/2.0, есть… да чего только нет!
Сегодня мы посмотрим, как быстро сделать LiveWallpaper под Android на С++ используя Linderdaum Engine и GLSL.
+23
3D стереофотография своими руками
2 min
23KДля бюджетной съёмки 3D контента существует три варианта:
С первым вариантом всё просто — он несколько дороже и позволяет делать готовые 3D фотографии с обычного телефона. Ничего хитрого: навёл — нажал кнопку — получил фото.
Вариант со съёмкой двух кадров одним фотоаппаратом с разных точек имеет существенное ограничение — снять динамичную сцену не получится, потому что пока вы переставляете фотоаппарат с места на место, то действующих лиц уже и след простынет.
Остановимся более подробно на третьем варианте: он особенно интересен, если у вас уже есть обычный зеркальный фотоаппарат.
- смартфоны и мыльницы с двумя встроенными камерами: LG Optimus 3D, HTC Evo 3D; Fuji FinePix REAL 3D
- съёмка двух кадров одним фотоаппаратом с разных точек;
- насадки на обычный зеркальный фотоаппарат — 3D объективы, например Loreo3D;
- два зеркальных фотоаппарата с синхронным спуском — это уже не бюджетно, но даст наилучшее качество.
С первым вариантом всё просто — он несколько дороже и позволяет делать готовые 3D фотографии с обычного телефона. Ничего хитрого: навёл — нажал кнопку — получил фото.
Вариант со съёмкой двух кадров одним фотоаппаратом с разных точек имеет существенное ограничение — снять динамичную сцену не получится, потому что пока вы переставляете фотоаппарат с места на место, то действующих лиц уже и след простынет.
Остановимся более подробно на третьем варианте: он особенно интересен, если у вас уже есть обычный зеркальный фотоаппарат.
+14
Работа с жестами под Android с использованием Linderdaum Engine
3 min
1.5KСегодня мы поговорим о том, как сделать управление сценой мультитачем и жестом pinch-zoom на Android используя Linderdaum Engine.
+3
Разработка под Android с использованием Linderdaum Engine
8 min
9.8KПривет хабрасообщество!
Тема написания приложений под андроид на С++ незаслуженно забыта. Сегодня мы узнаем как писать многоплатформенные приложения под Android используя Linderdaum Engine.
Тема написания приложений под андроид на С++ незаслуженно забыта. Сегодня мы узнаем как писать многоплатформенные приложения под Android используя Linderdaum Engine.
+24
Быстрая сборка С++ библиотек под Андроид
2 min
9.7KПривет хабрасообщество!
Многие задают вопрос: «У нас есть куча библиотек на С++, которые мы хотим собрать под Андроид. Как это сделать?». Ниже по шагам описан возможно самый простой способ это сделать.
Многие задают вопрос: «У нас есть куча библиотек на С++, которые мы хотим собрать под Андроид. Как это сделать?». Ниже по шагам описан возможно самый простой способ это сделать.
+26
Information
- Rating
- Does not participate
- Location
- Колпино, Санкт-Петербург и область, Россия
- Registered
- Activity