Hi everyone,
Quick question here on Adaptive subdivision.
According to the docs it's better to use "Object" space instead of "Raster" for anything instanced (like standins?)
From Docs:
"Adaptive subdivision in raster space is problematic when instancing: A tessellation that is good for one instance will not be good for another further away. Using object space subdivision will ensure that all instances will subdivide to the proper level."
But either way, when quickly testing with some spheres between Raster and Object. (Catclark, 5 subdiv iterations, 10 Adaptive Error + Edge Length)
I get this:
Left side: "Raster" and Right side: "Object"
The Object space is not subdividing at all compared to the results from the Raster which is responding as expected.
Does anyone have any advice on what I may be missing?
Thank you,
Andrew
MtoA 3.1.1
Core 5.2.1.0
Maya 2018.2
Solved! Go to Solution.
Solved by Stephen.Blair. Go to Solution.
With raster space, you're getting instances with different tesselation, which might matter sometimes (displacement mabye?).
With object space, every instance has the same tesselation.
Hey, here's a script that may help
https://www.highend3d.com/maya/script/arnold-renderer-auto-set-subdivisions-for-maya
Thank you for the info and suggested script!
I see...so on "Object" one would have to manually (or script such as above) to set either the iterations or adaptive error for the desired result for specific cameras?
Then my question would be for a high amount of standin assets which vary greatly in distance to camera in multiple shots but share the same Adaptive Subdiv settings. (because they're standins)
What would be the best way to handle that?
ie. to avoid these warnings
[subdiv] Asset_geoShape: instanced multiple times, set 'subdiv_adaptive_space' to 'object' and review 'subdiv_adaptive_error'
[subdiv] Asset_geoShape: instanced multiple times, frustum culling will be ignored
Hi all,
Bumping my last question here. 🙂
Surely most Arnold users would populate their environments with Standin assets and wouldn't want to lose out on Adaptive Subdiv or Frustum Culling render features as they significantly reduce ram usage.
I'm just wondering what the correct way to utilize these features are in a studio pipeline. As assets are published with "Raster" adaptive subdiv but then we get the above mentioned render warnings.
Is it that Adaptive Subdiv is still kicking in, but the results might be undesired? (as in attached video file below) and it's just frustum culling that's completely ignored?
Attached please find mov file showing sphere standins duplicated with various distance to camera and 15 frames rendered with a simple moving camera.
SubDiv settings: Catclark, Iterations: 5, Edge_Length, Adaptive Error: 10, Adaptive Space: Raster
raster-adpative-edgelength.zip
For the warning:
Raster space adaptive subdivision will not work as expected on instances, because a random instance will be used to subdivide for all the other ones. So for instances, use object space.
Thank you Stephen, much appreciated. 🙂
Would it then be safe to assume that we'd lose out on Adaptive Subdiv on those instances unless we:
1) Use something like Target Operators to control Adaptive Error/Iterations for distance to camera? (on Object mode)
2) Create multiple LOD standins with different Subdiv settings for distance to camera?
3) Not use Standins at all?
And no matter what, we lose out on Frustum Culling when using standins?
Well, you can still have object-space adaptive subdivision.
Instances don't have their own subdiv settings, so you get the subdivided master object.
When you load the same standin multiple times, you're effectively using instances (because of the Arnold procedural cache: Arnold knows you're loading the same ass file, so Arnold caches one copy and then instances it).
You could disable the procedural cache, but that has a cost, esp if your standins are big assets.
Frustum culling does not apply to procedurals (aka standins) yet.
Okay cool,
Hopefully my last question...you're helping me a lot!
As from above "With object space, every instance has the same tessellation."
Wouldn't that then mean that if the standins/instances are set to object-space adaptive subdivision—on the master object—that would effectively be the same as disabling adaptive subdivision—as it won't change based on distance to camera?
and you'd be unable to modify the adaptive error value without modifying the master .ass file or attempting to use target operators?
So high-res (geometry) standin assets that are placed in the background of a shot, will remain high-res. (on object space)
All instances are going to share the same tesselation, so you'll have to set the object-space adaptive subdivision parameters in a way that works as best as possible for all instances.
Thank you very much for all the info and taking the time to help.
We'll go forward from here with trying to decide on suitable asset level subdiv choices with a better understanding.
Can't find what you're looking for? Ask the community or share your knowledge.