User guide

177
also process incoming attributes - the equivalent to Attribute Modifiers. In fact, Geolib3 Ops are a super-set of both
APIs and, in practice, no distinction is made between scene graph generation and modification. The code you need to
write for the Op API is also much simpler.
Example Op (Pseudocode):
attr = getAttribute("taco")
setAttribute("cheese", value)
createChild("world")
The OpTree
The tree of connected Operators (the OpTree), is both persistent and mutable. The persistent OpTree allows Katana
to inform Geolib3 of only the changes to the OpTree’s topology and arguments, rather than having to describe the
complete set of Ops again from scratch. This persistent OpTree is efficient by not only allowing simpler update
mechanisms when only a sub-set of Ops have changed, but is also more efficient from a computational standpoint,
as the underlying engine can potentially reuse previously computed (and cached) results.
Katana cannot directly query from arbitrary Ops in the OpTree. Instead, Clients are created and pointed at an Op.
Locations and attributes, which represent the cumulative result of the upstream OpTree, can then be computed
upon request.
The Runtime is the underlying computational engine responsible for maintaining the persistent representation of the
OpTree, scheduling Op execution, and delivering results to Clients. The runtime can be used either in a synchronous
or asynchronous manner. The synchronous interaction model is common at render time while the asynchronous
model is common during UI interaction.
24 OP API |