我有一台在本机 Linux 主机上使用 VirtualBox 软件虚拟化的 Windows 7(32 位)机器。
对于一些高级软件(ArcGIS Desktop 10.1) 我需要:
最低要求 OpenGL 版本 2.0 运行时,建议使用 Shader Model 3.0 或更高版本。
我一直在运行系统要求检查,结果如下 - 告诉我没有可用的着色器模型:
现在,我想知道为什么? VirtualBox 从早期版本开始就支持着色器模型。 我下载了 OpenGL Viewer 软件来检查显卡设置。 以下是结果:
OpenGL Viewer 告诉我我已安装 OpenGL 2.1 以及顶点和像素着色器模型版本 3.0。那么为什么有些软件没有检测到这些呢?
顺便说一下,ArcGIS 无法正常工作 - 如此主题。这就是为什么我认为 VirtualBox 中的着色器模型存在一些严重问题。
如何解决这个问题?
答案1
我发现:要成功启用着色器模型,您需要安装用于 3D 硬件加速的实验性 WDDM 驱动程序。例如描述在这里。
- 确保设备至少分配了 128MB 视频内存(建议 256mb)。
- 安装实验性驱动程序不需要安全模式。
- 设备 > 安装访客添加功能...(主机 + D)
- 选择:Direct2D 支持(实验性)
- 建议安装基本 3D 驱动程序,而不是 WDDM 驱动程序。要安装 WDDM 驱动程序,只需单击不和好的。
- 完成安装。
- 重启。
完毕。
答案2
好吧,我的回答是关于 DirectX 着色器支持,我希望它对某些人有用,因为有时 Opengl 和 DirectX 可以互换。
带有实验性 WDDM 驱动程序的客户添加未启用像素或顶点着色器模型3.0对于 DirectX 或 OpenGL。我尝试了欺骗器:DXTweaker
和Swiftshader
。
DXTweaker 又名 DirectX Tweaker 会伪造值,但应用程序/游戏会进行一些额外的检查,并且不会检测着色器 3.0。顺便说一句,它仅存在于定时炸弹测试版如果您想尝试进行调整,则需要将 VM 中的日期设置为 2005 年的某个时间才能使其正常工作。
Swiftshader 可以工作,但只能作为演示并在渲染的图像上显示其徽标。此外,它还以多种方式崩溃:
- 如果我以全屏模式开始游戏 - VM 就会出现 BSOD
- 如果我将游戏配置为除我的分辨率之外的任何分辨率主机本机(1366*768)- 它崩溃了。即使我以不同的分辨率、窗口或全屏模式运行虚拟机。
还请记住,欺骗着色器不会被模拟,也不会被渲染。您将在结果图像中看到故障。