Activation と Visibility の違い
tldr
table:_
\ Activation Visibility
datatype metadata attribute
アニメーション 不可能 可能
子のPrim 構成されない 構成される
Activation
code:py
from pxt import Usd
stage = Usd.Stage.CreateNew("stage.usda")
foo = stage.DefinePrim("/foo")
bar = stage.DefinePrim("/foo/bar")
foo.SetActive(False)
code:usda
def "foo" (
active = false
)
{
def "bar" { }
}
Therefore USD provides a "non-destructive" and reversible form of prim deletion, which we call deactivation.
deactivation は 実際の Tree 構造を破壊するわけではない, つまり非破壊な deletion 操作
activate は metadata
Attribute に比べると軽量
metadata なので時間依存の値にすることはできない
deactivate な Prim は必ず leaf-node になる
再 activate のために, deactivate な Prim 自体は Stage 上に存在している
https://gyazo.com/cb011e34ded712b9eb1202076f5d5088
usdview では Activation を切り替えることができる
Visibility
code:py
from pxr import Usd, UsdGeom
stage: Usd.Stage = Usd.Stage.CreateNew("stage.usda")
foo = UsdGeom.Xform.Define(stage, "/foo")
bar = UsdGeom.Xform.Define(stage, "/foo/bar")
foo.MakeInvisible()
code:usda
def Xform "foo"
{
token visibility = "invisible"
def Xform "bar" { }
}
inherit / invisible いずれかの値を取ることができる
Type の通り Imageable 継承の Prim でしか使用することができない
Visibility may be animated, allowing a sub-tree of geometry to be renderable for some segment of a shot, and absent from others; unlike the action of deactivating geometry prims, invisible geometry is still available for inspection, for positioning, for defining volumes, etc.
visibility は Attribute なので時間依存の値にすることができる
Deactivation とは異なり, 子 Prim が Stage 上で構成されない ということはない 単に描写しない というだけ
https://gyazo.com/9d87a00a22ba81fadb1280bb02ec8e94
visibility も usdview で操作できる
Refs