Документация/Статьи/Обзор системы рендеринга
From NeoAxis Engine Wiki
| Language: | Status: | Approved |
Contents |
Обзор
Система рендеринга - базовая компонента движка, предоставляющая функциональность отображения 3D графики. Система включает в себя абстрактный интерфейс для имплементации различных графических API.
В данный момент, система поддерживает два графических API:
Для обоих API поддерживаются практически все особенности движка. Ниже представлено более детальное сравнение.
Список особенностей системы рендеринга
Система рендеринга поддерживает практически все широкоиспользуемые современные возможности 3D графики. А также, включает полную поддержку интегрированных и старых видеокарт, брагодаря поддержке Fixed-Function Pipeline.
Общие особенности
- Система рендеринга основана на модифицированном и сильно оптимизированном графическом движке OGRE
- Поддержка Shader Model 3.0
- Поддержка следуюших языков шейдеров: HLSL, GLSL, CG
- Поддержка практически всех видеокарт, включая старые и встроенные видеокарты
- Поддержка Fixed-Function Pipeline (FFP)
- Процедурная генерация шейдеров для большей производительности
- Поддержка создания кеша шейдеров для более быстрой загрузки приложения
- Поддерка трех основных типов источников света: Directional, Omni, Spot
- Возможность лимитировать версию шейдеров или вовсе выключать шейдеры (для тестирования)
- Полноэкранный антиалиазинг
- Рендеринг в текстуру, поддержка генерации отражений в реальном времени
- Поддерка всех основных форматов текстур: PNG, JPEG, TGA, HDR, BMP, PSD and DDS; поддержка кубемап, объемных, 3D и сжатых текстур (DXT/S3TC/3Dc)
- Лоды
Материалы и освещение
- Попиксельное освещение
- Normal mapping (включая поддерку 3Dc текстур)
- Parallax mapping
- Рендеринг в кубемап
- Specular maps
- Emission maps
- Реалистичный рендеринг воды
- Специальные материалы для рендеринга растительности
- Поддержка цвета в вершинах
- Анимация текстур (скроллинг, вращение)
- Лоды материалов
- Возможность легко создавать новые типы материалов и их особенностей
Рендеринг в широкий диапазон (HDR)
- 64-bit High Dynamic Range, возможность рендеринга в широкий диапазон цвета
- HDR Bloom
- Adaptive exposure
- Tone mapping
Динамические тени
- Depth Shadow Mapping
- Parallel-Split Shadow Mapping
- Мягкие тени
- Самозатенение
- Тени для Fixed-Function Pipeline
- Стенсильные тени
- Оптимизации теней для различных вендоров, Fetch4 для ATI и NV Hardware Shadows для NVIDIA
- Корректные тени от прозрачных и альфа-тест материалов
Статичное освещение
- Поддержка карт освещения (Lightmap)
- Irradiance Volume для освещения динамических объектов с помощью предрасчитанного статичного освещения
- Встроенный инструмент для расчета статичного освещения (на данный момент включает простой расчетчик)
- Смешивание статичного и динамического освещения
- Возможность простой интеграции сторонней библиотеки для расчета статичного освещения или создания своей
Анимация
- Поддержка скелетной анимации
- Поддержка Morph/Pose анимации
- Блендинг анимаций
- Ручное управление костями из кода
Постпроцессинг
- Фреймфорк для создания новых постэффектов
- Включены следующие эффекты: LDR Bloom, Radial blur, Blur, Motion blur, Grayscale, Heat vision, Invert, OldTV, Tiling
Специальные эффекты
- Продвинутная система частиц, множество втроенных типов эмиттеров и аффекторов
- Поддержка SkyBox, SkyDome, возможность создавать свои материалы неба
- Декали
- Билборды
Сравнение поддеживаемых особенностей для Direct3D и OpenGL
Движок поддерживает практически одинаковые возможности для обоих API, за некоторым исключением:
| Особенность | Direct3D 9 | OpenGL |
|---|---|---|
| Базовая функциональность | ||
| Доступ к буферу глубины | ||
| Пост-эффекты требущие доступ к буферу глубины: Depth of Field, Light Scattering | ||
| Мягкие частицы (Soft Particles) | ||
| Hardware Geometry Instancing | ||
| Parallel-Split Shadow Maps (PSSM) |
Выбор активного API
Для переключения между API откройте Конфигуратор NeoAxis (Configurator.exe) (по умолчанию его можно вызвать через Пуск -> Все программы -> NeoAxis Engine SDK -> Configurator). Откройте вкладку Render и выберите API в выпадающем списке Render system. Далее нажмите OK, для сохранения изменений. Для того, чтобы изменения вступили в силу нужно перезапустить редакторы и Game.exe.

