PDA

View Full Version : Questions about Hardware Shading



Crispy
May 19th, 2010, 19:46
I am trying to evaluate the hardware shading functionality described in the mental ray handbooks (vol. 1 sections 9.6-8, vol. 2 sections 3.32-33). I am running the fully functional mental ray demo (version 3.6.54) that came with handbook vol. 3 on a Windows XP machine with an NVIDIA Quadro FX 4600. While I have been able to force objects to use hardware shading, those objects always appear black. I'd like some help sorting out what is missing/wrong.

I've seen some online versions of the mental ray documentation (http://download.autodesk.com/us/maya/2009help/mr/manual/node56.html#INDEX103) that list hardware rendering as a deprecated feature. Does this mean it isn't being supported, and if so, since which release? While understanding that the functionality should not be included in new commercial applications, I would hope that we could still use it for in-house projects.

I tried to follow all the steps to enable hardware shading that were listed in handbook 1. However, I can't find the driver library file mi_opengl.dll on my machine or install CD. Where would it be located after installation? Is this file required, and if so, where can I get a copy?

Also, I could find no .cg files installed on machine. Are these required, or are the hardware shaders embedded in an existing dll?

One final note - When I run mental ray with -v 7, I never see any log output lines that begin with RCHW (though I do see a warning when hardware rendering is enabled but no objects are using it).

Thanks in advance for your help!

bart
May 20th, 2010, 00:20
Hardware shaders would be separate and cg shaders are not distributed with the mr standalone currently. It is possible that if they are created and named correctly, and can be found in the hardware path, they could be used. But as you have found, that approach is deprecated.

We are moving toward approaches that are up-to-date with current GPUs, and easier for the shader writer to implement.

Depending on exactly what you are trying to do, perhaps you could look into the approach of creating MetaSL shaders or using iray mode in mental ray version 3.8. There is also a hardware renderer built into RealityServer, which could be run on a single machine and might serve your purposes.

Crispy
May 20th, 2010, 00:52
Thanks, Bart.

Our application is batch rendering of animations, and I am exploring the full spectrum of quality vs cost. If our graphics cards could speed up any aspect of the rendering, we could spend that time on better quality.

I'll look through the online documents about MetaSL and RealityServer.

bart
May 20th, 2010, 01:42
Speed up rendering of final frames, or interactive look development?

What quality of shading for your animations? Photorealistic or stylized? Character animation or other, like architectural fly-through?

How big are the scenes?

Although you might be able to speed up any given shader, the overall effect may not have the desired cost vs. quality trade-off. In part, this is why hardware rendering approaches in the past few years have changed direction, and there is a lot of activity in finding a practical approach which varies from niche to niche.

...and is changing as GPUs and their interface to CPUs change.

Crispy
May 20th, 2010, 05:25
We're concerned with the time it takes to render final frames. The content is of medium complexity, perhaps hundreds of objects or tens of thousands of polygons. While many of the objects are stationary, a fair percentage of objects and lights (as well as the camera) will move and change properties throughout the animation.

The plan is to use final gathering from a sky map to get an adequate diffuse illumination, and then ray trace with a sizable set of point and area light sources for other lighting effects. We are primarily using the mia_material shader and are looking for a photorealistic appearance.

We are not looking to develop hardware shaders, but want to take advantage of anything that is already available. Some development to tie together existing functionality would not be a problem.