This page has been translated automatically.
Видеоуроки
Интерфейс
Основы
Продвинутый уровень
Подсказки и советы
Основы
Программирование на C#
Рендеринг
Профессиональный уровень (SIM)
Принципы работы
Свойства (properties)
Компонентная Система
Рендер
Режимы вывода изображения
Физика
Браузер SDK 2
Лицензирование и типы лицензий
Дополнения (Add-Ons)
Демонстрационные проекты
API Samples
Редактор UnigineEditor
Обзор интерфейса
Работа с ассетами
Контроль версий
Настройки и предпочтения
Работа с проектами
Настройка параметров ноды
Setting Up Materials
Настройка свойств
Освещение
Sandworm
Использование инструментов редактора для конкретных задач
Расширение функционала редактора
Встроенные объекты
Ноды (Nodes)
Объекты (Objects)
Эффекты
Декали
Источники света
Geodetics
World-ноды
Звуковые объекты
Объекты поиска пути
Player-ноды
Программирование
Основы
Настройка среды разработки
Примеры использования
C++
C#
UnigineScript
Унифицированный язык шейдеров UUSL (Unified UNIGINE Shader Language)
Плагины
Форматы файлов
Материалы и шейдеры
Rebuilding the Engine Tools
Интерфейс пользователя (GUI)
Двойная точность координат
API
Animations-Related Classes
Containers
Common Functionality
Controls-Related Classes
Engine-Related Classes
Filesystem Functionality
GUI-Related Classes
Math Functionality
Node-Related Classes
Objects-Related Classes
Networking Functionality
Pathfinding-Related Classes
Physics-Related Classes
Plugins-Related Classes
IG Plugin
CIGIConnector Plugin
Rendering-Related Classes
VR-Related Classes
Работа с контентом
Оптимизация контента
Материалы
Визуальный редактор материалов
Material Nodes Library
Miscellaneous
Input
Math
Matrix
Textures
Art Samples
Учебные материалы
Внимание! Эта версия документация УСТАРЕЛА, поскольку относится к более ранней версии SDK! Пожалуйста, переключитесь на самую актуальную документацию для последней версии SDK.
Внимание! Эта версия документации описывает устаревшую версию SDK, которая больше не поддерживается! Пожалуйста, обновитесь до последней версии SDK.

Вывод на 3 монитора с плагином Surround

Surround предназначен для рендеринга UNIGINE-проекта на трех мониторах. Это позволяет расширять границы виртуального мира, сохраняя при этом полный контроль над визуализируемыми вьюпортами.

Примечание
Этот плагин нельзя использовать в приложении на основе Qt.

Требования к оборудованию#

Для запуска Surround должны быть выполнены оба аппаратных требования:

  1. Минимум 3 видеовыхода одновременно на одной видеокарте или системе NVIDIA SLI.
  2. Графический процессор серии AMD Radeon HD 6000 или NVIDIA GeForce 600.

Смотрите также#

  • Функции engine.surround
  • Примеры <UnigineSDK>/data/samples/plugins/app_surround_00 для получения дополнительных сведений.

    Чтобы запустить первый сэмпл из UNIGINE SDK Browser, нажмите кнопку Surround plugin на вкладке Plugin Samples.

Запуск Surround#

Surround может отображаться как в оконном, так и в полноэкранном режиме.

Surround on three monitors

Surround вывод на три монитора

Запустите приложение вместе с библиотекой плагинов (bin/plugins/Unigine/Surround/UnigineSurround_*) с обычно необходимыми параметрами запуска (например, API рендеринга, размер окна и т. д.).

Shell-команды
main_x64 -extern_plugin UnigineSurround

Вы можете использовать 64-битные отладочные или релизные версии библиотеки. (Движок автоматически загружает соответствующую версию библиотеки в зависимости от указанного основного приложения.)

Примечание

Невозможно использовать Surround с:

Настройка Surround#

Surround можно настроить для поддержки любых пользовательских пирамид видимости (симметричных или асимметричных) при рендеринге на трех мониторах.

Примечание
Чтобы предотвратить изменение настроек камеры из системного скрипта, укажите определение -extern_define "PROJECTION_USER" в панели запуска проекта.

Surround Cameras#

Surround имеет одно основное окно просмотра в центре, в то время как все остальные отображаются как вспомогательные . По умолчанию основным дисплеем является окно просмотра движка UNIGINE, используемое для конфигурации с одним монитором. Он использует матрицы Player, используемые движком для просмотра сцены. Другие дисплеи представляют собой произвольные камеры с любой перспективой и смотрящими в любом направлении. Каждый дисплей имеет свои собственные матрицы modelview и проекции. При необходимости можно включать и отключать как основной, так и вспомогательный мониторы.

  • Центральный монитор - первичный. Два боковых монитора - это вспомогательные мониторы, которые могут быть произвольными камерами с любой перспективой обращенными в любом направлении.
  • Каждый дисплей, включая основной, имеет свои собственные матрицы modelview и проекции.
  • По умолчанию только основной имеет интерфейс (графический интерфейс системы рендеринга, виджеты редактора, каркас или профилировщик). Однако отдельные Графические интерфейсы могут отображаться на всех мониторах.
  • У всех вьюпортов есть свои вьюпорты и маска Reflection для выборочной визуализации узлов и отражений от них.

Как настроить конфигурацию камер#

Как и в случае с Wall, рендеринг вьюпортов в Surround управляется скриптом wall.h (находится в <UnigineSDK>/data/core/scripts/system).

Чтобы реализовать пользовательскую конфигурацию камеры, закомментируйте wall.h в системном скрипте unigine.usc и оберните свой собственный код с помощью #ifdef HAS_SURROUND ... #endif в функции render() системного скрипта:

Исходный код (UnigineScript)
int render() {
	#ifdef HAS_SURROUND
		// place an implementation of a 
		// custom camera configuration here
		// ...
	#endif
	return 1;
}

Есть две возможные настройки в зависимости от того, как отображается центральный монитор. Его можно нарисовать:

  • рендерером движка, используемым по умолчанию (так же, как при рендеринге обычного приложения с одним монитором).
  • Сам рендерер Surround (что безопаснее, если вы собираетесь использовать асимметричную пирамиду видимости для центрального монитора и изменять его матрицу modelview).
Примечание
Следует использовать только какой-то один из этих двух модулей рендеринга.

В следующем примере показано, как настроить конфигурацию камеры и выбрать средство визуализации для центрального монитора.

1. Использование модуля рендеринга движка по умолчанию#

Первый вариант - визуализировать центральный (основной) монитор с помощью модуля рендеринга движка по умолчанию.

  1. Включите два боковых (вспомогательных) монитора через engine.surround.setEnabled(). По умолчанию все мониторы Surround отключены. Центральный должен быть отключен, так как он отрисовывается модулем рендеринга движка по умолчанию.

    Исходный код (UnigineScript)
    // Enable the 1-st and the 3-rd monitors.
    // The third argument of the function sets the "enabled" flag.
    engine.surround.setEnabled(0,1);
    engine.surround.setEnabled(2,1);
  2. Установите матрицы проекции и modelview для боковых мониторов, используя engine.surround.setProjection() и engine.surround.setModelview().

    Исходный код (UnigineScript)
    // Settings for the 1-st monitor
    engine.surround.setProjection(0,projection_0);
    engine.surround.setModelview(0,modelview_0);
    
    // Settings for the 3-rd monitor
    engine.surround.setProjection(2,projection_1);
    engine.surround.setModelview(2,modelview_1);

2. Использование средства визуализации Surround.#

Другой вариант - визуализировать центральный монитор с помощью модуля рендеринга Surround. Этот вариант можно использовать, например, если вы хотите настроить симметричные пирамиды видимости для всех мониторов.

  1. Отключите рендеринг в окне просмотра UNIGINE по умолчанию через engine.render.setEnabled():

    Исходный код (UnigineScript)
    engine.render.setEnabled(0);
  2. Включите все три монитора Surround, включая основной. В результате все три виюпорта будут визуализированы самим Surround:

    Исходный код (UnigineScript)
    // Enable all three monitors:
    engine.surround.setEnabled(0,1);
    engine.surround.setEnabled(1,1);
    engine.surround.setEnabled(2,1);
  3. Установите матрицы modelview и проекции для всех трех мониторов.

    Исходный код (UnigineScript)
    // Settings for the 1-st monitor
    engine.surround.setProjection(0,projection_0);
    engine.surround.setModelview(0,modelview_0);
    
    // Settings for the 2-nd (primary) monitor
    engine.surround.setProjection(1,projection_1);
    engine.surround.setModelview(1,modelview_1);
    
    // Settings for the 3-rd monitor
    engine.surround.setProjection(2,projection_2);
    engine.surround.setModelview(2,modelview_2);
Последнее обновление: 16.08.2024
Build: ()