Делаем графический движок
-
- Сообщения: 4460
- Зарегистрирован: 17 май 2015, 23:27
- Откуда: Беларусь
- Благодарил (а): 168 раз
- Поблагодарили: 531 раз
Делаем графический движок
Делаю свой движок. Есть прогресс. Хочу выложить здесь исходники и замутить что-то совместное.
-
- Сообщения: 4460
- Зарегистрирован: 17 май 2015, 23:27
- Откуда: Беларусь
- Благодарил (а): 168 раз
- Поблагодарили: 531 раз
Re: Делаем графический движок
Вот одна из первых тестовых картинок:
Вот в динамике:
Можно лицезреть игру света и тени на стенах от ярких цветных световых панелей.
Вот еще вариант, с более ярким окружающим светом:
Здесь видно что на фоне более яркого окружающего света свет от панелей заметен слабее. В общем всё как и должно быть согласно естественной физики света.
======
Далее хочу отладить и оптимизировать программу, а так же унифицировать работу с классами чтобы далее было легко и удобно строить сложные сцены (подготавливаю для своего старшего сына - чтобы ему было проще как начинающему программисту). Что и покажу далее. А так же встрою сюда эти круги которые рисовал ранее (с музыкой). Они будут отображены в виде подобных "световых панелей" или "дисплеев" в виртуальной реальности. А так же возможно придумаю другие формы представления когнитивной графики в 3D пространстве. Может и другие участники что-то добавят от себя.
Вот в динамике:
Можно лицезреть игру света и тени на стенах от ярких цветных световых панелей.
Вот еще вариант, с более ярким окружающим светом:
Здесь видно что на фоне более яркого окружающего света свет от панелей заметен слабее. В общем всё как и должно быть согласно естественной физики света.
======
Далее хочу отладить и оптимизировать программу, а так же унифицировать работу с классами чтобы далее было легко и удобно строить сложные сцены (подготавливаю для своего старшего сына - чтобы ему было проще как начинающему программисту). Что и покажу далее. А так же встрою сюда эти круги которые рисовал ранее (с музыкой). Они будут отображены в виде подобных "световых панелей" или "дисплеев" в виртуальной реальности. А так же возможно придумаю другие формы представления когнитивной графики в 3D пространстве. Может и другие участники что-то добавят от себя.
-
- Сообщения: 4460
- Зарегистрирован: 17 май 2015, 23:27
- Откуда: Беларусь
- Благодарил (а): 168 раз
- Поблагодарили: 531 раз
Re: Делаем графический движок
Значительно улучшил цветовую модель - сделал HDR цвета (что было проблематично поскольку я стремился чтобы это работало и на смартфоне а мой как оказалось не поддерживает более чем 8-битные текстуры - тем не менее я нашел способ). Благодаря чему появилась возможность делать значительно более яркие источники цвета.
Так же исправил артефакты которые проявлялись на краях стен
Вот примеры как это выглядит при разных комбинациях окружающего освещения и включенных световых панелей:
В динамике:
Так же исправил артефакты которые проявлялись на краях стен
Вот примеры как это выглядит при разных комбинациях окружающего освещения и включенных световых панелей:
В динамике:
-
- Сообщения: 4460
- Зарегистрирован: 17 май 2015, 23:27
- Откуда: Беларусь
- Благодарил (а): 168 раз
- Поблагодарили: 531 раз
Re: Делаем графический движок
Вот демонстрация работы алгоритма вычисления освещения (с многократным отражением света от всех поверхностей - что даёт мягкие полутени) в реальном времени :
Сначала видим полностью не расцвеченную сцену. Затем постепенно рассчитывается освещение. Затем смещаемся в сторону и в конце правого края видим как начинает расцвечиваться ранее нерасцвеченная зона в сторону которой мы сдвинулись.
Затем идет движение по сцене и видим как далеко впереди начинают расцвечиваться части к которым мы приближаемся.
Наконец я сделал попытку "догнать" еще не успевшие расцветиться зоны, но скорость движения слишком мала и догнать их не удается. Таким образом всё время находимся в почти полностью расцвеченной зоне.
Сначала видим полностью не расцвеченную сцену. Затем постепенно рассчитывается освещение. Затем смещаемся в сторону и в конце правого края видим как начинает расцвечиваться ранее нерасцвеченная зона в сторону которой мы сдвинулись.
Затем идет движение по сцене и видим как далеко впереди начинают расцвечиваться части к которым мы приближаемся.
Наконец я сделал попытку "догнать" еще не успевшие расцветиться зоны, но скорость движения слишком мала и догнать их не удается. Таким образом всё время находимся в почти полностью расцвеченной зоне.
-
- Сообщения: 4460
- Зарегистрирован: 17 май 2015, 23:27
- Откуда: Беларусь
- Благодарил (а): 168 раз
- Поблагодарили: 531 раз
Re: Делаем графический движок
Здесь демонстрация уже сложной сцены - это лабиринт. Здесь показано как по мере движения по лабиринту "подгружаются" (на самом деле вычисляются процедурно) новые секторы. И одновременно запускается вычисление освещения в подгруженных секторах. Сначала это показано сверху, намеренно так чтобы этот процесс можно было четко рассмотреть. Затем это показано как выглядит если двигаться внутри лабиринта - я намеренно приостанавливаюсь чтобы можно было рассмотреть как где-то там вдали обсчитывается освещение новых секторов. Если смотреть невнимательно то можно и не заметить. В конце ролика просто прогуливаюсь по лабиринту - добавление новых секторов и расчет освещения в них практически заметить сложно если не приглядываться специально.
Подергивания при повороте камеры - это что-то связанное с мышкой. С частотой кадров всё в порядке - она всё время не ниже 90 кадров в секунду. На смартфоне не ниже 60 кадров в секунду.
В чем главный нюанс продемонстрированного - в том что освещение вычисляется на лету - оно не требует заранее заготовленных карт освещения как это делается в традиционных графических движках. И эти карты освещения обычно весят десятки гигабайт. То есть данный движок заточен под процедурно генерируемые сцены которые не занимают никакого объема на диске или постоянной памяти устройства. Это важно для игр на смартфоне - а я нацеливаю движок именно для такого применения. Хотя и на компе он тоже прекрасно работает.
Подергивания при повороте камеры - это что-то связанное с мышкой. С частотой кадров всё в порядке - она всё время не ниже 90 кадров в секунду. На смартфоне не ниже 60 кадров в секунду.
В чем главный нюанс продемонстрированного - в том что освещение вычисляется на лету - оно не требует заранее заготовленных карт освещения как это делается в традиционных графических движках. И эти карты освещения обычно весят десятки гигабайт. То есть данный движок заточен под процедурно генерируемые сцены которые не занимают никакого объема на диске или постоянной памяти устройства. Это важно для игр на смартфоне - а я нацеливаю движок именно для такого применения. Хотя и на компе он тоже прекрасно работает.
-
- Сообщения: 4460
- Зарегистрирован: 17 май 2015, 23:27
- Откуда: Беларусь
- Благодарил (а): 168 раз
- Поблагодарили: 531 раз
Re: Делаем графический движок
Сейчас довожу графический движок до первоначальной кондиции когда уже можно будет сделать на нём набросок игры. Я хочу сделать мистический ужастик - путь через мрачные подземелья. Нужно будет пройти через страх. Кто будет бежать от страха тот заблудится. Это будет не экшн и не стрелялка. Скорей интерактивный фильм в виртуальной реальности. Неспешное повествование. Призрак живущий в подземелье расскажет заплутавшему путнику свою историю. И если путник поймет - он найдет выход.
И это первое что нужно будет понять игроку - от призрака нужно не убегать а нужно прислушиваться к тому что он говорит. И идти туда куда страшней всего.
Это будет одна из серии историй которые я хочу реализовать на этом движке. Будут и другие - светлые и радостные на обширных фантастических пространствах. У меня есть много задумок.
Для меня это форма художественного самовыражения. Наряду с музыкой. Музыка само собой будет присутствовать тоже.
Всё это из кода. В виде очень компактных исполнимых файлов - что неслыхано для индустрии игр. И да - это разумеется абсолютное хобби - никакой коммерции.
И это первое что нужно будет понять игроку - от призрака нужно не убегать а нужно прислушиваться к тому что он говорит. И идти туда куда страшней всего.
Это будет одна из серии историй которые я хочу реализовать на этом движке. Будут и другие - светлые и радостные на обширных фантастических пространствах. У меня есть много задумок.
Для меня это форма художественного самовыражения. Наряду с музыкой. Музыка само собой будет присутствовать тоже.
Всё это из кода. В виде очень компактных исполнимых файлов - что неслыхано для индустрии игр. И да - это разумеется абсолютное хобби - никакой коммерции.
-
- Сообщения: 4460
- Зарегистрирован: 17 май 2015, 23:27
- Откуда: Беларусь
- Благодарил (а): 168 раз
- Поблагодарили: 531 раз
Re: Делаем графический движок
Этот канул в лету. Начал делать другой - повыкидывал лишнее, всё упростил. И решил делать два отдельных проекта - для Android и для Windows. Вернее самые верхние уровни общие а нижний уровень полностью разделил. Так проще.
-
- Сообщения: 4460
- Зарегистрирован: 17 май 2015, 23:27
- Откуда: Беларусь
- Благодарил (а): 168 раз
- Поблагодарили: 531 раз
Re: Делаем графический движок
На смартфоне меня интересует исключительно вариант виртуальной реальности. Поскольку играть на телефоне на маленьком экранчике - ну это извращение. А вот вариант в очках виртуальной реальности - это уже вполне себе полноценный игровой процесс.
Пока смартфоны конечно слабоваты. Но тем не менее - определенный уровень 3D графики вполне доступен. И как дешевая альтернатива дорогущим компьютерным решениям - очень интересен.
К тому же смартфоны я так думаю тоже ведь не остановятся на текущем уровне производительности. В общем думаю направление вполне перспективное.
//
Кстати я когда-то раньше пытался выслать тебе apk файл чтобы показать пример но он не заработал. Я теперь знаю почему - я выслал тогда не все файлы. Сейчас всё с генерацией apk файлов у меня поставлено четко так что могу выслать примеры того что я делаю сейчас. Попозжа чуток.
Пока смартфоны конечно слабоваты. Но тем не менее - определенный уровень 3D графики вполне доступен. И как дешевая альтернатива дорогущим компьютерным решениям - очень интересен.
К тому же смартфоны я так думаю тоже ведь не остановятся на текущем уровне производительности. В общем думаю направление вполне перспективное.
//
Кстати я когда-то раньше пытался выслать тебе apk файл чтобы показать пример но он не заработал. Я теперь знаю почему - я выслал тогда не все файлы. Сейчас всё с генерацией apk файлов у меня поставлено четко так что могу выслать примеры того что я делаю сейчас. Попозжа чуток.