Regular readers of this section will be familiar with Poser, an interesting and often underappreciated (though commercially popular) utility for photorealistic modeling of 3D human figures.
Well, recently Poser's ownership has changed again—from Curious Labs to e-Frontier to Smith Micro Software—and hot on the heels of the latest transfer has come something that may be pointing the way to bigger and better things.
Poser Pro—available at a very attractive price from Penn State's Microcomputer Order Center—is what's hopefully the first step in a new direction for the Poser lineup, and includes several new features that make it worth looking into. And what are they? Here are a few of the more prominent ones:
1. A 64-bit rendering engine. If you have the hardware and the operating system to support 64-bit computing (at this writing, I'm using a MacBook Pro, 4G memory, with OS X V10.5.3), Poser Pro will take advantage of all addressable memory. That means no crashing with even large and complex scenes.
2. Network Rendering. As anyone who works with 3D imaging software knows full well, rendering (making a virtual object look like a real object, illuminated by real light) is a huge bottleneck. For complex scenes—especially those with a lot of light sources or compute-intensive effects like subsurface scattering and ambient occlusion—render jobs can tie up even a fast computer for hours on end.
Poser Pro makes some significant advances in this area. When you choose to render a Poser scene, you will see some new options in the Render menu (Figure 1):
Rendering is now multithreaded, so if you choose Render in Background, you can go on working in Poser Pro while it does its rendering. Your computer's CPU cycles will still be going into the render, but at least Poser Pro itself won't be tied up by the rendering process.
This feature by itself would be a major improvement, but Smith Micro has gone one step further and introduced queue-based rendering to the Poser world. That is, you can submit your render job—or jobs, if you have more than one—to a render queue, and they'll be lined up to be completed, one by one, in the background.
When you choose Render in Background, a new sub-application will appear, the Queue Manager (figure 2):
In this example, I'm rendering a 30-frame animation (yes, Poser will do animation, as well as 3D still images), and sending the results to a series of animation frames. I've suspended the job for this screen capture, so you can easily see its status. The difference between a queue render and a background render is that the background render still runs in the context of the running Poser application. But the queue render is a separate process entirely, and will direct its image output wherever you tell it to, even accepting multiple render jobs in its queue.
But slick as this is, all this processing is still taking place on the local machine, where it's chewing up CPU cycles that you might prefer to be putting into Photoshop or Maya or some other processor-intensive application. Wouldn't it be better to send all these rendering jobs to some idle machine somewhere?
Smith Micro agrees. And so you can install the Queue Manager software (but not your copy of Poser Pro itself) on another machine on your local subnet. Then, on your local machine, make this alteration under the queue manager's Queue pulldown menu (figure 3):
As you can see, there are several options here from which to choose. The default setting is "Process Jobs Locally," which may sound like an Apple press conference, but means that any render jobs added to the queue will be rendered on your local machine.
But if you deselect this option and choose "Send Jobs to Network," your render job will go out to the local subnet, and be processed by whichever machine has the Render Queue software up and running. Now the CPU mule work of rendering your image or animation will be removed completely from your machine and handed over to the network renderer. Pretty slick, eh?
Well, yes and no. It's certainly a big step up from previous Poser versions, and it shows that Smith Micro is headed in the right direction. But in it's current state, it's not perfect.
For one thing, Poser Pro's Queue Manager isn't a Pixar render farm by any means. Even though the actual processing is being done locally, the job itself still operates within the context of the local instance of the Queue Manager. In practice, that means you can't start a remote render job and log off, secure in the knowledge that the job will go on executing and put its output files in some location on the network without your intervention. You've got to stay logged on to your local machine while the job executes.
Also, the actual render network itself is very nonconfigurable. There's no manual control over the location of the remote render node(s) that a given job will use, no load balancing, and no way to redirect their output. And there's no way to restrict access to the nodes by IP address, machine name, userid or anything else; in short, no security at all. You simply start up the Queue Manager on one or more remote machines (all within your local subnet), set it to accept jobs from the network, and start sending out render jobs to the subnet.
Worse, in my trials I was unable to submit render jobs over a wireless network at all. Only when I connected my MacBook Pro to a wired ethernet connection was I able to successfully send jobs to a Queue Manager on my subnet. I have no idea why.
Does this mean that Poser Pro's network rendering is not a good thing? No, not at all; it's very useful. But it does mean that this is a first incursion into professional-level territory, and it needs more refinement before it becomes as useful as it ought to be. I'm hoping that Smith Micro continues to refine Poser Pro's network rendering capabilities.
3: Ability to export rigged characters into other 3D modeling environments, such as Maya. I can't comment extensively on the effectiveness of this feature, since I was unable to test it as fully as I'd have liked. I did successfully export a Poser figure as a COLLADA file, but my version of Maya (7.0) doesn't support COLLADA imports.
I then tried importing the file into Blender as COLLADA 1.4, which failed outright. Finally, I tried Blender's import as COLLADA 1.3.1. This succeeded, but the results were...strange (figure 4), and didn't look much like anything resembling a human figure. It may be that tweaking more import/export parameters can overcome this, but at this writing, I haven't succeeded:
Nevertheless, being able to export the very realistic Poser figures into high-end industry-standard environments has been a Holy Grail of many Poser users for a long time, and I'm hoping that this will be at least a move in that direction.
4: Plugins to allow import of Poser files into other 3D applications. This is probably a slicker way to get Poser content into an application such as Maya. The plugins are separate pieces of software with separate licenses, and come in versions for Maya, Cinema4D and 3Ds Max. Note that this requires that both Poser Pro and Maya be installed on the same machine in order to work. Unfortunately, it also requires the latest version of Maya (8.5 at this writing) to work, and I only have Maya 7, so I don't yet know how well this works.
As I think I've indicated here, Poser Pro is an update well worth investigating, and hopefully it's an indication of even better things to come from the new owners of the Poser product line. But there's still more work to be done.
For example, Hair. Simulating hair and its peculiar dynamics is a challenge for any modelling software, and Poser Pro—like Poser itself—has its own tab (Poser calls tabs "rooms") devoted entirely to creating and manipulating realistic strand-based hair.
But handling hair in a realistic manner is a process even more CPU-intensive than rendering itself. Think about it: hair consists of hundreds of long polygon chains, the position and dynamics of which must be individually calculated and re-calculated for each frame of an animation. In addition, collisions must be enabled, in order to prevent the hair from simply sinking into the figure's body wherever it touches. This all puts a huge strain on any computing system.
Having run into this very problem in standard Poser many times, I was eager to see if Poser Pro was any better.
It isn't. I created some simple test hair (just a set of bangs) for a Poser figure (shown in figure 5) in a basic 10-frame animation, turned on Collisions and told Poser Pro to Calculate Dynamics for the hair.
Twelve hours later, the calculation was still only half done. And in the meantime, Poser Pro sat there, unresponsive, soaking up 98% of my dual-core processors until the system itself became unusable. The process couldn't be paused or stopped (the Cancel button became null and void within seconds). I couldn't even use Activity Monitor to simply kill the Poser Pro process altogether, since the system wasn't listening any more. At last I bit the bullet, and simply power-cycled my machine. Clearly, Poser Pro isn't multhreaded from top to bottom, a step that will surely require a lot of recoding.
So what's my verdict on Poser Pro? My personal opinion—based on nothing more solid than some hopeful thinking and my precognitive abilitites—is that Smith Micro is gearing up its Poser line for a toehold in the high-end 3D graphics market. Poser 7 is already a unique and very useful product that has a strong commercial presence, and Poser Pro seems to be the first scouting expedition into a wider and more demanding world. I'd like to see it succeed.
Available for Windows and OS X.
Poser Pro, at the Smith Micro website:
Poser Pro from the PSU Microcomputer Order Center: