Рубрика «OpenGL» - 10

OpenGL ES 1.1 в Windows 8 и Windows Phone 8.1 - 1В далеком 1998 году я пытался сделать свою игру с OpenGL. Разработка с трудом дошла до альфы и была заброшена, но что особо запомнилось, так это как удобно было делать под GL интерфейсы — ортогональная проекция, пара трансформаций, биндинг нескольких вершин с GL_TRIANGLE_STRIP и у нас уже есть кнопка. И вот, спустя шестнадцать лет и занимаясь мобильным игростроем я столкнулся с таким же подходом в OpenGL ES 1.*, разве что 2D текстуры без вращений можно теперь рисовать через glDrawTexfOES.
Я поддерживал несколько проектов, сделанных по этому принципу и понемногу в голове выстроился коварный план: сделать кросс-платформенную 2D игру на мобильных с OpenGL ES и на C#, а на десктопах с обычным OpenGL. Цели я добился не с первого раза и было с этим много проблем, но в результате очередной проект у меня работает без изменений бизнес-логики на iOS, Android, BlackBerry, Windows XP/7, Mac OS X, Linux, ReactOS, Windows 8, Windows Phone 8.1. Материала набралось на много статей, но в этот раз я расскажу именно о поддержке Windows Runtime.
Читать полностью »

image

Благодаря своей гибкости и простоте, язык Python позволяет легко и быстро писать целый ряд приложений и утилит. Мною данный язык, в основном, используется для написания небольших скриптов, облегчающих выполнение различных задач, связанных с системным администрированием. Как оказалось, Python можно использовать и для не совсем «традиционных» задач, например, для вывода 3D графики. Об этом и будет мой небольшой предновогодний пост.
Читать полностью »

Картинка для привлечения внимания

Я думаю, большинство людей, кто застал времена DOS и ранних Windows 9x, играли или хотя-бы слышали о такой замечательной игре, как Supaplex. Лично для меня — это игра-легенда. Я до сих пор с трепетом вспоминаю долгие зимние вечера, проведённые в попытке пройти какой-нибудь сложный уровень на стареньком 286-м.

Так сложилось, что я программист. И не просто программист, а программист компьютерных игр. Так что, где-то в 2008 году я занялся написанием движка-«убийцы крузиса» (или что там было круто на тот момент, я уже не помню). Примерно через год меня настигло прозрение, что моих человеко-часов на проект уровня Unreal Engine не хватит. И я решил сделать легкую, «казуальную», версию движка и написать на ней пару простеньких игрушек.

Мой выбор пал на клон Supaplex. Правда, на тот момент уже существовало несколько клонов под Windows и другие платформы, поэтому просто писать все с нуля было неинтересно. Зато в мою голову заползла крамольная мысль: а что, если дизассемблировать оригинальный Supaplex и сделать игру с логикой, «идентичной натуральной». Такая задача казалась крайне заманчивой, и я взялся за её осуществление. Я заказал 3D-модельки у одного хорошего знакомого фрилансера и, пока он был занят моделлингом, я приступил к изучению пациента. Сразу предупреждаю, что я уже не помню многих деталей и могу что-то забыть или приврать, всё-таки это было довольно давно.

Читать полностью »

CPU vs GPU. Distance field - 1Привет всем. Я уже однажды писал про Distance Field, и приводил реализацию «эвристическим» кодом дающую неплохую скорость: habrahabr.ru/post/186482/

Зачем он нужен?

DField можно применять:

  • Для значительного повышения качества шрифтов
  • Для эффектов например горения контура. Один из эффектов я приводил в своей предыдущей статье
  • Для эффекта «metaballs» но в 2д и для любых сложных шейпов. (возможно я когда-нибудь приведу пример реализации этого эффекта)
  • А в данный момент DField мне нужен для качественного сглаживания углов и удаления мелких деталей.

И если в первых двух случаях мы можем заранее вычислить DField, то для других эффектов нам нужно просчитывать его в реальном времени.
В статье будет рассмотрен наиболее популярный, я бы сказал классический Chamfer distance (CDA) с кучей картинок, объясняющих принцип его работы, а так же рассмотрен двухпроходный алгоритм на GPU.
Оба алгоритма реализованы в демонстрационных программах на FPC.
Читать полностью »

Разработка игры в 115 кб — хаки, баги и досада - 1

В начале ноября я участвовал в 115-ом по счете конкурсе сообщества Independent Games Developers Contests (IGDC), темой которого была разработка аркадного шутера с лимитом в 115 килобайт за неделю. Под катом история разработки игры на OpenGL + Free Pascal, эксперименты с LZO, обход багов компилятора FPC для uFMOD, простейшая генерация текстур и досадный баг на видеокартах NVidia, который все испортил.

Видео, бинарник для Windows и исходный код также прилагаются — ищите в конце статьи.
Читать полностью »

image

Привет, друг! В этот раз я опять подниму вопрос о графике в ААА-играх. Я уже разобрал методику HDRR (не путать с HDRI) тут и чуть-чуть поговорил о коррекции цвета. Сегодня я расскажу, что такое SSLR (так же известная как SSPR, SSR): Screen Space Local Reflections. Кому интересно — под кат.Читать полностью »

Шейдер для жука
снизу фотографии настоящих жуков, сверху — моя реализация

Продолжение предыдущей статьи, на этот раз пишем шейдер.
Читать полностью »

Многие из нас наверняка задумывались «а не написать ли мне игру самому». Сейчас я веду проект «Open tomb» — попытка создать переносимый движок для игры в первые 5 частей «Tomb raider», который выложен на sourceforge.com, однако, судя по своему опыту, многим будет интересна история с некоторыми деталями о том, как движок писался с нуля и с практически отсутствующими знаниями в этой области. Даже сейчас многих знаний не хватает, а иногда просто не хватает мотивации что-то сделать лучше, или правильнее, однако лучше перейти к тому, как все же проект оживал шаг за шагом.
Читать полностью »

Такой разный Blur

Расскажу о различных реализациях эффекта размытия на GLSL.
Читать полностью »

Что сложнее: отрендерить сцену со взрывающимися вертолётами или нарисовать унылый график функции y=x2? Да, верно, вертолёты взрывать дорого и сложно — но народ справляется, используя для этого такие мощные штуки, как OpenGL или DirectX. А рисовать график, вроде, просто. А если хочется красивый интерактивный график — можно его нарисовать теми же мощными штуками? Раз плюнуть, наверное?

А вот и нет. Чтобы заставить унылые графики вменяемо выглядеть и при этом работать без тормозов, нам пришлось попотеть: едва ли не на каждом шагу подстерегали неожиданные трудности. Читать полностью »


https://ajax.googleapis.com/ajax/libs/jquery/3.4.1/jquery.min.js