
У меня есть виртуализированная машина Windows 7 (32 бит) с использованием программного обеспечения VirtualBox на собственном хосте Linux.
Для некоторого продвинутого программного обеспечения (ArcGIS Desktop 10.1) Мне нужно:
Требуется версия OpenGL не ниже 2.0, рекомендуется Shader Model 3.0 или выше.
Я управлялпроверка системных требований, вот результаты, говорящие мне, что нет доступной модели шейдера:
Теперь мне стало интересно, почему? VirtualBox поддерживает шейдерную модель с ранних версий. Я загрузил программу OpenGL Viewer, чтобы проверить настройки видеокарты. Вот результаты:
OpenGL Viewer сообщает мне, что у меня установлен OpenGL 2.1, а также модель вершинного и пиксельного шейдера версии 3.0. Так почему же некоторые программы не обнаруживают это?
Кстати, ArcGIS работает некорректно - как объяснено вэта тема. Вот почему я думаю, что есть серьезные проблемы с шейдерной моделью в VirtualBox.
Как это исправить?
решение1
Я выяснил: для успешного включения шейдерной модели необходимо установить экспериментальные драйверы WDDM для аппаратного ускорения 3D. Нравитсяописано здесь.
- Убедитесь, что на устройстве выделено не менее 128 МБ видеопамяти (рекомендуется 256 МБ).
- Для установки экспериментальных драйверов безопасный режим не требуется.
- Устройства > Установка гостевых дополнений... (Хост + D)
- Выберите: Direct2D-Support (экспериментальная)
- Предлагается установить базовый 3D драйвер вместо WDDM драйверов. Для установки WDDM драйверов просто нажмитеНетиХорошо.
- Завершите установку.
- Перезагрузить.
Сделанный.
решение2
Ну, мой ответ касается поддержки шейдеров DirectX, надеюсь, он будет кому-то полезен, потому что иногда Opengl и DirectX взаимозаменяемы.
Гостевые дополнения с экспериментальным драйвером WDDM не включают модель пиксельного или вершинного шейдера3.0для DirectX или OpenGL. Я попробовал спуферы вместо этого: DXTweaker
и Swiftshader
.
DXTweaker он же DirectX Tweaker подделывает значения, но приложения/игры делают некоторые дополнительные проверки и не обнаруживают шейдеры 3.0. Кстати, он существует только какбета-версия с замедленным действиеми вам нужно установить дату в виртуальной машине где-то на 2005 год, чтобы она заработала, если вы хотите попробовать ее настройки.
Swiftshader работает, но доступен только какдемои он отображает свой логотип поверх отрендеренного изображения. Также он падает у меня несколькими способами:
- Если я запускаю игру в полноэкранном режиме - VM уходит в BSOD
- Если я настрою игру на любое разрешение, отличное от моегособственный хост (1366*768)- вылетает. Даже если я запускаю виртуальную машину с другим разрешением, в окне или на весь экран.
Также имейте в виду, что поддельные шейдеры не эмулируются и не будут визуализироваться. Вы увидите глюки в результирующем изображении.