Page tree

Versions Compared

Key

  • This line was added.
  • This line was removed.
  • Formatting was changed.

...

Include Content
pageREN22:Instance Attributes
keyREN22

The primAttributes are obeyed for all instances.

...

Include Content
pageREN22:Primitive Variables
keyREN22


About scene processing:

Each thread has it's own Geolib runtime containing per-thread caches of cooked locations. As a result all locations needed for any op would to be cooked per-thread. E.g if you have three threads, each looking at different locations under "/root/world/geo", you'll see "/root" cooked three times, "/root/world" cooked three times and "/root/world/geo" cooked three times.

If you are running serial, or forcing the parallel traversal to one thread then you'll only have one Geolib runtime cooking location and so would see only a single print from that Op at "/root"

In part this is the reason we have provided the object setting "prmanStatements.traversal.forceSerial". When you set that attribute 'true' on a location then the traversal will switch to serial at that location and all child locations will be run in a single thread.

For example, take a scene:

/root/world/geo/pine_tree
/root/world/geo/elm_tree
/root/world/geo/oak_tree

with each tree location containing leaves, roots, branches etc.

Ideally you traverse this in parallel at a high-enough level that it's not trying to do every leaf or every branch on a different thread. Setting "forceSerial" to true on "/root/world/geo/*_tree" means that each tree will be on a different thread, but all the contents of each tree will be serially processed in their respective threads. You'll need to evaluate your scene setup to see at what level it makes sense to force serial processing. We have typically found the default to be good enough, but unforeseen scene configurations may benefit from serial processing and so the option exists.

Image Added