Watching various tutorials, I’ve been trying to incorporate an E-on Vue type workflow in Maya. I’ve begun using paint FX and Speed Tree to create various grass, plant and tree assets so I can then “eco-paint” on geometry in Maya with Mental Ray shaders and then render in Mental Ray (I will be trying V-ray shaders on my next project). In addition since my scene file is getting much larger in terms of assets and file size I also began to use Maya’s Scene Assembly feature. Scene Assembly lets you create, edit, and view large or complex scenes without the typical overhead memory that can slow your workflow down. Building a scene with Scene Assembly improves viewport interactivity and accelerates scene loading time, preventing some common issues when working on large data sets.
I won’t go thru every minute detail. Basically, you select paint FX thru Visor. Select the Paint FX you want to use (I used plants and grass). You paint strokes for each plant you want to create. Select the stroke and convert it to polygon geometry.
In Hypergraph create an MIA mental ray shader and assign it to geometry. Build up your shader for the components you want for each plant (color, spec, bump, translucency, etc). Save out different versions of each plant asset to have variety of models. You’ll want to center your plant at origin. Freeze transformations and make sure your pivot point is at the base of your plant. I went through and made several various plant species to build up a mini library.
Now you can use a free script off of Creative Crash called “spPaint3d”
This is an awesome script that creates a simple GUI for you to import your plants to paint with on the geometry you select to then paint on. You can randomize the scale, rotation, and the order of items you paint with. It also allows you to instance the painted geometry to keep your file lighter.
This is basically a simple version of Vue’s ecopaint. You can paint individually or with paint option to scroll over random areas of where you want density of plant life. Since you’ve setup your plant with a shader already the instanced geo is ready to render.
What I found at this point was that each of my mountains was going to have geometry like this one them and noticed that my render times were starting to get bigger due to the sheer load of data in my Maya scene file, so I resorted to something I had seen a demo on called Scene Assembly (which is a different way to reference files and display levels of details in a certain way). I decided to try this out as well.
I exported out each of my mountains, which I was going to spPaint vegetation onto, as it’s own maya file. I made a new empty maya file, right clicked in the outliner and selected “Scene Assembly” and click “Create Assembly Definition”.
In the Attribute Editor, under “Assembly Representation” you’ll create different representions of your file. First, you’ll select “Add Scene Representation”. This will be the full resolution shadered file that we’ll eco-paint into. In the label field, name this “render”. Select your geometry that loads into the scene and now bake out and export an Alembic GPU Cache of it. This is under “Pipeline Cache” header in title bar (if you don’t see it you may need to turn it on in your preference plug-in manager). Now you can “Add Cache Represention” of this file you just saved. Label it as “gpu”. Select the original geometry again, and now convert it to a simple bounding box. Save the geometry as a new Maya file (export selected). Import this as “Add Scene Representation”. Label this “box”. Save this Maya file now as an assembly file in it’s name.
What you’ve basically done is allow Maya to toggle between various level of detail of your file that will allow Maya to perform better and manage your large scene file better. You have a bounding box (box) representation that is super light to load. A GPU Cache representation that will task only the Graphics card of your machine (gpu label). This too will load super fast. A full resolution with all shaders representation (render label). You will do this same workflow for all your pieces that you want to create Assemblies for.
Now you will want to make a new Maya file that will be your Master Assembly file that will ingest all of the assemblies you just created with any additional elements you want in it. You will right click in outliner again, select “Scene Assembly” and click “Create Assembly Reference”. Here you will import all the Assemblies you made.
So to keep Maya working quickly I’ll select all the assemblies, right click again in the outliner, go under “Scene Assembly” you will see the labels we created; box, gpu, and render. Select gpu and all your elements will turn to the GPU cache version. If you open up render settings, under “Common” tab on the bottom, open “assembly settings”. Change “Render Representation” to “Custom”. Under “Representation Label”, type “render”.
Now every time your render in Maya it will call up your high level of detail file with all the shaders but when you work in Maya file you’ll only view the GPU cache to keep the file light and responsive.