Документация/Статьи/Обзор системы рендеринга

From NeoAxis Engine Wiki

Jump to: navigation, search
Перейти на уровень выше
RenderSystem.jpg

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
Базовая функциональность
Yes.jpg
Yes.jpg
Доступ к буферу глубины
Yes.jpg
No.jpg
Пост-эффекты требущие доступ к буферу глубины: Depth of Field, Light Scattering
Yes.jpg
No.jpg
Мягкие частицы (Soft Particles)
Yes.jpg
No.jpg
Hardware Geometry Instancing
Yes.jpg
No.jpg
Parallel-Split Shadow Maps (PSSM)
Yes.jpg
No.jpg

Выбор активного API

Для переключения между API откройте Конфигуратор NeoAxis (Configurator.exe) (по умолчанию его можно вызвать через Пуск -> Все программы -> NeoAxis Engine SDK -> Configurator). Откройте вкладку Render и выберите API в выпадающем списке Render system. Далее нажмите OK, для сохранения изменений. Для того, чтобы изменения вступили в силу нужно перезапустить редакторы и Game.exe.

Выбор API.