exocortex / exocortexcrate Goto Github PK
View Code? Open in Web Editor NEWHome Page: http://exocortex.com/products/crate
License: BSD 3-Clause "New" or "Revised" License
Home Page: http://exocortex.com/products/crate
License: BSD 3-Clause "New" or "Revised" License
We currently use a custom multi-UV standard in our readers and writers. We will keep support for our customized Alembic multi-UV standard in our readers, but our writers should use the now standard multi-UV Alembic format.
I am wondering if the MSVCxx logic for the Maya sub-projects in the master CMake file is correct?
Surely Maya 2010-2012 should only be built if MSVC9, Maya 2013 & 2014 if MSVC10, and 2015 if MSVC11?
hi, very appreciate your work, now i want to convert .obj to .abc file, when i run your script of OBJ2ABC.py, there is a error, how can i get the _ExocortexAlembicPython, thanks , hope your reply:
Traceback (most recent call last):
File "OBJ2ABC.py", line 1, in
import _ExocortexAlembicPython as alembic
ModuleNotFoundError: No module named '_ExocortexAlembicPython'
Need to do some research to figure out what is compatible with the main Alembic project.
On the Maya 2015 plugin, if you export an abc file with a locator in it, then try to attach the abc file into a model with the same locator, the script will error out:
# Error: file: E:/Sites/pypeline/maya/trunk/win/modules/Maya2015ExocortexAlembic/scripts/attach.mel line 34: No object matches name: |group1|locator1|locatorShape1.translate
# Traceback (most recent call last):
# File "<maya console>", line 1, in <module>
# File "E:\Sites\pypeline\maya\trunk\win\modules\Maya2015ExocortexAlembic\scripts\ExocortexAlembic\_attach.py", line 20, in attachXform
# conX = cmds.listConnections(name+".translate")
I think this is because the locator shape is being exported as though it were a transform, and the code to attach transforms assumes the object you're attaching into is a transform.
Attempting an Alembic export of geometry without being assigned to at least the initialShadingGroup causes a fatal crash in at least Maya 2014 when exporting "FaceSets" is enabled. This case can be reproduced by creating a polygon primitive, opening the node editor, deleting the connection to the initialShadingGroup and attempting to do an Alembic Export with the default settings.
Hi everyone,
I'm looking to build ExocortexCrate for Maya 2017. I don't know if it's already available or if I have to wait.
Thanks,
Camelia
Around version 3.0 or 3.1 Sitoa's parameters for Motion Blur changed. I believe this is causing the mbkeys string to get passed to the Alembic DSO improperly
For 5 motion blur steps, I see the Operator set the end of the data string to:
&mbkeys=42.667;42.667;42.667;42.667;42.667
I believe the reference to the parameter "motion_frame_duration" in GetArnoldMotionBlurData() might be causing problems. This parameter no longer exists. There is now "motion_shutter_length" but I'm not sure it correlates 1 to 1.
Just wanted to report the issue. I'm going to look into it further when I get a chance.
Could someone compile version that is compatible with Max 2018?
I and many others would highly appreciate it.
Thanks!
Maybe it's just us but when we attach an Alembic to some existing geometry, we find that if the transformations have been frozen on the group and the pivot point of the group is not at the origin then the transforms applied from the alembic are incorrect. We've tried a range of different export options but none have seemed to help.
We're working around anyway but it would be nice to not have to change the pivots of geometry (eg for the purpose of attaching lights).
The parameters we're using for exporting at the moment are
"normals=0",
"uvs=0",
"facesets=0",
"useinitshadgrp=0",
"dynamictopology=0",
"transformcache=0",
"globalspace=0",
"ogawa=1"
and our attach options are normals=0;uvs=0;facesets=0;attachToExisting=1;overXforms=0;overDeforms=0;
The TBB library is not used but it is still linked in. This will make it unnecessarily hard to port to OSX. See #5
Several errors compiling Shared/CommonUtils/CommonImports.cpp due to missing member "prefix" of IJobStringParser class defined in CommonImports.h. Adding std::string prefix to the class makes it build, although I haven't tried running it yet.
Posted on the exocortex-alembic group:
I'm having some kind of problem attaching the exported cache to the shading asset.
Here's what I'm doing:
1/ I limited myself to one transform node only, "AMINATA_HAT". I'm exporting surface + normals, and I only checked facesets and without hierarchy. Here is a snapshot of the export scene:
The only animation it's got is the root of the rig.
2/ I select AMINATA_HAT on my shading asset, delete anything else from the scene to keep it clean, and tried to attach it. I tried by checking only facesets, or facesets and normals, and with or without override transforms and deforms. Every time I have the same result, some points go along, but the rest stay on the origin, as seen in this image:
Where things get weirder, is that if from the export scene, I remove the rig and animate the hat directly putting keys on the Tx, Ty and Tz, the attach works fine. I'm not quite sure what I am doing wrong, any help is appreciated.
I don't know how to attach maya scenes in here, so I'm not sure how to give you a test case.
Hi,
I'm having trouble downloading the external libraries from
https://s3-us-west-2.amazonaws.com/exocortex-downloads/Libraries.20160502.02.7z
The download is taking really long. It took over 6 hours to finish 50% and then just failed. This happened to me a few times now.
Is there another mirror I can download from?
Thanks,
Natasha
Has anyone looked into adding Maya-style shear into AlembicXform? I see that Alembic supports a kMayaShearHint to tag matrices with shear and they provide an example that uses it in MayaTransformWriter.cpp. Anyone looked at the best way to modify AlembicXform.cpp to support shear?
Is this on the near horizon?
When exporting Models, the connection to PlayControl.Rate is lost and the expression breaks. If you use "Fr" the expression is exported intact. Reference http://softimage.wiki.softimage.com/sdkdocs/ref_quickref_TimeVariables.htm#Rzy70817)
For example, the time expression on an alembic_polymesh operator is set to this:
alembic_timecontrol.current * alembic_timecontrol.factor + alembic_timecontrol.offset + alembic_timecontrol.frameOffset / PlayControl.Rate
It can be changed to this and produce the same results and yet export correctly:
alembic_timecontrol.current * alembic_timecontrol.factor + alembic_timecontrol.offset + alembic_timecontrol.frameOffset / Fr
Requested by a number of users on the Exocortex-Alembic mailing list.
The OBJ2ABC.py
sample is always croaking when trying to create a new OArchive
complaining about the number of time samples being out of range.
I'm brand new to this code (and may be to only person on the planet trying to create ABC's from OBJ's using Python ;-) but thought it best to mention the problem here first in case someone more familiar with this can shed light.
static PyObject * oArchive_createObject(PyObject * self, PyObject * args)
{
oArchive * archive = (oArchive *)self;
. . .
int tsIndex = 1;
. . .
// check if the timesampling is in range
if(tsIndex < 0 || tsIndex >= (int)archive->mArchive->getNumTimeSamplings())
{
PyErr_SetString(getError(), "timeSamplingIndex is out of range!");
return NULL;
}
Since tsIndex
is always one, that must mean that the getNumTimeSamplings()
is returning zero (which it does when any error condition exists.)
I don't really understand the wisdom here of only allowing creation a new object when the number of time samples is two or greater.
TIA.
Ok, I've blown way too much time trying to get this to compile and work for linux, centos7.
I'm at a new studio that doesn't have a real IT department yet.
Is there anyone who will share a compile of this as a regular .mod with only the necessary files for maya2017?
So all I have to do is path to the .mod file in the environment variables when I initialize maya2017.
Let me know.(pm) I'm willing to pay
We currently use a custom NURBS curve standard in our readers and writers. We will keep support for our customized Alembic NURBS curve in our readers, but our writers should use the now standard NURBS curve format.
According to:
http://studiosysadmins.com/board/threadview/5235/
Linux versions only run on Centos 7 and newer. Probably because the Maya versions were compiled against Fedora 14, while Centos 6 was forked from Fedora 12 according to here: http://en.wikipedia.org/wiki/Red_Hat_Enterprise_Linux
Does anyone know why alembic files load considerably slower when there are other assets in the 3ds Max scene before loading as versus with an empty scene?
(3ds Max 2016)
We should adopt vagrant and some ansible or puppet configuration to automatically create builds in response to accepted PRs.
Before I try, is there any way to get the current distribution to compile with VS2013?
Obviously it's trivial to make a new .bat file to invoke CMake with "VIsual Studio 12" but without "vc120" versions of all the dependent Libraries, I suspect the build will fall over pretty quickly...
...or will it?
RLM is still linked in, even though it is not used. THis will make it hard to port to OSX, see #5
What does the third parameter do in this function call?
mObject = AbcG::OCurves(oParent, eNode->name, animTS);
It is used all over the place, but I can not yet determine its meaning.
Hi,
I have successfully compiled a Maya 2016 plugin of exocortex using the latest libraries on a Centos 6.8 machine using gcc4.8.
However, when I load the plugin in Maya I get the following error message.
undefined symbol: _z9readpropsdrn7alembic3abc2v617icompoundpropertyer10mdatablockrk7mobject
Anyone else getting a similar error? Is there a solution to this?
Also are there any official binaries available for Maya 2016 for Linux?
Thanks,
Natasha.
Just asking around before I start making any attempts.
Is posible to create non existing objects when you attach cache to existing nodes?
Could anyone with a successful build process for OS X share their method with me? I am trying to modify the CMakeLists to build for our OS X environment.
Hello there,
I found a bug when I try to switch the .abc file from a non-animated cache (exInframe=1,exOutFrame=1) to an animated cache (exInframe=1,exOutFrame=20) in the 'ExocortexAlembicFile1'
Last exocortex crate sources built on Centos6
Maya 2015
from ExocortexAlembic import _export
/* select your mesh transforms */
_export.doIt(exportPath,1,1)
/* make a fake anim /
/ select your mesh transforms */
_export.doIt(exportPath,1,20)
path = 'the non-animated.abc file'
importNormals = '0'
importUvs = '1'
importFaceSets = '1'
overTransforms = '1'
overDeforms = '1'
job = "filename=" + path + ";normals=" + importNormals + ";uvs=" + importUvs + ";facesets=" + importFaceSets + ";attachToExisting=1;overXforms=" + overTransforms + ";overDforms=" + overDeforms
cmds.ExocortexAlembic_import(j=job)
=> it creates the exocortex nodes but the in time of any 'ExocortexAlembicXform' and 'ExocortexAlembicPolyMeshDeform' is not connected to anything
=> the animation is not there
=> if I connect 'ExocortexAlembicFile1.inTime' on 'ExocortexAlembicXform.inTime', still not there
=> if I connect 'ExocortexAlembicTimeControl.inTime' on 'ExocortexAlembicXform.inTime' I got the animation
So would it be possible to have the time connected, no matter what the frame range of the export ?
If I did something wrong in my workflow, please let me know
Thanks,
Antoine
Given that Arnold, Maya and Python are available for OS X, the current windows+linux restriction should only apply to Softimage. i.e. for Arnold, Maya and Python, it should just be windows+non-windows.
Hi,
So, I swapped out the boost 1_44 for boost 1_67, recompiled the python libs and made a few changes to the cmake files and all compiles without complaints on both CentOS7 and Ubuntu 16.04 x64, gcc 5.4.0 and cmake 3.5. However, when I load up in maya, I get the 'undefined' symbol error :
// Error: line 1: /opt/ExocortexAlembic/Module/plug-ins/libMayaExocortexAlembic.so: undefined symbol: _ZN5boost16re_detail .......... (full output below)
Running ldd or objdump on libMayaExocortexAlembic.so all looks fine, lib links all seem to be as expected. The boost libs don't give any complaints at compile except a note:
#pragma message("EXOCORTEX: ESS_PROFILING not defined, profiling disabled.")
But builds no problems. So I am thinking that maybe it's a symbol declared but not defined in the project and maybe related to this ESS_PROFILING note, as it seems to crop up a few different times in search issues. Any ideas before I did deeper? (I guess it could be compiler version - trying gcc4.8.2 on a docker image to test next step).
Cheers,
Colin
Maya output in script editor when loading plugin
// Error: line 1: /opt/ExocortexAlembic/Module/plug-ins/libMayaExocortexAlembic.so: undefined symbol: _ZN5boost16re_detail_10670012perl_matcherIN9__gnu_cxx17__normal_iteratorIPKcNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEEESaINS_9sub_matchISC_EEENS_12regex_traitsIcNS_16cpp_regex_traitsIcEEEEE14construct_initERKNS_11basic_regexIcSJ_EENS_15regex_constants12_match_flagsE (libMayaExocortexAlembic) //
Reported on the mailing list here: https://groups.google.com/forum/#!topic/Exocortex-Alembic/qvBvqh_Fs8E
In a clean scene, reference some geometry. The geometry should have a namespace. Attach an alembic to the geometry. This works fine.
When trying to attach a new Alembic, it does not get connected up to the Shape nodes properly. This is because the original attachment of the PolyMeshDeformer causes the creation of a new node that has no namespace and is called ShapeDeformed.
I'm still trying to figure out how to implement this but the problem is that Maya/scenegraph.cpp:visitChild ignores intermediate nodes, meaning that the ShapeDeformed node is put on the SceneNodeAppPtr graph but the Shape node isn't.
Hi everyone,
I have an issue with Exocortex Crate 1.1.145 for 3DSMAX 2015.
I'm trying to import an Alembic file with the Alembic Mesh Geometry modifier on a mesh
that haven't the same number of polys and vertex. The classic behavior results in 3DSMAX instantly crashing. In that way, I can't debug my scene for finding buggy objects.
Do you know if it's possible to disable the Alembic Mesh Geometry modifier in the case of the number of vertex doesn't match the original Alembic file ?
Let me know if you need more informations,
Have a nice day,
Yann.
There has been a report of this that has not yet been investigated.
I have reach the latest error trying to compile
libSoftimage2015ExocortexAlembic1.1.so
/usr/bin/ld: /usr/lib/gcc/x86_64-redhat-linux/4.8.5/../../../../lib64/libboost_regex.a(instances.o): relocation R_X86_64_32S against symbol `_ZTVN5boost6detail15sp_counted_baseE' can not be used when making a shared object; recompile with -fPIC
/usr/bin/ld: /usr/lib/gcc/x86_64-redhat-linux/4.8.5/../../../../lib64/libboost_regex.a(regex.o): relocation R_X86_64_32S against symbol `_ZTVN5boost11regex_errorE' can not be used when making a shared object; recompile with -fPIC
/usr/bin/ld: /usr/lib/gcc/x86_64-redhat-linux/4.8.5/../../../../lib64/libboost_regex.a(regex_traits_defaults.o): relocation R_X86_64_32 against `.rodata' can not be used when making a shared object; recompile with -fPIC
/usr/bin/ld: /usr/lib/gcc/x86_64-redhat-linux/4.8.5/../../../../lib64/libboost_regex.a(cpp_regex_traits.o): relocation R_X86_64_32S against symbol `_ZNSs4_Rep20_S_empty_rep_storageE@@GLIBCXX_3.4' can not be used when making a shared object; recompile with -fPIC
/usr/bin/ld: /usr/lib/gcc/x86_64-redhat-linux/4.8.5/../../../../lib64/libboost_filesystem.a(operations.o): relocation R_X86_64_32 against symbol `_ZN5boost10filesystem16filesystem_errorD1Ev' can not be used when making a shared object; recompile with -fPIC
/usr/bin/ld: /usr/lib/gcc/x86_64-redhat-linux/4.8.5/../../../../lib64/libboost_filesystem.a(path.o): relocation R_X86_64_32 against `.rodata.str1.1' can not be used when making a shared object; recompile with -fPIC
/usr/bin/ld: /usr/lib/gcc/x86_64-redhat-linux/4.8.5/../../../../lib64/libboost_system.a(error_code.o): relocation R_X86_64_32 against `.rodata.str1.1' can not be used when making a shared object; recompile with -fPIC
/usr/bin/ld: final link failed: Nonrepresentable section on output
collect2: error: ld returned 1 exit status
make[2]: *** [ExocortexAlembicSoftimage2015/libSoftimage2015ExocortexAlembic1.1.so] Error 1
make[1]: *** [ExocortexAlembicSoftimage2015/CMakeFiles/Softimage2015ExocortexAlembic1.1.dir/all] Error 2
make: *** [all] Error 2
I saw that:
# Issues with fpic (requires position independent code option during linking to these libs).
Is there any solution ??
When you set the path of an alembic to a relative path in the max asset tracker the mesh vanishes.
It appears that non ASCII characters in file paths cause Alembic files not to load correctly.
When I use exocortex import alembic, Polygon geometry always auto soften edge,
But I can't find "setEdgeSmooth" in cpp files, and can't find "polySoftEdge" command in mel and python scripts,
How to fix it, thanks !
I'm encountering an issue with the removeXfoSuffix function within CommonImport. When processing nodes containing the string "xfo", it will strip the first occurrence of the string, as opposed to the suffix occurrence.
expected behaviour:
example_asset:lt_xformfrozen_node1xfo > example_asset:lt_xformfrozen_node1
example_asset:lt_xformfrozen_node2xfo > example_asset:lt_xformfrozen_node2
example_asset:lt_xformfrozen_node3xfo > example_asset:lt_xformfrozen_node3
What I'm getting:
example_asset:lt_xformfrozen_node1xfo > example_asset:lt_
example_asset:lt_xformfrozen_node2xfo > example_asset:lt_
example_asset:lt_xformfrozen_node3xfo > example_asset:lt_
which is resulting in the following error on import (as well as a full halt of the import operation):
# Warning: Alembic: Warning: duplicate node name. Cannot add "standardbiped1:lt_" to map. #
My c++ is fairly rusty, but can anyone suggest a fix for this method so it replaces the final occurrence of "xfo" in a node name, as opposed to the first occurrence it encounters? It's fairly easy to move forward simply avoiding node names that contain the string "xfo", but it would be great to avoid placing gotcha usage restrictions on users like this.
We have a large unit test framework but it is not yet merged into this common repository. This should be done soon.
Hello,
I'm using Maya 2015 and the lastest Exocortex crate sources from Git built on Centos 6
almb = pm.ls(sl=1)[0]
almb.fileName.set('/home/aflotin/Desktop/exocortex')
= > maya crash
I know you're not supposed to set a directory name but since it makes Maya crash I prefered report it.
Cheers,
Antoine
The code style is inconsistent between files and also in files.
For most things this isn't a big deal but the main problem is the indentation is inconsistent (eg https://github.com/Exocortex/ExocortexCrate/blob/31c808272cfb25e74eb1a79151eebce41718701d/Maya/AlembicWriteJob.cpp). As a new contributor it would make the code a lot easier to understand if an indentation level was agreed upon and than standardized in the source files.
There are other style inconsistencies like usage of brackets in if chains (eg
ExocortexCrate/Maya/AlembicWriteJob.cpp
Lines 515 to 566 in 31c8082
Will there be any official binaries for Crate for maya 2016 on linux?
when run cmake , there are some errors ,tks for your reply
Performing C SOURCE FILE Test CMAKE_HAVE_LIBC_PTHREAD failed with the following output:
Change Dir: /data/zhuzikui/ExocortexCrate/build/CMakeFiles/CMakeTmp
Run Build Command(s):/usr/bin/gmake cmTC_48f36/fast && /usr/bin/gmake -f CMakeFiles/cmTC_48f36.dir/build.make CMakeFiles/cmTC_48f36.dir/build
gmake[1]: Entering directory /data/zhuzikui/ExocortexCrate/build/CMakeFiles/CMakeTmp' Building C object CMakeFiles/cmTC_48f36.dir/src.c.o /opt/rh/devtoolset-7/root/usr/bin/cc -fPIC -DCMAKE_HAVE_LIBC_PTHREAD -o CMakeFiles/cmTC_48f36.dir/src.c.o -c /data/zhuzikui/ExocortexCrate/build/CMakeFiles/CMakeTmp/src.c Linking C executable cmTC_48f36 /usr/local/bin/cmake -E cmake_link_script CMakeFiles/cmTC_48f36.dir/link.txt --verbose=1 /opt/rh/devtoolset-7/root/usr/bin/cc -fPIC -DCMAKE_HAVE_LIBC_PTHREAD -rdynamic CMakeFiles/cmTC_48f36.dir/src.c.o -o cmTC_48f36 CMakeFiles/cmTC_48f36.dir/src.c.o: In function
main':
src.c:(.text+0x2f): undefined reference to pthread_create' src.c:(.text+0x3b): undefined reference to
pthread_detach'
src.c:(.text+0x47): undefined reference to pthread_cancel' src.c:(.text+0x58): undefined reference to
pthread_join'
src.c:(.text+0x6c): undefined reference to pthread_atfork' collect2: error: ld returned 1 exit status gmake[1]: *** [cmTC_48f36] Error 1 gmake[1]: Leaving directory
/data/zhuzikui/ExocortexCrate/build/CMakeFiles/CMakeTmp'
gmake: *** [cmTC_48f36/fast] Error 2
Source file was:
#include <pthread.h>
void* test_func(void* data)
{
return data;
}
int main(void)
{
pthread_t thread;
pthread_create(&thread, NULL, test_func, NULL);
pthread_detach(thread);
pthread_cancel(thread);
pthread_join(thread, NULL);
pthread_atfork(NULL, NULL, NULL);
pthread_exit(NULL);
return 0;
}
Determining if the function pthread_create exists in the pthreads failed with the following output:
Change Dir: /data/zhuzikui/ExocortexCrate/build/CMakeFiles/CMakeTmp
Run Build Command(s):/usr/bin/gmake cmTC_67cfa/fast && /usr/bin/gmake -f CMakeFiles/cmTC_67cfa.dir/build.make CMakeFiles/cmTC_67cfa.dir/build
gmake[1]: Entering directory /data/zhuzikui/ExocortexCrate/build/CMakeFiles/CMakeTmp' Building C object CMakeFiles/cmTC_67cfa.dir/CheckFunctionExists.c.o /opt/rh/devtoolset-7/root/usr/bin/cc -fPIC -DCHECK_FUNCTION_EXISTS=pthread_create -o CMakeFiles/cmTC_67cfa.dir/CheckFunctionExists.c.o -c /usr/local/share/cmake-3.18/Modules/CheckFunctionExists.c Linking C executable cmTC_67cfa /usr/local/bin/cmake -E cmake_link_script CMakeFiles/cmTC_67cfa.dir/link.txt --verbose=1 /opt/rh/devtoolset-7/root/usr/bin/cc -fPIC -DCHECK_FUNCTION_EXISTS=pthread_create -rdynamic CMakeFiles/cmTC_67cfa.dir/CheckFunctionExists.c.o -o cmTC_67cfa -lpthreads /opt/rh/devtoolset-7/root/usr/libexec/gcc/x86_64-redhat-linux/7/ld: cannot find -lpthreads collect2: error: ld returned 1 exit status gmake[1]: *** [cmTC_67cfa] Error 1 gmake[1]: Leaving directory
/data/zhuzikui/ExocortexCrate/build/CMakeFiles/CMakeTmp'
gmake: *** [cmTC_67cfa/fast] Error 2
A declarative, efficient, and flexible JavaScript library for building user interfaces.
🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
An Open Source Machine Learning Framework for Everyone
The Web framework for perfectionists with deadlines.
A PHP framework for web artisans
Bring data to life with SVG, Canvas and HTML. 📊📈🎉
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
Some thing interesting about web. New door for the world.
A server is a program made to process requests and deliver data to clients.
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
Some thing interesting about visualization, use data art
Some thing interesting about game, make everyone happy.
We are working to build community through open source technology. NB: members must have two-factor auth.
Open source projects and samples from Microsoft.
Google ❤️ Open Source for everyone.
Alibaba Open Source for everyone
Data-Driven Documents codes.
China tencent open source team.