Войти

Программирование игр

Статьи

Синхронизации в Vulkan
Синхронизации в Vulkan
Одно из важных отличий Vulkan от более старых графических API, это больший контроль над синхронизациями как с CPU, так и внутри GPU. И как всегда многопоточность и синхронизация — это достаточно сложная тема. Стоит помнить, что драйвер Vulkan не обязан оптимизировать вызовы API, поэтому для максимальной производительности синхронизации должны быть расставлены наиболее оптимальным образом.

Читать | Комментарии [36]
26 фев. 2019

Пишем простой рейтрейсер используя Vulkan Raytracing
Пишем простой рейтрейсер используя Vulkan Raytracing
Всем привет! Сегодня я расскажу вам, как получить результат, изображенный на заглавной картинке к этой статье, используя Vulkan Raytracing.

Читать | Комментарии [60]
18 ноя. 2018

Введение в Vulkan Raytracing
Генетические алгоритмы в разработке игр.
Детали плавающей точки
Frustum Culling

Термины

Universal Scene Description (USD)
Universal Scene Description (USD)
Universal Scene Description (USD) — файловый формат описания трехмерной сцены, разработанный компанией Pixar.

Читать
5 июня 2018

Verge3D
Verge3D
Verge3D - трёхмерный движок для веба, использующий технологию WebGL. Основан на Three.js, от которого отличается наличием реалистичных материалов, визуальным редактором логики Puzzles, средой создания приложений и более тесной интеграцией с программами моделирования Blender и 3ds Max. 14 декабря 2017 года в рамках проекта был запущен облачный сервис Verge3D Network для публикации и распространения 3D-приложений.

Читать | Комментарии [19]
8 дек. 2017

Вуду-программирование
Blend4Web
Forward+

Подсказки

Подсветка кода и IntelliSense в Visual Studio для любых типов файлов.
Подсветка кода и IntelliSense в Visual Studio для любых типов файлов.
Привет всем! Сейчас я поделюсь с вами способом добавления кастомных типов исходников в MS Visual Studio.

Читать
20 ноя. 2018

Экспорт геометрии коллизии с материалом из 3DS Max в формат XML.
Создание собственного материала для геометрии коллизии с помощью MAX Script
3D Studio Max: Перезагружаемый плагин

Новости

Ray Tracing Gem. Доступно бесплатно!
Опубликована PDF-книга «Ray Tracing Gem. High-quality and real-time rendering with DXR and other APIs» на 600+ страниц, подготовленная NVIDIA и разными специалистами из области рейтрейсинга. Можно скачать отсюда:
https://link.springer.com/book/10.1007/978-1-4842-4427-2

Ссылка | Комментарии [7]
4 мар. 2019

Microsoft анонсировала DirectX Raytracing (DXR)
На проходящей в Сан-Франциско конференции разработчиков игр (GDC) компания Microsoft анонсировала поддержку в DirectX 12 технологии DirectX Raytracing (DXR). Новый программный интерфейс позволяет производить просчет рейтрейсинга при помощи поддержки этой технологии в железе.

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

SEED-screenshot | Microsoft анонсировала DirectX Raytracing (DXR)

Подробнее…

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

О дизайне игровых подсистем в 2048 Tournament
Опубликован доклад по итогам разработки игры 2048 Tournament. В нём секции о естественной и искусственной сложности, о принципах дизайна систем, о типах ошибок, о декларативном формировании сценария действий, о том, как у нас работает конечный автомат и о паре архитектурных трюков.

P.S. Не забудьте включить полноэкранный режим просмотра.
Ссылка на доклад: http://www.goo.gl/6DoH7R

2048_tournament_postmortem | О дизайне игровых подсистем в 2048 Tournament

Ссылка
27 янв. 2015

Sony расширяет программу PSM Dev Program на 12 стран, включая Россию

PSM Logo | Sony расширяет программу PSM Dev Program на 12 стран, включая Россию

Как сообщается на портале Playstation Mobile Developer Portal, 29 мая 2014 года Sony Computer Entertainment Inc. расширила программу PSM Dev Program на 12 стран, включая Россию, а PlayStation Store для PSM будет запущен в 4 новых странах 22 июня 2014 года.

Участие в этой программе даёт доступ к PSM Publisher License, которая необходима для разработки приложений при помощи PSM SDK и Unity for PSM, а также к возможности публиковать эти приложения в PS Store для PSM.

Всего на данный момент программа PSM Dev Program действует на территории 32 стран, а контент для PS Store для PSM в ближайшем будущем будет доступен пользователям 22 стран. При этом PS Store для PSM в данный момент не доступен российским пользователям.

Ссылка | Комментарии [18]
30 мая 2014

Программирование игр — создание компьютерной программы (программного обеспечения) с помощью языков программирования. В программирование игры, или создание игрового движка, входит программирование геймплея, создание 3D или 2D графики (при помощи OpenGL или DirectX, которые можно скачать бесплатно), поддержка физики и звукового сопровождения, обеспечение взаимодействия пользователя с игрой и с другими пользователями сетевой или онлайн игры, написание утилит и экспорта из пакетов моделирования, таких как 3DS MAX и Maya. Наиболее популярные среды для программирования игр: MS Visual Studio и Delphi.

Форум

Рассеяние точечного света в воде20 мар. 20190:21Kripto289
Добрый день.
Пытаюсь сделать подобный эффект света под водой
+ Показать

Поидее придумал костыль, рисую обычный свет + свет в скрин спейсе с отсечением выше поверхности воды.
Выходит нечто правдоподобное, но не знаю как отсекать скрин спейс освещение по поверхности воды.
(как на 3 картинке, которую нарисовал в фотошопе).

+ Показать

Правка: 4:43

Как читать буфер глубины в DirectX 919 мар. 201922:37shlem
Здравствуйте, друзья.
Собственно сабж.
Хочется найти XYZ координаты точки экрана, не перебирая все объекты.
Думал, совсем простая задача (Unproject to near and far planes, берешь значение глубины, и находишь кусок отрезка), а не могу найти решения для DirectX 9 как добраться до значений Z буфера.
Заранее спасибо.
Текстурные координаты из плоскости в цилиндр19 мар. 20194:38maks242
Собственно, как можно преобразовать текстурные координаты, чтобы визуально выглядело, будто текстура натянута на цилиндр?
Крестопроблемы. COM интерфейсы, множественное наследование + WRL19 мар. 20191:12MrShoor
Понадобилось работать именно с COM интерфейсами. Решил я тут воспользоваться WRL, чтобы не городить собственные QueryInterface-ы и иметь автоматически подсчет ссылок.

Но что-то встал в ступор, как его собственно использовать?
Сначала я написал 2 интерфейса:

interface DECLSPEC_UUID("{F1DFE67A-B796-4B95-ADE1-8AA030A7546D}") ITest1 : public IUnknown
{
public:
    virtual void DoTest1() = 0;
};

interface DECLSPEC_UUID("{94DE17EF-8125-491A-971A-69BD06DBAB6F}") ITest2 : public IUnknown
{
public:
    virtual void DoTest2() = 0;
};

И далее написал реализацию их унаследовавшись от RuntimeClass:

class Test12 : public RuntimeClass<RuntimeClassFlags<ClassicCom>, ITest1, ITest2>
{
public:
    void DoTest1() override {
        std::cout << "DoTest1()\n";
    }
    void DoTest2() override {
        std::cout << "DoTest2()\n";
    }
};

Теперь у меня появляется новый интерфейс:

interface DECLSPEC_UUID("{E053654A-DBC9-480D-B2BE-0FB5C2E95D53}") ITest3 : public ITest2
{
public:
    virtual void DoTest3() = 0;
};
Который я хочу заметить унаследован от ITest2. Теперь я хочу расширить Test12 как-то так:

class Test3 : public Test12, public RuntimeClass<RuntimeClassFlags<ClassicCom>, ITest3>
{
public:
    void DoTest3() override {
        std::cout << "DoTest3()\n";
    }
};
То есть я унаследовался от Test12, и дописал еще один метод DoTest3.

Теперь при попытке обявления:
Test3 tst;
Я получаю:

C2259: 'Test3': cannot instantiate abstract class
due to following members:
'void ITest2::DoTest2(void)': is abstract
see declaration of 'ITest2::DoTest2'

Ладно, понятно, нужно виртуальное наследование. Пишу сюда virtual:
class Test12 : public virtual RuntimeClass<RuntimeClassFlags<ClassicCom>, ITest1, ITest2>
и ничего не меняется. Перед ITest1 и ITest2 в данной строке прописать virtual не канает. В общем никакая комбинация virtual мне не помогла.

Лаааадно. Быть может не надо создавать классы прям так грубо? Говорят надо звать Microsoft::WRL::Make(). Что ж, давайте позовем:

ComPtr<Test3> tst1 = Make<Test3>();
Теперь мы имеем:
error C2385: ambiguous access of 'Release'
Хохо. Если попробовать виртуальное наследование - то ситуация никак не меняется. По прежнему имеем ambiguous при наследовании от IUnknown.

Под спойлером весь код:

+ Показать

Давайте поможем Даше найти Саше создать объект класса Test3?

DirectWrite vs GDI18 мар. 201920:28Barbar1an
DirectWrite вообще умеет рисовать текст без анйтиалиасинга и с пиксельной точностью как всегда умел GDI?

там есть 3 фалага

    D2D1_TEXT_ANTIALIAS_MODE_CLEARTYPE = 1,
    D2D1_TEXT_ANTIALIAS_MODE_GRAYSCALE = 2,
    D2D1_TEXT_ANTIALIAS_MODE_ALIASED = 3,

но все рисуют фигню, например ALIASED рисует без сглаживания но получается хрень полная


Untitled | Sony расширяет программу PSM Dev Program на 12 стран, включая Россию

Чем отличается?18 мар. 201911:52lookid
Spherical Harmonic от Radiance Transfer от irradiance Volumes?
Как я понимаю... irradiance Volumes запекаются в Light Probes с помощью Spherical Harmonic. А движку нужно получить Radiance Transfer. Считая что? Обратную Spherical Harmonic? Или интерполированное среднее из группы Light Probes, как из текстур?
Задача про двоичную систему18 мар. 20197:31igalinov1
Плиз, помогите разобраться

Предположим, есть картинки чёрно-белые 5*5 пикселов. В общей сложности (5*5) в степени 2=625 разных картинок (чёрно белых).
Но, если взять двоичное число из двадцати пяти единиц 1111111111111111111111111 и перевести его в десятичную систему, то получится 33554431.

Откуда взялось 33554431, если картинок всего может быть только 625 ???

можно ли мутить отражения от плоскостей простой растеризацией в дополнительную камеру ?17 мар. 201922:07itmanager85
можно ли мутить отражения от плоскостей простой растеризацией в дополнительную камеру ?

ну т.е. не SSR и не попиксельный ray tracing через отрендеренные данные в камеру пользователя ..

ну т.е. можно ли как то замутить такие отражения без непосредственной трассировки лучей ?

приоритет арифметических операций c#17 мар. 201918:31endeavour_pr
Vector2 P;
Vector3 U;
Vector3 A;
Vector3 B;

Vector3 V = U + (P.x - .5f) * 2 * A + (P.y - .5f) * 2 * B;


В каком порядке умножать ?!

код с юнити на блупринты передергиваю

вот так будет верно ?

1) 2*B
потом результат умножить на (P.y - .5f)

затем

2) 2*А и результат умножить на (P.x - .5f)

затем U + результат(2) + результат(1)

[Android] Сервер - вопрос17 мар. 201917:23Grim C. H.
Хай форумчане!
Озадачился следующими вопросами:

1) Многопользовательские игры с кучей игровых миров, которые появляются каждый день - как это реализуется? Ведь логично, что разрабы врядли каждый день запускают новую серверную машину?

2) В какую сторону копать и кто с этим сталкивался? Может быть что-либо годное по архитектуре подскажете

Зеркало казино Украины http://casino-cleopatra.net/zerkalo , Рокс казино зеркало