Wondering why Maya can't seem to do terrains as fast as...


#1

Admitting up front that I don’t yet understand everything about Maya, I’d like to understand why Maya (2014-2015) can’t seem to render terrains as fast as a program like Terragen 3? I’m doing things on an i7 with 12-16gb ram and I’m really curious what makes one so different from another.

What I mean is, if I create a scene in Maya using a large DEM for the terrain, give it a procedural sandy desert ground surface, then add in a large number of various sized rocks, grasses, plants (plant effects or imported), so it’s as realistic as I can make it, it might take 24 hours to render one frame.

But in a program like Terragen 3, which I’ve finally gotten somewhat competent in using and am truly amazed by it’s results, I can create a similar DEM terrain covering a huge (miles wide) area, with rocks everywhere, vegetation all over (some imported from different vendors or even exported from Maya), animate the cloud/atmosphere, whatever makes the scene as realistic as I need–and I can render a frame in 45 minutes!

Obviously Maya does what it does incredibly well. So does Terragen 3. Both can generate super-realistic results, though Maya over all it’s other benefits. But I’d really like to know why Maya can’t seem to handle terrains the way a program like Terragen does. How I’d love to just do it all in Maya and have everything at once…objects, plants, lighting,…done in 45 minutes!

Just curious, since I know there must be some reason.
JT


#2

One area of optimization that you might want to look into ( if you have not already ) is the use of mental ray or vray proxies and instances. I have rendered pretty heavy scenes using mentalray proxies in decent render times.
I suppose the answer to your question is:
If you were to write a program optimized for landscape and terrain gen you would build in optimizations for that particular problem. Similarly if you were a maya terrain specialist you might develop workflows with these same optimizations in maya. There is an ongoing thread on cgtalk “forests in mentalray” that might be helpful to you. You might also look into how to use mentalrays displacement approximation to render displacement detail based on screen space subdivision. Think about how you might use lower resolution geometry and textures for distant objects. Terragen may have an engin that does all of this automatically


#3

I’ll definitely look into using Mental Ray or Vray proxies. If I could fill background scenery with proxies it would be a huge help. At the moment I’ve gone so far as to create a set of low concentric rings that follow the terrain and texture that with a billboard image of bushes, w/transparency, and have the image repeat all the way around. By staggering the rings a bit it creates a nifty illusion of background bushes covering the entire area into the distance. It works, as long as the camera stays near eye level, and has a very low overhead. It’s a hack, but does work.

If one of these days it’s possible to merge a finished terrain from Terragen into Maya, and then put in the the important objects and have all Maya’s functionality–and render everything smoothly–life will be good.
JT


#4

Here is a very usefull cgtalk thread:
http://forums.cgsociety.org/archive/index.php/t-804892.html


#5

I would also go with proxies. The forest scene that you can find in my portfolio had like 1.5 billion polygons and it rendered (in 720p with anti aliasing set to 2, final gather on, physical sun and sky), if I remember correctly, maybe within 80 minutes. Most objects were rendered as proxies and instances, and if I’d gone even higher, lets say 6 billion polys, it wouldn’t really matter. All you gotta watch out is your ram. once, just for fun, I created a scene with over 10 billion polygons and it took 10gb of my ram, so it was not that big a deal. If using mental ray set the primary render to rasterize, scanline would take all of your ram, even if you had hundred of gb’s.


#6

That wouldn’t be Maya’s fault, just that render engines don’t have “cheat” algorithms because frankly Terragen is specifically designed for that sort of thing. mr, vray, arnold are designed to be very flexible and don’t have specific architecture in their coding for one purpose.

Having said that though, VRayScatter for Maya rules! :thumbsup:


#7

I imagine it’s mostly about your render settings, and perhaps you still have “scanline” on or aren’t using BSP2, if you’re using mental ray. For print-size stuff (3600x2400 size) I can usually pull off six to eight hour renders, anymore, pushing out several billion polys of instanced geometry. For screen-size (1080hd) an hour or so isn’t unusual, but I test-render at 1100x-whatever generally. 8-core Bulldozer here, clocked up to 4GHz. I often only render on 6 or 7 cores, however. Granted, I never use DEM maps, so perhaps making a clean piece of geometry from the DEM map first might help speed things up?

This one took 8 minutes, earlier:

So if you’re using mental ray, I also recommend that big huge “Forests in mental ray” thread. It’s a long read, but full of useful stuff! A lot of great contributors there, too.