Skip to content
Snippets Groups Projects
README 6.38 KiB
Newer Older
  • Learn to ignore specific revisions
  • Copyright © Vitaliy Buturlin, Evgeny Danilovich, 2017. All rights reserved.
    
    SkyXEngine - графический 3D движок с real-time рендером, использует технологии DirectX 9.
    
    Документация по использованию: docs/html/index.html
    
    
    ИДЕОЛОГИЯ
    Основной технической идеей при разработке движка была идея о том что программист должен иметь контроль над объектами, которыми он оперирует, НО этот контроль должен быть в меру.
    Основной идеей предназначения служила и служит идея о том чтобы предоставляемый инструментарий мог полностью удовлетворять потребностям разработчика, без необходимости со стороны разработчика вникать в детали реализации, но чтобы этот инструментарий имел прозрачную, открытую, свободную, бесплатную лицензию, и разработчик мог спокойно податься в стихию сотворения своего мира.
    
    
    КРАТКОЕ ОПИСАНИЕ ВОЗМОЖНОСТЕЙ
    Формирование уровня осуществляется посредством:
    	загрузки статических моделей формата dse, с их автоматическим разбиением на "куски рендера" как quad или octo дерево, возможны сохранение/загрузка в бинарный файл всей геометрии уровня
    	генерации растительности по маске, возможны 2 вида: трава (чем дальше тем меньше размер объекта) и деревья (с возможностью загрузки лодов), возможны возможны сохранение/загрузка в бинарный файл всей растительности уровня.
    
    Освещение представлено 3 видами источников света (опционально поддерживается генерация теней от каждого исчтоника света):
    	глобальный (солнце), тени - PSSM
    	локальный - точечный, тени - Cube Shadow Mapping
    	локальный - направленный? тени - Shadow Mapping.
    HDR эффект присутсвует.
    
    Система материалов pbr, то есть построенная на физичеки корретных, но апроксимированных вычислениях. 
    Для формирования данных для освещения используется техника Deferred shading, что позволяет обрабатывать неограниченное количество источников света. 
    Поддерживаются отражения 2 видов:
    	плоские (планарные)
    	объемные (кубические).
    Поддерживается до 3 полупрозрачных поверхностей в кадре (пока только тестовый режим, в планах улучшения качества). 
    Поддерживаемые эффекты поверхностей:
    	микрорельеф
    	микрорельеф по маске (до 4 текстур)
    	детальность
    	детальность по маске (до 4 текстур)
    	комбинированный микрорельеф с детальностью по маске (до 4 текстур)
    	альфа тест.
    Вся система материалов является открытой и практически любой функционал системы доступен для собственной интерпретации, посредством шейдеров. Имеется встроенный набор данных.
    Поддерживаются различные пользовательские данные которые интерпретируются только создающим материалы.
    
    Постпроцесс состоит из эффектов:
    	черно-белое изображение
    	эффект сепия
    	коррекция изображения
    	рендер солнца
    	bloom
    	lens flare, эффект восприятия яркого света линзами
    	depth of field, глубина резкости
    	linear fog, линейный туман
    	space screen ambient occulusion, глобальное освещение (точнее затенение) в пространстве экрана
    	motion blur, размытие в движении
    	nfaa
    	dlaa.
    	
    СТРУКТУРА ПРОЕКТА
    build - директория для сборки движка (сюда приходят после компиляции exe, dll), здесь же игровые ресурсы
    docs - документация, настройки для Doxygen
    	html - документация в виде html файлов, открывать index.html
    	settings_doxygen - файл настроек для Doxygen
    libs - директория с файлами lib (сюда приходят все сгенерированные lib)
    proj - директория с проектами для сред разработки
    sdks - сторонние библиотеки, которые используются
    source - директория с файлами исходного кода
    
    ЦЕЛЬ
    Самую главную цель которую мы преследуем это разработка движка, на котором в дальнейшем можно разрабатывать игры, ибо в первую очередь разработка движка ведется в своем инетресе.
    Дополонительная и немаловажная цель это оценка нашего труда со стороны таких же как и мы - разработчиков (без разницы, игр или другого ПО), которым  нужен подобный движок.