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