Thursday, December 24, 2009

MachStudio Pro: Can a GPU replace a CPU?


by: Brajan Martinovic @ brightsideofnews.com
Mach Studio Pro or is the time ripe for GPU-based renderer?
No matter where you come from or where do you work, there is one pressing fact - it is very hard to predict the future. Hence, if you would start talking about BlackBerries and iPhones back in 2000, people would look at you as you are a "trekkie" living in parent's house basement. Yet, more than five years ago a team of people around David and Yoni Konig, two brothers and more importantly people with a vision in 3D - started StudioGPU, a company dedicated to bringing a 3D workflow that would harness the power of GPU. Five years ago, you could choose between ATI Radeon X800 and GeForce 6800.

We heard about MachStudio Pro in spring of this year, when this promising company signed the deal with AMD to bundle their application with AMD's most powerful graphics cards. Firstly, MSP was bundled with elderly FireGL V8650 2GB GDDR4 but in summer this got replaced with FirePro V8750 2GB GDDR5, both being top-of-the-line products AMD can offer.

The package
MachStudio Pro unwrapped: The software and ATI FirePro V8750
MachStudio Pro unwrapped: The software and ATI FirePro V8750


The fully-featured, $4999-version of MachStudio Pro comes bundled with a retail AMD FirePro V8750 2GB, current top-of-the-line professional board from AMD. V8750 2GB is based on ATI RV770, more known as the GPU behind Radeon 4800 series. Since we don't expect AMD to launch DirectX 11-based FirePro cards until April or August [NAB/Siggraph], this board will carry the torch for at least one more quarter. The card was packed in its retail box, with all the accessories that come along. MachStudio Pro is a simple DVD box containing one medium, USB keylock and keyboard shortcut cheat-sheet.

Setup

In order to experience the difference between the FirePro board and regular MachStudio Pro, we decided not to install the card until we become comfortable with MachStudio Pro as a application on its own. Thus, we used Quadro FX 4800 SDI and GeForce GTX 275 based boards to begin with. When it comes to the application itself, installation was a breeze. You need to install the software, connect the bundled USB verification key and load the application. We tested the application on following systems:
  • Intel Core i7 965 3.33 GHz [provided by Intel]
  • Asetek LCLC [provided by Asetek]
  • ASUS P6T7 SuperComputer [provided by ASUS USA]
  • nVidia Quadro FX 4800 SDI [provided by nVidia]
  • 12GB Kingston DDR3-1600 [provided by Kingston]
  • 2x 600GB Seagate Cheetah 15.7K in RAID0 [provided by Seagate]
  • Sony BD-100A Blu-ray burner
  • CoolerMaster RealPower Pro 1000W [provided by CoolerMaster]
  • Intel Xeon W3520 2.67 GHz
  • 12GB Corsair XMS DDR3-1333
  • DFI X58-R3H6 JR mATX
  • Gainward GeForce GTX 275 896MB Golden Sample
  • Seagate Barracuda 7200.11 1TB
  • Corsair 850W power supply
We have tried a variety of graphics cards with this software part: Quadro FX 4800 SDI [GT200b-based] and Quadro FX 4600 [G80-based], GeForce GTX 285 2GB, GTX 275 896MB from nVidia side and Radeon 3870 1GB, Radeon 4870 1GB, PowerColor Radeon 5870, FireGL V8650 1GB, FirePro V7750 1GB and FirePro V8750 2GB. As you can see for yourself, these ten boards present a good overview of hardware and performance that can be achieved from November 2006 till' today.

Given that this product heavily utilizes the graphics processor, difference in CPU speed is negligible. We did try to overclock the 965 to 4GHz, but saw no tangible performance difference. Expectedly, overclocking the GPU was whole another ballgame.

Experience

MachStudio Pro: User Interface
MachStudio Pro: User Interface is simple and it works - adjustment time was non-existent in both cases

The very first thing that you notice is a simplistic interface. Scene manager is on the left and it lists all the imported objects, cameras, lights, environment, custom layers, fog and ambient occlusion. Expanding the object from the list brings up Object Properties Panel on the right. Here, you can access its material, surface and controls. To be honest, this is where you will spend most of your time, adjusting the shaders and lights.
On the bottom left side, you see Render Preferences, while on the right there is Driver Properties.

Just below the 3D viewport, you can see the Time Slider - control to animate/tweak the timeline/curve. First off, in order to optimize your speed you might want to disable Ambient Occlusion pass [Render Preferences] where all the passes are listed and checkable. While AO is fantastic, it slowed things down no matter what GPU we threw it at and more importantly - you don't need it in the first stage while you're busy exporting/importing and task-switching from your 3d app to MSP.

Sgpu Export inside Autodesk 3ds Max 2010
Sgpu Export inside Autodesk 3ds Max 2010

In order to work inside Mach Studio Pro, you need to import scenes from your favorite 3D application. In our case, we tried Autodesk 3ds Max 2010 and Google SketchUp Pro. Exporting is done by installing an exporter plug-in in your 3d application. We have to admit, this is a very simple operation and we didn't experience hassle with it - exporting the scene was as simple as selecting the objects, clicking the export button and choosing what you want to be exported [just the models, vertex animation with or without geometry, camera animation or particles].
In our experience, we loved how simple it is because there are situations where you have to do a lot of exporting again and again and again [until you get the desired scene], especially if you make some changes to the model or animation in the 3d app. Exporting it again isn't much of a problem and doesn't eat up a lot of precious time. This workflow is painless in big productions given that many studios often use one app for animation and the other for rendering. Adding MSP to your app as a mighty GPU-based renderer plugin ends with awesome results. :)

Given the early stage of this application, we did notice that sometimes - objects or textures weren't updated so we had to reopen the scene. The only thing we didn't manage to get to work is exporting the geometry as a subdivision surface. In short, the exporter will bake every subdivision surface you have in the scene, making it a very heavy model to work with once inside MSP. According to MPS user guide, a simple tag should be written in object's properties letting MSP know that the tagged object must be treated as a subD [subdivision] surface with 1 level of subdivision. We did try that on many attempts but didn't succeed, so I ended up working with baked hipoly meshes, some of them having up to three levels of subdivision. MSP didn't crash but of course - the playback was choppy. This could simply be avoided by generating proxy objects to stand in while you work just as it's often done in other apps. We certainly hope this next version will offer better levels of integration, adding extra controls in the exporter to deal with subD surfaces to avoid generating large amount of data that takes some time to export. This is especially true for animated objects that are baked vertex per frame.

Regardless of this tiny glitch the amount of polygons MSP was able to take care of was impressive. Most of the time, you don't actually need a real time playback because the animations are already imported. Except the lighting or material properties, of course. By working in this application, we didn't really feel like animating things in MSP if you can do it in the app you're already accustomed to. Switching the workflow load into MSP could offer significant time savings, though - but it does require that you re-think the stages of your project.
Material Editor is quite simple and easy to work with. The first thing that you notice is the old-school appearance. True, I did expect a powerful node based UT-like editor, but MachStudio Pro Material Editor reminds us of 3ds max or early Maya, way before acquisition by Autodesk. Truth to be told, we're not much of a nodes fan anyways. In MSP, you get what you want without much hassle with trees of nodes.

Experience: Shaders

Cel-Shading in MachStudio Pro - easy, fast and good looking
Cel-Shading in MachStudio Pro - easy, fast and good looking

You can choose between simple shaders like phong and blinn or really cool ones like cartoon [Cel-shader], Fresnel, carpaint or SSS [Sub-Surface Scattering].
Now, the SSS shader is fast and looks darn good. Beside the translucency maps, it has a lot of others maps to fill. Micro-normal map lets you apply a tiled map on top of your main normal map, making the model appear a lot more detailed. This is quite useful and we're curious why this micro-normal/normal map is not present in any other shader.

Tessellated object shows much more details than the regular one, and is rendered as fast
Tessellated object shows much more details than the regular one, but you have to have Tessellation in mind while creating the character, so that you don't overdetail the object in 3D app, but wait until render time.

Yes, this is where the hardware tessellation jumps in, you can get the hipoly geometry that main normal map used to fake, and apply a tiled normal to act as a micro map. This was also the clearest differentiator between AMD and nVidia hardware. With nVidia's current hardware not supporting Tessellation, you have no other choice but to resort to old-school gaming development tricks [performance-wise, we might argue that the "trick" is faster, Ed.].

Wireframe of our Tessellated character reveals the level of geometry - just nuts.
Wireframe of our Tessellated character reveals the level of geometry - just nuts

On AMD's hardware, you have Tessellation and no need for tricks but again, it's not that AMD's FirePro card was any slower doing micro-normal/normal map in SSS. Working with this app and the speed of SSS shader, we just feel that this is a really quick and more interactive way to get something you previously had to spend a lot of time rendering displaced geometry using the CPU-based renderers.

Subsurface Scattering - fast as heck
Subsurface Scattering is easy to work with

In that perspective Mach Studio Pro and GPU-acceleration are awesome. At first, we had some problems getting it right but then I discovered it works a whole lot better when you use a 32-bit format just as mental ray or V-Ray would. Cubemap/Planar reflections/refractions work nice: they can be dynamic, blurred and affected by normal maps.
Fresnel function should be a lot more flexible, though. Artists use ramp/falloff/fresnel shaders a lot to mask maps according to angle or distance. Also the procedural shaders are most welcome. For future versions, adding at least a simple noise or cellular map would be great for adding additional bumps and colors to the scene.

Even though the 3ds max Material Editor is not node based either, you can do a lot of experimenting, blending, masking, animating or playing with vertex colors. This is not the case with Mach Studio Pro –you are limited to adjusting the sliders and adding maps to the slots. One thing that helps is that most of the UI sliders can go negative or beyond the given limit - makes no sense but just type in the desired number next to the slider and it works. True, I do think simple spinners would be more useful then.

Most of the time you will be very satisfied with the given shaders and their results - but sometimes you just need more space to experiment, especially if you're working on a realistic kind of render. StudioGPU has announced a better and more flexible editor in later versions and I believe artist will have more control over their shaders then.

Lighting

Scene lighting is done in real time using environment lights, point lights and projected lights. Projected light can use a bitmap to project color and cast shadows - with surprisingly good results, with no or very few artifacts that are known to appear in games that use this technique. Each light can have different shadow settings, color, softness or bias that work very well. In our test and production scenes, it was quite comfortable to work with this kind of shadows - they perform great for cartoony renders. If you are gunning for realism, it is possible to achieve realistic shadows by clever usage of multiple lights. However in commercial production, this simply isn't good enough to stand up to raytraced area shadows generated by CPU-based renderers. This is a very large field where MachStudio Pro can improve - Area Shadows and Global Illumination shoud be either faked or GPU-accelerated in near future. If that part is resolved, the end result in photorealistic renderer would certainly make CPU renderers cry. But for not, photo realism will remain in the domain of conventional CPU renderers.

Environment and camera settings offer interesting post-effects such as Bloom and DOF [Depth of Field] that you would usually do in other compositing software. Frankly, we like the quality and performance of DOF/Bloom in MSP. You can also add fog and it can be consisted out of multiple layers. Once you completed the scene, you can add Ambient Occlusion - in the end it looks excellent, with lots of controls to adjust and make it just as you want it. The final image renders out in a matter of seconds per frame in full HD resolution with Anti-Aliasing turned on. All we did afterwards is use Adobe's After Effects to add some contrast curves / sharpen filter and the video was done. We hope that StudioGPU will add Motion Blur effect in later versions. Naturally, the images can be rendered in multiple passes like depth buffer, shadows, normals or velocity...

The scenes we tested with rendered anywhere between 10 and 20 times faster than on our powerful quad-core/octa-thread processors. Do note that if we would really push the details into overdrive, we would get a single 1080p frame in 10 seconds on bundled FirePro V8750, while 3.33 GHz CPU would probably take 20-30 minutes per single frame. This is quite an advantage from business perspective, as you can offer your client final-quality looking video in a matter of minutes rather than having your client being forced to wait or ultimately deciding to go to another studio that has more workstations.

Value

Currently, MachStudio Pro is selling for $4,999 and it includes the software and one AMD FirePro V8750 2GB. Just a few days ago, StudioGPU started to offer the board-less free version for a $1000 discount i.e. $3,999. Given that the board itself e-tails for $1,450, getting the board and the software together saves you $450. Then again, if you're using nVidia Quadro products or want to stay with the already acquired hardware, this $1000 will be a welcoming change.

There is also student version available for $999 and it too includes a professional graphics card - ATI FireGL V8650 2GB. In our view, this is quite a good value. Even though V8650 is based off Radeon 2900XT GPU, the optimized drivers and more importantly, support for tessellation could be a very good learning tool.

When it comes to the current package itself, we felt quite positive at the amount of updates and new features that StudioGPU is putting out. We've been working on this review for quite some time now [since October] and after two months of evaluation the amount of newly-included features and effort put forth by StudioGPU employees [regular webinars, feature updates] is confirming to us that the company is hard at work to keep your business.
A lot of our feedback in this review will be addressed in future versions and the MSP purchasing price includes updates for 12 months after the purchase, which means you should be able to get the DirectX 11 accelerated version of the MSP once it gets released. On AMD's Evergreen launch on USS Hornet, Yoni demonstrated what is coming next and we can't wait to get our hands on commercial DirectX 11 hardware and MachStudio Pro 2.

Conclusion

In a nutshell, MachStudio Pro as a renderer is extremely useful. We don't see it being used in a major film production just yet but we do believe it can boost your productivity in broadcasting and arch viz for sure, given that very little postproduction work is needed. The bundled AMD card is maybe overkill if you render the scenes in Standard Definition PAL/NTSC resolution, given the amount of cores on CPUs of today. But for HD, there are tangible benefits.
Once that Material Editor comes of age, when subd handles better and naturally, when Global Illumination gets full implementation - this will be the real deal. We would suggest that StudioGPU takes a look and copies Crysis glossy reflections and Global Illumination as such and then this will be one mean production tool. The version without the board should be worth your time to start evaluating and adjusting yourself to the MSP, especially in the light of DirectX 11 hardware coming in 2010 and the further MachStudio Pro updates. To answer the title of this review, the answer is yes for everything sans photo-realism. That might change in 2010 already…

Given the level of innovation in this application, we see no other but to award MachStudio Pro with our Workstation Innovation Award.

No comments:

Post a Comment