Select Git revision
SkyXEngine.h
SkyXEngine.h 30.48 KiB
/***********************************************************
Copyright © Vitaliy Buturlin, Evgeny Danilovich, 2017, 2018
See the license in LICENSE
***********************************************************/
/*!
\file
Заголовочный файл движка SkyXEngine, подключает все необходимые библиотеки
*/
/*!
\mainpage Документация SkyXEngine
Это документация API (интерфейса программирования приложения) 3D движка real-time рендера SkyXEngine. \n
Для того чтобы понять что такое SkyXEngine рекомендуем Вам ознакомится с \ref info_engine "кратким описанием движка". \n
Также было бы крайне полезным узнать \ref general_info_libs "об организации библиотек". \n
Дальнейшее ознакомление с движком SkyXEngine можно по <a href="./modules.html">документации, которая представлена модулями/подмодулями</a>.
*/
/*! \page info_engine Информация о движке SkyXEngine
\tableofcontents
\section ie_common Общее
\b SkyXEngine - движок для создания 3D игр с real-time рендером, использует технологии DirectX 9. \n
<small>Сразу уточнение, DirectX 9 мы используем в связи с личными предпочтениями, так как на наш взгляд эта технология является одной из лучших, хоть и считается устаревшей.
Все новое это забытое старое)) И как нам кажется ... нет ничего такого, чего нельзя было бы сделать на DirectX 9, но что можно сделать на другом GAPI, для создания игр любого жанра с real-time рендером.
Но это только точка зрения нашей команды и она может быть ошибочная. Однако в планах есть расширение поддерживаемых GAPI.</small>
<b>Формирование уровня</b> осуществляется посредством:
- загрузки статических моделей формата dse, с их автоматическим разбиением на "куски рендера" как quad или octo дерево, возможны сохранение/загрузка в бинарный файл всей геометрии уровня
- генерации растительности по маске, возможны 2 вида: трава (чем дальше тем меньше размер объекта) и деревья (с возможностью загрузки лодов), возможны возможны сохранение/загрузка в бинарный файл всей растительности уровня. Ручная расстановка расстительности поддерживается. Редактирование поддерживается.
<b>Освещение</b> представлено 3 видами источников света (опционально поддерживается генерация теней от каждого исчтоника света):
- глобальный (солнце), тени - PSSM
- локальный - точечный, тени - Cube Shadow Mapping
- локальный - направленный, тени - Shadow Mapping.
HDR эффект присутсвует.
<b>Система материалов</b> pbr, то есть построенная на физичеки корретных, но апроксимированных вычислениях. \n
Для формирования данных для освещения используется техника Deferred shading, что позволяет обрабатывать неограниченное количество источников света. \n
Поддерживаются отражения 2 видов:
- плоские (планарные)
- объемные (кубические).
Поддерживается до 3 полупрозрачных поверхностей в кадре (пока только тестовый режим, в планах улучшения качества). \n
Поддерживаемые эффекты поверхностей:
- микрорельеф
- микрорельеф по маске (до 4 текстур)
- детальность
- детальность по маске (до 4 текстур)
- комбинированный микрорельеф с детальностью по маске (до 4 текстур)
- альфа тест
- просвечиваемость (для освещения тонких поверхностей, к примеру листвы и травы).
Вся система материалов является открытой и практически любой функционал системы доступен для собственной интерпретации, посредством шейдеров. Имеется встроенный набор данных.\n
Поддерживаются различные пользовательские данные которые интерпретируются только создающим материалы.
Настрока физического материала доступна.
<b>Постпроцесс</b> состоит из эффектов:
- черно-белое изображение
- эффект сепия
- коррекция изображения
- рендер солнца
- bloom
- lens flare, эффект восприятия яркого света линзами
- depth of field, глубина резкости
- linear fog, линейный туман
- space screen ambient occulusion, глобальное освещение (точнее затенение) в пространстве экрана
- motion blur, размытие в движении
- nfaa
- dlaa.