GPU Caching in Maya 2013

Become a member of the CGSociety

Connect, Share, and Learn with our Large Growing CG Art Community. It's Free!

THREAD CLOSED
 
Thread Tools Search this Thread Display Modes
Old 04 April 2012   #1
GPU Caching in Maya 2013

I've been testing this out and it seems really cool. In a scene where I've got a tree's leaves my viewport struggles to get about 15fps. When I export it to GPU cache and import it, it runs seamlessly. I can duplicate it 20 times and it still runs as smooth. And I didn't have any trouble rendering it with Mental Ray.

I'm just curious as to whether there's any limitations to working with it that I've missed?
 
Old 04 April 2012   #2
I always thought the caching is only useful when you work with dynamics, but it really helps in scenes with a lot of vertices. I wouldn't have known that if you didn't open this thread

I am also curious what the limitations are.
 
Old 04 April 2012   #3
Ok after a little bit more testing the main limitation I've found is that the GPU cache doesn't support complex shaders. So it's great to use as a placeholder while working, but when it comes to rendering you'll need to sub in your original geometry.

Here's a handy table I found in the maya help guide.



Edit - Someone smart please write a script that allows us to apply shaders to GPU caches =)

Last edited by petey : 04 April 2012 at 08:03 PM.
 
Old 05 May 2012   #4
Because the GPU Cache is really just a big collection of points there is no shader assignments to be made to it. That's actually why it's able to be so fast and light is because we've stripped out all the big, bulky mesh data usually associated with surfaces and only passed a very minimal data set across to the GPU for draw. The only currently supported mechanism is you can tell the exporter to use the diffuse colour of your shader as a flat shaded colour to be assigned on input.

Unfortunately this can't be scripted either as it would need to modify the way the GPU Cache system works to have some notion of the mesh data required for material assignments and textures possibly.

The Alembic Cache is what you'll want for rendering purposes - the GPU Cache is to help cache complex scenes to the GPU when dealing with a lot of really dense mesh data in your scene (i.e. cache the environment but maintain your character rigs for animation purposes).

-s
__________________
My opinions do not represent those of my employer.
 
Old 05 May 2012   #5
Thanks for the in depth reply Shawn. I'm currently working on a short animation and it's really handy for things like tree leaves and grass.
 
Old 05 May 2012   #6
I'm very interested in this topic, myself. It would be wonderful to have a more potent "stand-in" mechanism in Maya for my big, heavy nature scenes. As it stands now, even with a decent workstation and GPU, I have to Bounding Box nearly everything on multiple visibility layers (one per plant type, for example) to get any kind of responsiveness inside Maya. This makes sense; I've not seen any GPU push 4B polys in realtime yet. But any new methodology could be very helpful and time-saving.

So would you export your object as a Geo Cache, then reimport it back in to use as a stand-in for your real geometry, which would/could then be still Bounding Boxed and set as a child of the stand-in Geo Cache? Thus, when you transform your visible Geo Cache object, the full-detail one follows along? Would something like this work?
__________________
Commodore 64 @ 1MHz
64KB RAM
1541 Floppy Drive


"Like stone we battle the wind... Beat down and strangle the rains..."
 
Old 05 May 2012   #7
Here's a video of the GPU cache showing the difference between non-cached and cached on system memory: http://www.youtube.com/watch?v=JlDGQqykOPk

I think the highest we ever got it was 21 billion triangles or something but it wasn't realtime, though it didn't crash the system or fill the entire system memory like regular geometry would

Years ago I wrote a caching pipeline for Maya where we'd take the models out of animation, cache them down and then inject the cache onto a "final" version of the model with all of the MR shaders and stuff assigned so that lighting and FX had really light scenes to work with. With the GPU cache you could basically cache out objects you wanted to not be stored in system memory and if using referencing just disable the reference (your trees, leaves etc would still look like leaves and trees using the cache format but be much, much lighter).

-s
__________________
My opinions do not represent those of my employer.
 
Old 05 May 2012   #8
I've been doing a few render tests to see if there's any benefits to using the GPU as opposed to geometry. Of course you can only apply a single colour to caches so it would only work in certain situations. The brightness of the grass colour is due to the differences between the lambert shader and the way the GPU cache stores colour.

Rendering 1920x1080 using Preview:Final Gather with 1 bounce.

 
Old 05 May 2012   #9
Hey does anyone know why when I render with final gather the GPU cached object is significantly brighter? Just want to get an understanding of what I'm working with. Thanks!



Edit - Just to clarify there's a default lambert plane that the balls are sitting on.
 
Old 05 May 2012   #10
I'd venture a guess it's because there is no component information present for the FG to gather required information from so it's just reading the lamberts diffuse.

I forgot to mention previously but the GPUCache is part of the Maya 2013 devkit so for those willing you can get your hands dirty with our code and add/remove what you want

-s
__________________
My opinions do not represent those of my employer.
 
Old 09 September 2012   #11
So is viewport 2 and/or gpu cache fixed function pipeline with limited number of lights? Can i use light linking in eihter? Great gpu cache is part of the api.
__________________
www.lo-motion.de
Realflow forum: http://www.realflowforum.com


Last edited by katisss : 09 September 2012 at 11:48 PM.
 
Old 09 September 2012   #12
Originally Posted by katisss: So is viewport 2 and/or gpu cache fixed function pipeline with limited number of lights? Can i use light linking in eihter? Great gpu cache is part of the api.


VP2 currently has a light limit of 16 in both OpenGL and DirectX. Light linking unfortunately has not been implemented yet in VP2.
__________________
My opinions do not represent those of my employer.
 
Old 09 September 2012   #13
Thanks for the info. Any plans for adding either?
__________________
www.lo-motion.de
Realflow forum: http://www.realflowforum.com

 
Old 09 September 2012   #14
Originally Posted by katisss: Thanks for the info. Any plans for adding either?


It's definitely something we want to tackle as it's a key workflow but I don't have any specifics as to when it will be done right now.
__________________
My opinions do not represent those of my employer.
 
Old 09 September 2012   #15
fingers crossed...
__________________
www.lo-motion.de
Realflow forum: http://www.realflowforum.com

 
Thread Closed share thread



Posting Rules
You may not post new threads
You may not post replies
You may not post attachments
You may not edit your posts

vB code is On
Smilies are On
[IMG] code is On
HTML code is Off
CGSociety
Society of Digital Artists
www.cgsociety.org

Powered by vBulletin
Copyright 2000 - 2006,
Jelsoft Enterprises Ltd.
Minimize Ads
Forum Jump
Miscellaneous

All times are GMT. The time now is 05:02 AM.


Powered by vBulletin
Copyright ©2000 - 2017, Jelsoft Enterprises Ltd.