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
Found 5 posts.
Search results Show results as topic list.
Technical Discussion » Alembic file with multi-uvset cause crash
- yaoyansi
- 5 posts
- Offline
Technical Discussion » How to get the user-defined attribute of Alembic file in H
- yaoyansi
- 5 posts
- Offline
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.
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.
Houdini Learning Materials » Where is the 'Mantra Surface' and 'VOP VEX surface SHOP'?
- yaoyansi
- 5 posts
- Offline
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?
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?
Technical Discussion » how to use the C++ API in HDK to access the scene data?
- yaoyansi
- 5 posts
- Offline
Hi all,
I'm new to HDK, but I still want to do some adventures and intergate a renderer into Houdini, so need you help.
I guess I need to access the scene data, e.g. the geometry data, camera data, light data, shader data, material data, and send the data to my renderer.
I read this page SOHO: Scripted Output of Houdini Objects in http://www.sidefx.com/docs/hdk12.0/, [sidefx.com] and $HFS/houdini/help/hom/_index.html. I guess that Houdini prefers python to C++ to access scene data.
But, my renderer is written with C and C++, and the python API of my renderer is not provieded yet.
My question is, is it possible to use the C++ API in HDK to access the scene data?
If the answer is yes, how to do it? Is there any open source project or example which demostrates that how to use C++ API to access Houdini scene data?
In contrast with python API(SOHO? HOM?), what's the advantage and disadvantage of using C++ API in HDK to access scene data?
Thank you.
I'm new to HDK, but I still want to do some adventures and intergate a renderer into Houdini, so need you help.
I guess I need to access the scene data, e.g. the geometry data, camera data, light data, shader data, material data, and send the data to my renderer.
I read this page SOHO: Scripted Output of Houdini Objects in http://www.sidefx.com/docs/hdk12.0/, [sidefx.com] and $HFS/houdini/help/hom/_index.html. I guess that Houdini prefers python to C++ to access scene data.
But, my renderer is written with C and C++, and the python API of my renderer is not provieded yet.
My question is, is it possible to use the C++ API in HDK to access the scene data?
If the answer is yes, how to do it? Is there any open source project or example which demostrates that how to use C++ API to access Houdini scene data?
In contrast with python API(SOHO? HOM?), what's the advantage and disadvantage of using C++ API in HDK to access scene data?
Thank you.
Technical Discussion » HDK renderer
- yaoyansi
- 5 posts
- Offline
Hi guys, I have the similar problem.
I'm going to intergate my renderer into Houdini. I guess I need to access the scene data, e.g. the geometry data, camera data, light data, shader data, material data, and send the data to my renderer.
I read this page SOHO: Scripted Output of Houdini Objects in http://www.sidefx.com/docs/hdk12.0/ [sidefx.com], and $HFS/houdini/help/hom/_index.html. I guess that Houdini prefers python to C++ to access scene data.
But, my renderer is written with C and C++, and the python API of my renderer is not provieded yet.
My question is, is it possible to use the C++ API in HDK to access the scene data?
If the answer is yes, how to do it? Is there any open source project or example which demostrates that how to use C++ API to access Houdini scene data?
In contrast with python API(SOHO? HOM?), what's the advantage and disadvantage of using C++ API in HDK to access scene data?
Thank you.
I'm going to intergate my renderer into Houdini. I guess I need to access the scene data, e.g. the geometry data, camera data, light data, shader data, material data, and send the data to my renderer.
I read this page SOHO: Scripted Output of Houdini Objects in http://www.sidefx.com/docs/hdk12.0/ [sidefx.com], and $HFS/houdini/help/hom/_index.html. I guess that Houdini prefers python to C++ to access scene data.
But, my renderer is written with C and C++, and the python API of my renderer is not provieded yet.
My question is, is it possible to use the C++ API in HDK to access the scene data?
If the answer is yes, how to do it? Is there any open source project or example which demostrates that how to use C++ API to access Houdini scene data?
In contrast with python API(SOHO? HOM?), what's the advantage and disadvantage of using C++ API in HDK to access scene data?
Thank you.
-
- Quick Links