Войти

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

Игровой движок, 3D графика, сеть, физика, логика, уеб

НовостиСтатьиПодсказкиТерминыFAQФорумИнфо

Статьи

Recursive Tile-based architecture
Recursive Tile-based architecture

Данная статья вводит понятие Recursive Tile-Based Architecture (RTBA), расширяющее возможности традиционной tile-based архитектуры. Предложенный подход позволяет работать с аппаратно-ускоренным тайловым растеризатором в терминах когерентного рейтрейсинга, каждый тайл рассматривается, как средство обработки пучка лучей.

Читать | Комментарии [116]
8 янв 2022

Имитация раскачивания дерева под воздействием ветра
Имитация раскачивания дерева под воздействием ветра

Статья демонстрирует простой метод имитации воздействия ветра на дерево (куст), реализованный на вертексном шейдере.

Читать | Комментарии [19]
9 окт 2020

Освещение с использованием фотометрического профиля
Гидродинамика Шрёдингера на пальцах
Предрасчёт рейкаста для эффективного рендеринга травы и меха
На пути к эффективному алгоритму Global Illumination, часть 1

Термины

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+

Подсказки

MAX Script: Разделение 3D модели на элементы по группам нормаль векторов.
MAX Script: Разделение 3D модели на элементы по группам нормаль векторов.

Здесь представлен скрипт 3D Studio MAX, при помощи которого можно разделить 3D модели на элементы по группам нормалей, также смотрите «MAX Script: Разделение 3D модели на элементы по группам сглаживания».

Читать
10 мая 2020

Delphi: Точный таймер (Win API)
^ Матрица LookAt
Инверсия матрицы 4x4

Новости

Вышла книга 3D Graphics Rendering Cookbook

Вышла книга 3D Graphics Rendering Cookbook: A comprehensive guide to exploring rendering algorithms in modern OpenGL and Vulkan авторов Sergey Kosarevsky (_NetSurfer_) и Viktor Latypov (Vinil)
Подробнее…

Ссылка | Комментарии [49]
6 фев 2022

Развитие рендера в Path of Exile

Выложили мой доклад с exilecon. В нём я рассказываю о нескольких необычных техниках рендеринга, разработанных для Path of Exile. Доклад на английском языке. Есть русские субтитры.

Запустить видео по клику - Как делать игрыЗапустить видео по клику - Как делать игры

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

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)

Подробнее…

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

Форум

Подключил glad к проекту с opengl. При запуске выкидывает исключение на строке glClear(GL_COLOR_BUFFER_BIT)18 мая 20226:41Yandexru

Погуглил и вроде пишут что это из-за неинициализованного чего-то... Если я подключил глад то почему выскакивает исключение?

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

MVS 2022.

Реализация 3d планеты, средствами 2d графики16 мая 202215:18LeonLeonMobo

Всем привет!
Наткнулся на трейлер одно из дополнений к игре

Запустить видео по клику - Как делать игрыЗапустить видео по клику - Как делать игры

и стало интересно, возможно ли, сделать такую же планету как в видео (и на превью видео), но средствами 2d графики (спрайты и отрисовка)
Как вы считаете?
Вот картинка, какого эффекта (в идеале) хотелось бы добиться.

+ Показать

Саму планету можно отрисовать посредством постепенного движения спрайта (можно затемнить участки ниже), для себя вижу две проблемы, как рисовать настолько объёмные облака? и как рисовать здания (они прямо выступают сквозь атмосферу и выделяются на поверхности планеты)

Постепенно буду реализовывать все идеи обсуждения (на js)


Для облаков есть идея крутить (и постепенно уменьшать) спрайты с облаками, нужно еще как то добавить им тень и тень на саму поверхность планеты под ними. Но непонятно как это делать и нужно ли.

Примерно так:

+ Показать

Спасибо за советы и обсуждения!

SDL2 под Sony PSP. Неправильно работает обновление экрана.16 мая 202211:01Gradius

Портирую игру с ПК на карманную консоль Sony PSP.

Есть проблема с показом содержимого кадра на экран консоли.

Код, который отображает буфер( VRAMBuffer[400*240*2] ) на экран:

 SDL_RenderClear(renderer);
 SDL_UpdateTexture(texture,NULL,VRAMBuffer,SCREEN_WIDTH*2);
 SDL_RenderCopy(renderer,texture,NULL,NULL);
 SDL_RenderPresent(renderer);

Возникает проблема: первое обновление отображает корректно, дальше проиcходит порча кадра:

1 | Microsoft анонсировала DirectX Raytracing (DXR) 2 | Microsoft анонсировала DirectX Raytracing (DXR)

Если же создавать и уничтожать текстуру каждый кадр, то работает нормально:

texture=SDL_CreateTexture(renderer,SDL_PIXELFORMAT_RGB565,SDL_TEXTUREACCESS_TARGET,SCREEN_WIDTH,SCREEN_HEIGHT);

 SDL_RenderClear(renderer);
 SDL_UpdateTexture(texture,NULL,VRAMBuffer,SCREEN_WIDTH*2);
 SDL_RenderCopy(renderer,texture,NULL,NULL);
 SDL_RenderPresent(renderer);

 SDL_DestroyTexture(texture);

Подскажите, с чем может быть связано такое поведение?  Многопоточность подгаживает?  Или память "уплывает"?

Правка: 11:01

Ошибка Шейдера! Unity3D16 мая 202210:42Orcan

Привет Всем! Ребят Как убрать Ошибки Желтые?
Metal: Shader[Hidden/UIElements/EditorUIE]: Pixel format [MTLPixelFormatRGBA32Float] of texture [UIR Shader Info 5] bound at index 0 is incompatible with texture parameter [half _ShaderInfoTex]. Compatible types [float]

Metal: Shader[Hidden/UIElements/EditorUIE]: Pixel format [MTLPixelFormatRGBA32Float] of texture [UIR Shader Info 5] bound at index 9 is incompatible with texture parameter [half _ShaderInfoTex]. Compatible types [float]

Я из проекта удалил все Шейдеры! Потом из Asset все удалил А эта ошибка осталась Тоесть пустой проект оставил

А ошибка все равно вылезает

В новом проекте такого нету

DirectX 12 инсталляция14 мая 202214:23SmoothBoy

Я сижу на Visual Studio 2019 и Windows 7 и DX11. Протестировал демки из книги Франка Луны по программированию на DirectX 11, решил перейти на следующую книгу Франк Луна Программирование DirectX 12, но демки из книги начали требовать разные dll после компиляции и запуска. Я покопался в интернете на сайте Microsoft сказано как я понял- что бы иметь DirectX 12 надо перейти на Windows 10. Правда ли надо переходить с Win7 на Win10 что бы запускать исходники к этой книге под DirectX 12? Кроме того сейчас новый DirectX SDK уже не выходит отдельным пакетом как последний DirectX SDK June 2010 а распространяется вместе с Windows SDK, я хотел спросить какую версию Windows SDK 10 ставить вместе с Visual Studio 2019 под Win10? Потому что там в инстяляции Visual Studio 2019 три кажись версии Windows SDK 10. Какую ставить под Win10 для запуска демок из книги для DirectX 12?

Молния13 мая 202217:15MikeNew

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

Запустить видео по клику - Как делать игрыЗапустить видео по клику - Как делать игры

В каких играх подобное реализовано хорошо?
Посоветуйте как сделать чтобы смотреть на это было приятно.

Playfab Multiplayer Server12 мая 202214:07Osiris

Доброго дня!

Хотел поинтересоваться есть ли коллеги, которые работали с playfab как облачным сервисом для хостинга игровых серверов? Меня интересует момент размещения сервера, я пробовал пока что два варианта - Linux Container и Windows Process и оба на самом облаке ругаются на неправильные настройки. Хотя Windows Process на локальной машине через тулзу для отладки я сумел запустить.

Редактор карт и случайная генерация.11 мая 202216:36Ergo Proxy

Допустим, я создаю игру (2D). Пошаговая стратегия с намеком на глобальность. Основной частью "игрового опыта" предполагается генерация случайных Миров, с заданными игроком параметрами: размер, тип, климат и тп. Но также предполагаются и сценарии на установленных картах. С чего логичнее начинать: с редактора или с генерации? Рискну предположить, что с редактора логичнее, но мало ли... 😅

Правка: 18:46

DX 11 компиляция шейдеров10 мая 202218:320xc0de

Задача собрать шейдеры в бинарные блобы из под Linux. Т.е. нужен аналог D3DCompile(). Возможно ли такое? Как я понял DXC не умеет.

Создание системы квестов на Unity10 мая 202213:29Spayswolf

И так я хочу сделать систему квестов для ранера. У меня есть 6 режимов игры. Мне нужно чтобы выходил текст по типу (Наберите н очков в режиме классический). Я хочу сделать это с помощью рекорда того режима на который ориентирован квест. Предположим рекорд в классическом режиме 10 мы прибавляем к нему 10 и пишем (Наберите 20 очков в режиме классический). Сохраняю рекорды с помощью PlayerPrefs. Как сделать так ,чтобы мы переменной присвоили 1 раз рекорд 1 из 6 режимов и он оставался не измененным даже если рекорд режима меняется.Вот код

    public float kvest1;
    public float cel1;
    public int i;


    public Text textKvest;

    void Update()
    {
        if(i == 0)
        {
            cel1 = PlayerPrefs.GetFloat("ro")+ 10;
            textKvest.text = "Набери " + cel1 + " очков в режиме Classic";
            kvest1 = PlayerPrefs.GetFloat("so");
            if(kvest1 > cel1)
            {
                i++;
            }
        }


    }
    void Start()
    {
      i = PlayerPrefs.GetInt("Kvest");
      
    }

Я надеюсь понятно объяснил

Купить выкидные ножи по ссылке: nozheman.club/vykidnyye-nozhi/ в интеренет-магазине Ножеман .