AttributeにPrimvarを指定する
ipynbFile USDPrimvar__AttributeにPrimvarを指定する.ipynb
In [116]:
| from pxr import Usd,UsdGeom,Sdf,Vt
|
In [117]:
| stage = Usd.Stage.CreateInMemory()
|
In [118]:
| prim = stage.DefinePrim("/testPrim")
|
In [119]:
| attr = prim.CreateAttribute('hoge',Sdf.ValueTypeNames.Float)
|
In [120]:
| # Attributeに対してPrimvarを設定
primvar = UsdGeom.Primvar(attr)
# 補間方法 constant/uniform/varying/vertex/faceVarying
primvar.SetInterpolation(UsdGeom.Tokens.varying)
|
In [121]:
| primvar.Set(100,Usd.TimeCode(180))
primvar.Set(120,Usd.TimeCode(181))
|
In [122]:
| print(stage.GetRootLayer().ExportToString())
|
Success
1
2
3
4
5
6
7
8
9
10
11
12 | #usda 1.0
def "testPrim"
{
custom float hoge (
interpolation = "varying"
)
float hoge.timeSamples = {
180: 100,
181: 120,
}
}
|
In [123]:
In [124]:
| # IndexなしならGetとComputeFlattenedは同じになる?
primvar.ComputeFlattened(Usd.TimeCode(180.8))
|
PrimvarのGetは、TimeCodeでセットした値をバイリニア補間してくれる
(補間方法について)
* https://imagingsolution.net/imaging/interpolation/