Программирование игр, создание игрового движка, OpenGL, DirectX, физика, форум
GameDev.ru / Программирование / Статьи

Статьи

Страницы: 1 2 3 4 5 Следующая »
Детали плавающей точки FordPerfect
Детали плавающей точки
Цель статьи - дать читателю представление о работе с числами с плавающей точкой в программировании. Предполагается дать базовый объём информации и предоставить уровень понимания, достаточный для самостоятельного проведения оценок в задачах, возникающих на практике.

Читать | Комментарии [15]
4 мая 2017

Frustum Culling _Wizard_

Одной из важных оптимизаций в компьютерных играх является отсечение геометрии, не видимой на экране (Frustum Culling, далее фрустум кулинг). Раз мы все равно не увидим объект, то и не зачем тратить ресурсы компьютера на его подготовку и отрисовку.

Читать | Комментарии [65]
8 фев. 2017

Стоимость OpenGL команд. _Wizard_
Стоимость OpenGL команд.
В современных проектах для получения красивой картинки отрисовываются тысячи различных объектов: персонажи, строения, ландшафт, природа, эффекты и т.д. Разумеется есть разные способы отобразить на экране геометрию. В этой статье мы рассмотрим как сделать это эффективно, посчитаем и сравним стоимость различных API вызовов для отрисовки геометрии.

Читать | Комментарии [65]
8 фев. 2017

Rectilinear Texture Warping Mephisto std
Rectilinear Texture Warping
В данной статье я расскажу об адаптивном методе теневых карт под названием Rectilinear Texture Warping for Adaptive Shadow Maps, о его достоинствах и недостатках, а также о реальном опыте использования данного метода в проекте (и что из этого вышло).

Читать | Комментарии [29]
12 окт. 2016

Behavior Trees в Unreal Engine 4 std::cin
Behavior Trees в Unreal Engine 4
Для программирования логики поведения искусственного интеллекта в Unreal Engine, используется Behavior Tree - древовидная структура которая задаёт действия для выполнения и условия для них. В этой статье будут описаны отличия реализации Behavior Tree в Unreal Engine 4 от классических реализаций. Кроме того приведен полный перечень имеющихся узлов для Behavior Tree с описанием.

Читать | Комментарии [8]
30 сен. 2016

Vulkan API «Hello Triangle» The Player
Vulkan API «Hello Triangle»
Статья описывает основные принципы работы с Vulkan API и включает в себя материал по установке SDK, обработке ошибок, работе с различными сущностями API и краткий курс по выводу треугольника, в качестве практической части. Работа позиционирует себя как быстрый экскурс в основы Vulkan API, не претендуя на полноту и оставляя детали на самостоятельное рассмотрение.

Читать | Комментарии [69]
15 сен. 2016

Маленькая статья про Vulkan SDC
Это небольшая статья для тех, кто хочет разобраться в основных концепциях нового графического API и его отличиях от предыдущего поколения. Я буду говорить о Vulkan vs OpenGL, но многие вещи можно применить и к другим API нового и старого поколений.

Читать | Комментарии [10]
1 сен. 2016

Unity Character Motor WISHMASTER35
Unity Character Motor
Когда-то давно, еще во времена Unity 3, мне стало интересно как работает физика персонажа. И я заглянул в класс CharacterMotor. Класс был написан на JavaScript, был огромный, страшный и непонятный. Я решил переписать его на C#, попутно отрефакторив. Недавно я вспомнил про свой старый CharacterMotor, решил еще немного подправить его и поделиться им. Тем более, тема физики персонажа не очень популярная (я вообще не видел никакой информации), хотя довольно интересная.

Читать | Комментарии [61]
29 июня 2016

Ассемблерные вставки в GCC FordPerfect
Статья является попыткой систематизировать brain-dump известной автору информации по ассемблерным вставкам в GCC.

Читать | Комментарии [25]
30 апр. 2016

Простая система событий на С++11 0r@ngE
При проектировании своих игр/программ/систем мы стараемся как можно больше следовать принципу SRP (Single responsibility principle) [1] - то есть каждая сущность инкапсулирует в себя одну конкретную обязанность.

Читать | Комментарии [107]
2 дек. 2015

Coverage Buffer из CryENGINE в деталях Mephisto std
Coverage Buffer из CryENGINE в деталях
Некоторое время назад я наткнулся в замечательной презентации Secrets of CryEGNINE 3 Graphics Technology от не менее замечательных Nickolay Kasyan, Nicolas Schulz и Tiago Sousa на описание любопытной технологии, названной авторами

Читать | Комментарии [21]
21 окт. 2015

Вставка одной поверхности в другую (многопоточный алгоритм) roserg
Вставка одной поверхности в другую (многопоточный алгоритм)
В статье рассматривается метод встраивания одной поверхности в другую. Данная статья имеет некоторые «нечеткие» определения, и в ней не гарантируется работа метода на любой геометрии. Она носит скорее исследовательский и теоретический характер, но возможно и это кому-то поможет.

Читать | Комментарии [28]
9 сен. 2015

Генерация шума FordPerfect
Генерация шума
В данной статье описываются подходы генерации шума, подробнее рассматривается набор наиболее популярных методов и даётся сопутствутствующая терминология. Статья во многом обзорная, и содержит достаточно много (поверхностно изложенной) теории, целью которой является дать читателю наводки для дальнейшего самостоятельного изучения.

Читать | Комментарии [55]
20 мая 2015

Dynamic vertex pulling в Direct3D11 bazhenovc
Dynamic vertex pulling в Direct3D11
Данная статья рассказывает про то, как можно рисовать миллионы уникальных объектов в Direct3D11 с минимальным оверхедом на CPU и максимально близкой к D3D12 или «AMD Mantle» скоростью. В статье показан пример использования так называемых Structured Buffers.

Читать | Комментарии [42]
21 янв. 2015

Screen space ambient occlusion с учетом нормалей и расчет одного отражения света. Sergio
Screen space ambient occlusion с учетом нормалей и расчет одного отражения света.
В этой статье я расскажу, как я с нуля делал SSAO (Screen Space Ambient Occlusion — расчёт фонового освещения в экранном пространстве) с учетом нормалей. Сразу следует отметить, что это наиболее простая и прямолинейная реализация «в лоб», не претендующая на оптимальность или новизну. Статья будет полезна в первую очередь тем, кто имеет желание разобраться, как это работает.

Читать | Комментарии [69]
17 янв. 2015

Машина состояний Volodar
Машина состояний
Представлю на суд общественности свою реализацию машины состояний, также известную как конечный автомат. Машина состояний привлекательна тем, что обрабатывает логику поведения объекта в заранее настроенном алгоритме, что крайне необходимо для сложных объектов. В статье приведу логику объекта, использующегося в моей игре Tropic Defense.

Читать | Комментарии [39]
14 сен. 2014

Объемы распространения света для непрямого освещения в режиме реального времени. neep
Объемы распространения света для непрямого освещения в режиме реального времени.
Данная статья описывает новый метод аппроксимации непрямого освещения динамических сцен для приложений реального времени, таких как видео игры. Мы используем трехмерные сетки и сферические функции для приближения пространственного и углового распределения света в сцене. Предложенный метод не требует предрасчётов и поддерживает большие сцены с помощью иерархии вложенных сеток.

Читать | Комментарии [78]
6 янв. 2014

Процедурная генерация карты (часть 1) KpeHDeJIb
Процедурная генерация карты (часть 1)
В этой короткой статье я поделюсь нехитрым алгоритмом, для процедурного генерирования геометрии карты, который я собрал как прототип для своей небольшой roguelike-like игры.

Читать | Комментарии [37]
11 ноя. 2013

Кое-что о размытии изображения с помощью шейдеров. Sergio
Кое-что о размытии изображения с помощью шейдеров.
Эта статья познакомит читателя с основными техниками размытия изображения при помощи GLSL шейдеров. Данные техники широко применяется в играх для создания таких эффектов как засветка (bloom), глубина резко изображаемого пространства (DOF), эфект движения на большой скорости итд.

Читать | Комментарии [43]
28 сен. 2013

Скелетная анимация на пальцах. Chaos_Optima
Скелетная анимация на пальцах.
Многие новички, которые только начинают постигать «скелетку», очень часто не понимают как она работает (даже при наличии многих статей на данном ресурсе) и что для её работы нужно, собственно им я и хотел бы объяснить на пальцах как работает скелетная анимация.

Читать | Комментарии [59]
26 дек. 2012

Физика «на пальцах»: Обнаружение столкновений для выпуклых геометрий Suslik
Физика «на пальцах»: Обнаружение столкновений для выпуклых геометрий
Обнаружение столкновений между телами — один из принципиально важных моментов при моделировании игровой физики твёрдых тел. Причём необходимо не просто указать сам факт пересечения, но и предоставить конкретные точки и нормали контактов, множество которых называется contact manifold. После многих лет написания собственного физического движка я пришёл к алгоритму, который хорошо себя зарекомендовал, как очень общий и достаточно быстрый алгоритм генерирования контактных точек.

Читать | Комментарии [75]
9 окт. 2012

Модели многопоточности, или «Прощайте дедлоки» kvakvs
Статья является выборочным переводом главы 5 из книги «Erlang and OTP in Action», Martin Logan, Eric Merritt, Richard Carlsson, издательство Manning.

Читать | Комментарии [41]
24 авг. 2012

Элементы игрового ИИ на основе табличной логики и марковских цепей. NavY
Довольно простое и изящное решение в области создания искусственного интеллекта для игр. Статья предназначена в первую очередь для новичков в игростроении, ещё только размышляющих над реализацией схем работы AI, но может быть полезна и опытным разработчикам.

Читать | Комментарии [23]
6 авг. 2012

Виртуальные текстуры 0xc0de
Виртуальные текстуры
Виртуальная текстура (или мегатекстура ) — технология развитая Джоном Кармаком. Виртуальные текстуры снимают ограничения на арт, позволяют сделать игровой мир более уникальным, раскрасив неповторяющимися текстурами. В этой статье вы узнаете о структуре виртуальной текстуры и о процессе работы с ней.

Читать | Комментарии [100]
4 июля 2012

GPSM: Geometry Pitch Shadow Map Аврелий
GPSM: Geometry Pitch Shadow Map
GPSM (Geometry Pitch Shadow Map) — еще один метод рендеринга теневых карт, дающий возможность реализовать тени, покрывающие огромные территории, используя всего одну текстуру, в которую происходит рендеринг (render target). Метод GPSM даёт для теней вдали от камеры наблюдения качество хуже, а вблизи — лучше. Этот метод я изобрел для своего движка и уже использую в двух проектах, решил поделится с вами, надеюсь, кому-то пригодится.

Читать | Комментарии [157]
30 апр. 2012

AngelScript Chaos_Optima
AngelScript
В данной статье мне хотелось бы показать почему мне понравился скриптовый язык AngelScript. Когда я выбирал язык для своего движка, я просмотрел множество кандидатур, и для подробного рассмотрения выбрал два скриптовых языка, ими были LUA и Python.

Читать | Комментарии [169]
2 ноя. 2011

OpenGL на Qt 4. Это просто! (часть 2) xxz
OpenGL на Qt 4. Это просто! (часть 2)
Во 2-ой части продолжается рассмотрение работы с OpenGL на Qt 4. Читатель познакомится с настройкой контекста OpenGL, созданием анимации и простым наложением текстур. Заодно в рамках «чистого» OpenGL будет рассмотрена интерактивная графика с помощью режима выбора (выбираем объекты на экране для дальнейшей манипуляции с ними), в рамках «чистого» Qt будет продемонстрировано создание главного окна, меню (menu bar), задействованы механизм сигналов и слотов и технология дерева объектов (иерархии объектов).

Читать | Комментарии [17]
10 авг. 2011

Редактор функций на основе кривых Безье Shalom
Редактор функций на основе кривых Безье
Статья о кривых Безье и о проблемах, с которыми можно столкнуться при написании редактора скалярных функций на базе кривых Безье.

Читать | Комментарии [12]
9 авг. 2011

Простая машинка в Unity crol
Простая машинка в Unity
Урок по созданию простой машинки в среде Unity при помощи компонента WheelCollider. Описаны базовые настройки этого компонента. Для понимания урока необходимы базовые знания среды Unity.

Читать | Комментарии [14]
19 июля 2011

Пишем отладчик для Lua 5.1 @!!ex
Пишем отладчик для Lua 5.1
В современных играх достаточно многое отдается на откуп скриптам. Самым распространенным и часто используемым для этого скриптовым языком является Lua . Удобный синтаксис, хорошая скорость (особенно при использовании LuaJIT), кроссплатформенность. Lua используется в проектах любых масштабов от небольших аркад, до монстров вроде World Of Warcraft.

Читать | Комментарии [25]
27 апр. 2011

Программирование звука с использованием XAudio2. s3dworld
Программирование звука с использованием XAudio2.
Всем доброго времени суток! Это моя первая статья на GameDev.ru, которая появилась в связи с тем, что в недавнем времени решил я сам перейти на библиотеку XAudio2. Документации по ней в Интернете на русском нет.

Читать | Комментарии [18]
23 апр. 2011

Software Occlusion Culling kas
Software Occlusion Culling
Оклюжен кулинга сейчас, наверное, нет только у ленивых. Некоторые используют HW OC, у которых есть очевидные недостатки в виде латентности и дополнительной нагрузки на GPU. Другие используют софтовую растеризацию. К примеру, мы можем растеризовать глубину близлежащих оклюдеров (специальной или прямо рендер геометрии), затем проверять баунд боксы отрисовываемых объектов относительно этой глубины. Радостей от такого подхода может быть несколько.

Читать | Комментарии [134]
3 апр. 2011

Компонентная система игровых сущностей. 3eR0.1ive
Компонентная система игровых сущностей.
Не раз поднималась тема об иерархии игровых объектов, их взаимодействии и управления ими. Я пробовал всякие варианты построения игрового объекта, и в итоге остановился на компонентной системе. Было это давненько, так что система успела себя оправдать по удобству и масштабируемости. О получившейся схеме и пойдет речь. Но для начала рассмотрим возможные варианты.

Читать | Комментарии [426]
3 апр. 2011

ЧАВО по матрицам и кватернионам MarkoPolo
Часто задаваемые вопросы по матрицам и кватернионам.

Читать | Комментарии [40]
9 мар. 2011

OpenGL на Qt 4. Это просто! (часть 1) xxz
OpenGL на Qt 4. Это просто! (часть 1)
Это ознакомительная статья, посвящённая программированию 3D-графики OpenGL (Open Graphics Library — открытая графическая библиотека) с помощью кроссплатформенной библиотеки Qt 4 (Q + toolkit: «Q» — префикс классов (с красивым начертанием, по мнению разработчиков); toolkit — инструментарий). Я надеюсь, она окажется полезной для тех, кто впервые решил познакомиться с OpenGL и выбирает практичную и удобную библиотеку GUI (Graphical User Interface — графический интерфейс пользователя).

Читать | Комментарии [98]
19 янв. 2011

Моделирование стеклянных поверхностей Sergio
Моделирование стеклянных поверхностей
С помощью современных графических адаптеров можно получать все более сложные динамические сцены. Это означает, что высококачественный (фотореалистичный) рендеринг переноситься из offline в реальное время. В частности, одной из насущных задач компьютерной графики является расчет и рендеринг глобального освещения и сложных материалов. В этой статье я хотел бы рассказать о моделировании стеклянных предметов.

Читать | Комментарии [63]
31 июля 2010

Пишем симулятор гонок Alexander K
Пишем симулятор гонок
В данной статье представлены методы для создания математической модели автомобиля, позволяющие достаточно точно симулировать физику авто на уровне лучших современных симуляторов гонок.

Читать | Комментарии [204]
17 июля 2010

Графические файлы DDS. Что лучше: DXT1, DXT3, DXT5? _Winnie
Графические файлы DDS. Что лучше: DXT1, DXT3, DXT5?
Файлы DDS. Описание формата DXTn, его возможностей, простые рекомендации по выбору формата компрессии.

Читать | Комментарии [43]
16 июля 2010

GPU Global Illumination (фейковый) Igor'
GPU Global Illumination (фейковый)
В этой статье будет обсуждаться реализация Глобально Освещения (Global Illumination) с использованием GPU, а фейк весь в том, что мы всё-таки будем использовать и CPU – для трассировки «фотонов».

Читать | Комментарии [22]
27 июня 2010

Hello World приложение для Sony PSP Igor'
Hello World приложение для Sony PSP
В этой статье я расскажу как написать ваше первое приложение для портативной консоли Sony PSP.

Читать | Комментарии [48]
20 апр. 2010

Страницы: 1 2 3 4 5 Следующая »
2001—2017 © GameDev.ru — Разработка игр