Virtualization for 3D Applications
January 7, 2008 1:13 am
It is very likely that you have read about virtualization and how it can make IT's life a lot easier. Virtualization has also become useful for people upgrading their operating systems, since they can still run their old applications on their new system, inside a virtual environment. Even better, people can run applications inside virtual systems without the risk of that application ruining their main system.
At first sight, virtualization may seem like the answer to all your prayers, but there are some things that virtualization can't help you with (yet?). For this article, I tried two different virtualization softwares, in order to figure out if virtual machines would be good enough to meet the demands when it comes to 3d animation. There are some others, including Parallels and Moka5, but I focused on these because one of them is free (Microsoft virtual PC) and the other one is known as the best virtualization software out there (VMWare).
The first virtualization software I tried was Microsoft Virtual PC 2007. Virtual PC is a free download available from Microsoft's website, and it's compatible with both 32bit and 64bit (it's a different version for each OS). Actually, this one is aimed at ITs wanting to deploy newer OS versions (such as Windows Vista), while keeping their "legacy apps" available on virtual computers. This means that Virtual PC is meant to virtualize different versions of the Windows OS. As you can tell, there's an option to select "other" OS. However, I am not sure if Linux could be installed on it since I didn't try it myself.
Microsoft Virtual PC's biggest advantage is that it's free. You can connect your virtual system to your network, so it can appear as another computer. This means it can share folders, documents and also access any network drive. The biggest disadvantage is that it doesn't support USB devices. This can completely make you forget about even considering Virtual PC, if you need to use any device that plugs into a USB port (such as scanners, printers or external capture devices), or if your software uses a USB key.
The second virtualization software is VMWare Workstation. This is considered as the best virtualization software available. It can run pretty much any operative system you can think of. VMWare also runs on both 32bit and 64bit systems. I tried the software with both Windows and Linux virtual machines with varied results, and that gives me a very good idea on whether or not I could virtualize 3D software applications.
Virtual PC was the easiest one to test, since it natively runs Windows systems. It can run DirectX, although that doesn't make much difference since DirectX is mostly used by games, and I don't know someone who would actually virtualize Windows just to play games instead of playing them in the host system. On the other hand, when I ran Maya 2008 on my virtual machine, the results were less than satisfactory.
Maya itself runs at decent speeds, but that can't be said about the viewport speed. A turntable animation of a Poser model (Victoria 3) didn't return more than 13fps on wireframe mode, while the same animation on my host OS (Windows Vista) ran at nearly 65fps. I have to add that the maya file was optimized for speed (the character didn't have deformers nor bone-based animation, so all Maya had to do is draw the model in the viewport). I can't think of any scenario where a user would like to run a Windows virtual machine -inside Windows itself- just to run a 3D application, but I still ran the test because I needed to check if the virtual machine was able to carry out the task if needed.
On VMWare, I decided to try Linux before trying Windows. The OS itself ran very stable and the performance was very good (keep in mind that I am not a Linux user, so I didn't know what to expect from it, be it blazing speeds or extreme multi-tasking). The easiest way I found to try the 3D acceleration capabilities of VMWare was to install "Compiz Fusion", a hardware-accelerated desktop environment for Linux. Luckily, the installation is a very user-friendly double-click procedure (on openSUSE, at least), but the 3D effects were nowhere to be found. After exploring the OS, I found out that the OpenGL hardware acceleration was disabled on my virtual machine.
I don't have Maya on my Linux VM, so I couldn't test my scene on it. However, finding out that my virtual machine had no hardware acceleration capabilities was enough to tell me that Maya would not have run smooth at all (not the viewport, at least). I am assuming that hardware acceleration should be turned on by default (I have no reason to think otherwise, unless openSUSE was "crippled by nature"), but if I am wrong, and hardware acceleration is indeed turned off by default, you are free to leave a message telling me how I can turn it on.
Maya on the Windows virtual machine on VMWARE was no different than the one on Microsoft Virtual PC; the animation even ran at the same speed.
According to the VMWare Workstation manual, there's "experimental 3D acceleration" support for DirectX applications, but it didn't help at all to improve my "Virtual Maya experience". I am guessing that's the same 3D acceleration available on VMWare Fusion for the Mac (it is known that Mac users often use VMWare Fusion to play games inside MacOS). To tell the truth, I don't see that much real advantage of that DirectX 3D acceleration support on 3D applications, as they use mostly OpenGL (except when you have to test game engines and such).
Keep in mind that I am not, by any means, stating that virtualization is not as good as everybody says. Virtual machines are very useful when you want to use old applications that your OS doesn't support anymore, or when you want to try a software package without compromising your main operating system. I just wanted to show you that virtualization is not suited for all computing tasks. Maybe you are using a dual-boot system, using one OS for 3D apps and another one for video and photo-editing, and you considered virtualization to be a good option. It may sound like a good idea and a time-saver, but I wouldn't recommend that approach after the results I got.
Some Linux users say that WINE is the answer, and that you can run any Windows application on it, but I have to disagree. I found WINE too slow to be actually useful (a small program such as UVMapper ran twice as slow on WINE). Some could blame it on the virtualization, but the rest of the OS worked very well, so I can't find a reason why Windows applications running on WINE were slow, other than WINE itself being slow.
Should you still try virtualization? Definitely; I am still running Virtual PC on my system because I've been using that virtual machine to install the software I only use for a given period of time (such as the circuit-design applications that we use in the University). On the other hand, if you talk about digital content creation and 3D animation, virtualization is not the way to go.
copied, printed, or reproduced in any manner without written permission.
Animation Alley is a regular featured column with Renderosity Staff Columnist Sergio Rosa [nemirc]. Sergio discusses on computer graphics software, animation techniques, and technology. He also hosts interviews with professionals in the animation and cinematography fields.
January 7, 2008
Please note: If you find the color of the text hard to read, please click on "Printer-friendly" and black text will appear on a white background.
From what I understand, Linux can be installed under VPC, but the results aren't nearly as good as you'd get out of VMWare. If you don't want to mess with dual-booting and want to use virtualization to run Linux, VMWare's the way to go right now. The only reason I bothered downloading Virtual PC is to run some of my older games that don't run well (or at all) under Windows XP; while DOSbox has its uses, running MS-DOS itself works better in some cases. Of course, that comes with most of the usual hassles of using DOS with certain programs. But, in a way, that's just a part of the whole experience. Short of putting together an older computer runnning outdated software (an option not everyone has), virtualization's the next best thing - and in some cases better. Who knows, maybe in time it'll get better and more advanced, resource hungry software can be made to run under any OS you may have. It's not there quite yet.
Interestingly enough, IBM's OS/2 did the exact same thing many years ago, in that you could create virtual machines that ran any version of an operating system that you might chose. I ran MSDOS 5.0. DRDOS 7.0 and PCDOS 5.0, and Windows 3.0 with their own memory management tools in each space. Each virtual machine was quite capable of running DOS software in the environment that OS/2 created for it. It was one of OS/2's most compelling technical features, because I never had to chose which version of DOS I wanted to use. The history and politics of OS/2 are the stuff of legend, and I won't repeat any here. These VM machines are nothing new; "everything old is new again", as they say.
As far as i know, there is no virtualization software on the market that gives you opengl 3d hardware acceleration. And if you want to test 3d windows software with wine, you have to install linux on your hardware with 3d drivers, not in a virtual machine, because if the virtualization software does not provide a 3d capable virtual graphics card, how should wine be able to run the software with the speed of a windows os with working 3d graphics drivers? At the moment virtualization is of not much use when 3d hardware acceleration is needed.
"And if you want to test 3d windows software with wine, you have to install linux on your hardware with 3d drivers, not in a virtual machine, because if the virtualization software does not provide a 3d capable virtual graphics card, how should wine be able to run the software with the speed of a windows os with working 3d graphics drivers?" I wasn't even testing 3d applications. I was testing the windows version of VLC player.
I've been running Poser 7 under OpenSuSE Linux by various means. I have found the best VM option is Virtualbox ( www.virtualbox.org )-I found it to be quite a bit better than VM ware as far as viewport manipulation. KVM is even better than Virtualbox as far as graphics go, but it is harder to set up and use. Rendering is slower in all cases. Virtualbox is available for Windows and OSX as well as Linux. The best way for me is using WINE-using the latest version of wine the only issues I have with Poser 7 are that it is slow saving scenes, the main window sometimes overlays the content and parameter dial windows (I resize the main window when it starts up so when it does pop to the front, it doesn't completely cover them) and it often crashes when importing a .obj file. Installation details can be found in the WINE application database: http://appdb.winehq.org/objectManager.php?sClass=version&iId=7598&iTestingId=12592 Another issue is Poser's updates won't install under Wine-I installed them into Poser in a Virtualbox machine, and copied over the Poser directory in Wine's C drive. Daz Studio 126.96.36.199 needs MS Visual C 6 runtime installed into WINE, where it performs wonderfully. I haven't been able to get it to run properly in a virtual machine; it is impossible to select in the viewport using the Mouse in Virtualbox, KVM and VMWare. Bryce 5.5 seems to work fine using WINE. BTW, I'm using an NVidia card with the proprietary Linux openGL drivers. Also, by definition you can't enable hardware acceleration in a virtual machine because it is accessing a virtual graphics card, not the hardware.
I'm in the same exact same boat as WandW (apart from using P7 only and not D|S). P7 works nicely with Wine. I'm also a VirtualBox fan because it actually allows USB devices to be used - I have a Wacom tablet that I can use inside VirtualBox with pressure sensitivity et al.