Мультиконтролируйте 3D приложение

Мне бросили вызов с C++ 3D проект приложения, который будет использовать 3 дисплея, каждый представляющий от различной камеры.

Недавно я узнал о Ogre3D, но не ясно, поддерживает ли это вывод различных камер к различным дисплеям/GPU.

У кого-либо есть опыт с подобной Установкой и Людоедом или другим механизмом?

8
задан user16120 7 January 2010 в 21:10
поделиться

2 ответа

В случае OGRE3D можно сказать несколько вещей о поддержке мультиголовок. По моему опыту, рабочим решением является использование исходной версии Ogre 1.6.1 и применение этого патча. Используя этот патч, пользователи смогли отрисовать приложение Ogre в конфигурации монитора 6.

Personnaly, я успешно применил этот патч и использовал его с плагином StereoManager для подключения приложений Ogre к 3D-проектору. Я использовал только бэкэнд Direct3D9. Плагин StereoManager поставляется с модифицированной демонстрацией (Fresnel_Demo), которая поможет вам настроить ваше первое мультиголовочное приложение.

Я также должен добавить, что мультиголовочный патч теперь является частью ядра Ogre, начиная с версии 1.7. Ogre1.7 был недавно выпущен как RC1, так что это может быть самым быстрым и простым способом заставить его работать.

3
ответ дан 5 December 2019 в 22:18
поделиться

Хотя мое предположение состоит в том, что индекс на TINYINT будет быстрее индекса на CHAR (1) из-за того, что нет накладных расходов на обработку строк (параметры сортировки, пробел и т.д.), у меня нет никаких фактов, чтобы подкрепить это. Я думаю, что нет существенной разницы в производительности, о которой стоит беспокоиться.

Однако, поскольку вы используете PHP, хранение в виде TINYINT имеет гораздо больший смысл. Использование 1/0 значений эквивалентно использованию true и false , даже если они возвращены как последовательности в PHP и могут обрабатываться как таковые. Вы можете просто сделать , если ($ record ['field']) с результатами в виде логической проверки, вместо преобразования между 'y' и 'n' все время.

-121--1434778-

Сам по себе не фанат принципа YAGNI; Я вижу, что он слишком часто используется для обоснования плохо разработанного программного обеспечения. Излишне продуманное программное обеспечение тоже, конечно, проблема, но «YAGNI» не оставляет большого помещения для анализа фактического воздействия.

Оказывается, что в мире программного обеспечения многие вещи, которые, по вашему мнению, вам не понадобятся, вам действительно понадобятся. А потом некоторые. Кто такой Датхункит.

Я написал одно или два приложения, которые должны были стать удаляемыми приложениями или задержками, которые все еще находятся в производстве через два года. Они - боль, которую нужно поддерживать.

Особенно когда речь идет о чем-то вроде безопасности - вероятно, она понадобится .

-121--2525051-

По крайней мере, в большинстве систем (например, Windows, MacOS) оконная система создает виртуальный рабочий стол с различными мониторами, привязанными к различным частям рабочего стола. При необходимости можно (например) создать одно большое окно, которое будет охватывать все три дисплея. Если вы настроите это окно на использование OpenGL, почти все, что использует OpenGL (почти наверняка включая Ogre3D), будет работать просто хорошо, хотя в некоторых случаях создание такого большого разрешения вывода может облагать графическую карту налогом до точка, что это немного медленнее, чем обычно.

Если вы хотите иметь дело с отдельным окном на каждом дисплее, все может быть немного сложнее. OpenGL сама по себе (даже не пытается) не определяет, как обрабатывать дисплей в нескольких окнах - это до набора функций, специфичных для платформы. Например, в Windows имеется контекст рендеринга для каждого окна, и необходимо использовать WGLMakeCurrent для выбора контекста рендеринга, к которому вы относитесь в любой момент времени.

Если память обслуживается, порт Windows Ogre3D поддерживает несколько контекстов визуализации, поэтому это также не должно быть проблемой. Я бы ожидал, что он может работать с несколькими окнами в других системах, но я не использовал его в других системах, так что я не могу сказать с уверенностью.

Однако я думаю, что поддержка тройного монитора будет почти непоследовательна в ваших общих усилиях по разработке. Конечно, это означает , что вам (может сказать ваш босс) нужна тройная настройка монитора для разработки и тестирования,что, конечно, не плохо!: -)

Edit: OpenGL сама по себе не указывает ничего о полноэкранных окнах по сравнению с обычными окнами. Если память используется, по крайней мере, в Windows для получения полноэкранного приложения, используется ChireDisplaySettings с CDS _ FULLSCREEEN . После этого он рассматривает по существу весь виртуальный рабочий стол как единое окно. Я не помню, что сделал это с несколькими мониторами, так что я не могу сказать много с большой уверенностью.

3
ответ дан 5 December 2019 в 22:18
поделиться
Другие вопросы по тегам:

Похожие вопросы: