yaoyansi

yaoyansi

About Me

Connect

LOCATION
Not Specified
ウェブサイト

Houdini Skills

Availability

Not Specified

Recent Forum Posts

Alembic file with multi-uvset cause crash 2015年10月14日0:40

Alembic file with multi-uvset cause crash
Hi all,
I export an alembic file with the following command
cmds.AbcExport(j=' -writeUVSets file=“test-uvs.abc”')
This abc file is attached.

and I make sure that the uvset are exported to abc file, this is the abcecho message for this abc file
Object name=/objects:pPlane1/objects:pPlaneShape1
CompoundProperty name=.geom;schema=AbcGeom_PolyMesh_v1
ScalarProperty name=.selfBnds;interpretation=box;datatype=float64_t;arraysize=6;numsamps=1
ArrayProperty name=P;interpretation=point;datatype=float32_t;arraysize=9;numsamps=1
ArrayProperty name=.faceIndices;interpretation=;datatype=int32_t;arraysize=16;numsamps=1
ArrayProperty name=.faceCounts;interpretation=;datatype=int32_t;arraysize=4;numsamps=1
CompoundProperty name=uv;schema=
ArrayProperty name=.vals;interpretation=vector;datatype=float32_t;arraysize=9;numsamps=1
ArrayProperty name=.indices;interpretation=;datatype=uint32_t;arraysize=16;numsamps=1
ArrayProperty name=N;interpretation=normal;datatype=float32_t;arraysize=16;numsamps=1
CompoundProperty name=.arbGeomParams;schema=
CompoundProperty name=map1;schema=
ArrayProperty name=.vals;interpretation=vector;datatype=float32_t;arraysize=9;numsamps=1
ArrayProperty name=.indices;interpretation=;datatype=uint32_t;arraysize=16;numsamps=1
CompoundProperty name=uvSet2;schema=
ArrayProperty name=.vals;interpretation=vector;datatype=float32_t;arraysize=9;numsamps=1
ArrayProperty name=.indices;interpretation=;datatype=uint32_t;arraysize=16;numsamps=1

Then I create alembic node in houdini14.0 and import this abc file
In alembic node, the default value of “Load As” option is “Alembic Delayed Load Primitives”. But if I set “Load As” option to “Load Houdini Geometry” it causes a crash.

Here is the crash log:
Crash report from yaoys; Houdini FX Version 14.0.201.13
Uptime 3527 seconds
Wed Oct 14 12:10:52 2015
Caught signal 11

Traceback from 31775 ThreadId=0x7f696ea94860
AP_Interface::coreDumpChaser(UTsignalHandlerArg) <libHoudiniUI.so>
AP_Interface::si_CrashHandler::chaser(UTsignalHandlerArg) <libHoudiniUI.so>
signalCallback(UTsignalHandlerArg) <libHoudiniUT.so>
UT_Signal::UT_ComboSignalHandler:perator()(int, siginfo*, void*) const <libHoudiniUT.so>
UT_Signal::processSignal(int, siginfo*, void*) <libHoudiniUT.so>
<libpthread.so.0>
<libc.so.6>
<libc.so.6>
GA_ATIString::addStringReference(char const*) <libHoudiniGEO.so>
GA_ATIString::setString(long, char const*, int) <libHoudiniGEO.so>
(anonymous namespace)::fillArb(GABC_Houdini::GABC_GEOWalker&, GABC_Houdini::GABC_IObject const&, Alembic::Abc::v7::ICompoundProperty, Alembic::Abc::v7::ISampleSelector&, long, long, long) <libHoudiniGEO.so>
(anonymous namespace)::makePolyMesh(GABC_Houdini::GABC_GEOWalker&, GABC_Houdini::GABC_IObject const&) <libHoudiniGEO.so>
GABC_Houdini::GABC_GEOWalker::process(GABC_Houdini::GABC_IObject const&) <libHoudiniGEO.so>
(anonymous namespace)::ArchiveCacheEntry::walkTree(GABC_Houdini::GABC_IObject const&, GABC_Houdini::GABC_Util::Walker&) <libHoudiniGEO.so>
GABC_Houdini::GABC_Util::Walker::walkChildren(GABC_Houdini::GABC_IObject const&) <libHoudiniGEO.so>
GABC_Houdini::GABC_GEOWalker::process(GABC_Houdini::GABC_IObject const&) <libHoudiniGEO.so>
(anonymous namespace)::ArchiveCacheEntry::walkTree(GABC_Houdini::GABC_IObject const&, GABC_Houdini::GABC_Util::Walker&) <libHoudiniGEO.so>
GABC_Houdini::GABC_Util::Walker::walkChildren(GABC_Houdini::GABC_IObject const&) <libHoudiniGEO.so>
(anonymous namespace)::ArchiveCacheEntry::walkTree(GABC_Houdini::GABC_IObject const&, GABC_Houdini::GABC_Util::Walker&) <libHoudiniGEO.so>
GABC_Houdini::GABC_Util::walk(std::string const&, GABC_Houdini::GABC_Util::Walker&) <libHoudiniGEO.so>
SOP_AlembicIn2::cookMySop(OP_Context&) <SOP_Alembic.so>
SOP_Node::cookMe(OP_Context&) <libHoudiniOP2.so>
OP_Node::cook(OP_Context&) <libHoudiniPRM.so>
SOP_Node::getCookedGeoHandle(OP_Context&, int) <libHoudiniOP2.so>
OBJ_Node::getDisplayGeometryHandle(OP_Context&, int, OP_Node**) <libHoudiniOP3.so>
JEDI_View:puiUpdateNodeInfo(OH_NodeInfo*) <libHoudiniAPPS3.so>
OH_OpHandler:puiUpdateData() <libHoudiniUI.so>
OP3D_View::doUpdate() <libHoudiniAPPS3.so>
JEDI_View:puiUpdateData() <libHoudiniAPPS3.so>
OH_OpHandler::trigger() <libHoudiniUI.so>
UI_Queue::processNextEvent() <libHoudiniUI.so>
UI_Queue::drain() <libHoudiniUI.so>
UI_Queue::eventLoop() <libHoudiniUI.so>
main <libHoudiniUI.so>
<libc.so.6>
_start <houdini-bin>



My question is:
How to use multi-uv with alembic in houdini?

Cheers
yao

How to get the user-defined attribute of Alembic file in H 2015年10月13日4:07

How to get the user-defined attribute value of Alembic file in Houdini?

Hi all,
I am new to Houdini, and I'm sorry if this question is too simple.

I use the following function to add user attributes on node:
def addAttrs():
nodeName = ‘|objects:pCylinder1|objects:pCylinderShape1’

# compound attribute
cmpAttrName = ‘crease__objects_cyCreaseSet0’
cmds.addAttr(nodeName, ln=cmpAttrName, sn=cmpAttrName, at='compound', readable=True, writable=True, storable=True, keyable=True, numberOfChildren=6)

# child attribues
attrName = cmpAttrName+'name'
cmds.addAttr(nodeName, ln=attrName, sn=attrName, dt='string', readable=True, writable=True, storable=True, keyable=True, parent=cmpAttrName)
attrName = cmpAttrName+'owner'
cmds.addAttr(nodeName, ln=attrName, sn=attrName, dt='string', readable=True, writable=True, storable=True, keyable=True, parent=cmpAttrName)
attrName = cmpAttrName+'level'
cmds.addAttr(nodeName, ln=attrName, sn=attrName, at='float', readable=True, writable=True, storable=True, keyable=True, parent=cmpAttrName)
attrName = cmpAttrName+'edgecnt'
cmds.addAttr(nodeName, ln=attrName, sn=attrName, at='long', readable=True, writable=True, storable=True, keyable=True, parent=cmpAttrName)
attrName = cmpAttrName+'edges'
cmds.addAttr(nodeName, ln=attrName, sn=attrName, dt='Int32Array', readable=True, writable=True, storable=True, keyable=True, parent=cmpAttrName)
attrName = cmpAttrName+'vertex'
cmds.addAttr(nodeName, ln=attrName, sn=attrName, dt='Int32Array', readable=True, writable=True, storable=True, keyable=True, parent=cmpAttrName)


And I export the alembic file from Maya with the following command:
cmds.AbcExport(jobArg=' -frameRange 1 2 -userAttrPrefix “crease__” -file “test.ma.crease__.abc”')


I use abcecho command to confirm that the user-defined attributes are exported into abc file:
Object name=/objects:pCylinder1
CompoundProperty name=.xform;schema=AbcGeom_Xform_v3
Object name=/objects:pCylinder1/objects:pCylinderShape1
CompoundProperty name=.geom;schema=AbcGeom_PolyMesh_v1
ScalarProperty name=.selfBnds;interpretation=box;datatype=float64_t;arraysize=6;numsamps=1
ArrayProperty name=P;interpretation=point;datatype=float32_t;arraysize=42;numsamps=1
ArrayProperty name=.faceIndices;interpretation=;datatype=int32_t;arraysize=200;numsamps=1
ArrayProperty name=.faceCounts;interpretation=;datatype=int32_t;arraysize=60;numsamps=1
CompoundProperty name=.arbGeomParams;schema=
CompoundProperty name=.userProperties;schema=
ScalarProperty name=crease__objects_cyCreaseSet0name;interpretation=;datatype=string;arraysize=1;numsamps=1
ScalarProperty name=crease__objects_cyCreaseSet0owner;interpretation=;datatype=string;arraysize=1;numsamps=1
ScalarProperty name=crease__objects_cyCreaseSet0level;interpretation=;datatype=float32_t;arraysize=1;numsamps=1
ScalarProperty name=crease__objects_cyCreaseSet0edgecnt;interpretation=;datatype=int32_t;arraysize=1;numsamps=1
ArrayProperty name=crease__objects_cyCreaseSet0edges;interpretation=;datatype=int32_t;arraysize=20;numsamps=1
ArrayProperty name=crease__objects_cyCreaseSet0vertex;interpretation=;datatype=int32_t;arraysize=40;numsamps=1
ScalarProperty name=crease__objects_cyCreaseSet1name;interpretation=;datatype=string;arraysize=1;numsamps=1
ScalarProperty name=crease__objects_cyCreaseSet1owner;interpretation=;datatype=string;arraysize=1;numsamps=1
ScalarProperty name=crease__objects_cyCreaseSet1level;interpretation=;datatype=float32_t;arraysize=1;numsamps=1
ScalarProperty name=crease__objects_cyCreaseSet1edgecnt;interpretation=;datatype=int32_t;arraysize=1;numsamps=1
ArrayProperty name=crease__objects_cyCreaseSet1edges;interpretation=;datatype=int32_t;arraysize=3;numsamps=1
ArrayProperty name=crease__objects_cyCreaseSet1vertex;interpretation=;datatype=int32_t;arraysize=6;numsamps=1
ArrayProperty name=N;interpretation=normal;datatype=float32_t;arraysize=200;numsamps=1


I'm going to use these attributes to control the softness of the mesh edges in rendering. But I don't know how to get these user-defined attributes in Houdini.
I use Houdini 12~14, and it seems that Houdini doesn't show the user-defined attributes by default, but I'm not sure about this.

So, my question is:
Could you tell me how to get these user-defined attributes in Houdini?

Cheers
yao




P.S.

I can access the user attributes with the following scripts:

import _alembic_hom_extensions as abc
print ‘——————’
a = abc.alembicUserProperty('/test.ma.crease__.abc', ‘/objects:pCylinder1/objects:pCylinderShape1’, ‘crease__objects_cyCreaseSet0name’, 1)
print a

b = abc.alembicUserProperty('/test.ma.crease__.abc', ‘/objects:pCylinder1/objects:pCylinderShape1’, ‘crease__objects_cyCreaseSet0edges’, 1)
print b

c = abc.alembicUserProperty('/test.ma.crease__.abc', ‘/objects:pCylinder1/objects:pCylinderShape1’, ‘crease__objects_cyCreaseSet0vertex’, 1)
print c

But, my question is:
Could I connect the user-defined attribute(source attribute) to another node's attribute(destination attribute)? I prefer this way because if the source attribute is changed the destination attribute will be changed synchronously.

Where is the 'Mantra Surface' and 'VOP VEX surface SHOP'? 2013年1月26日10:24

Where is the ‘Mantra Surface’ and ‘VOP VEX surface SHOP’ in Houdini12 ?

hi,all
I'm learning a houdini tutorial.
In the tutorial, the speaker says ‘VOP VEX surface SHOP’ can be found in ‘Mantra Surface’.
I use Houdini12 now, but I can't find ‘Mantra Surface’ and ‘VOP VEX surface SHOP’ in Houdini12.

I don't know what to do now, could you give me any guid?