Code Monkey home page Code Monkey logo

Comments (5)

haysclark avatar haysclark commented on May 28, 2024

I know OSX support is a bit bleeding edge, re #24; however, after replacing "2018" with "2014" in FindMaya.cmake the plug-in does start to compile. Unfortunately, I hit a pretty obvious issue that 'maya/MUuid.h' does not exist in the Maya2014 includes.

Scanning dependencies of target maya2glTF
[ 46%] Building CXX object CMakeFiles/maya2glTF.dir/src/Arguments.cpp.o
In file included from /Users/hays/infinitedescent/Maya2glTF/src/Arguments.cpp:1:
/Users/hays/infinitedescent/Maya2glTF/src/externals.h:96:10: fatal error:
      'maya/MUuid.h' file not found
#include <maya/MUuid.h>
         ^~~~~~~~~~~~~~
1 error generated.
make[2]: *** [CMakeFiles/maya2glTF.dir/src/Arguments.cpp.o] Error 1
make[1]: *** [CMakeFiles/maya2glTF.dir/all] Error 2
make: *** [all] Error 2

I'm just starting to dig into the code, and likely am over my head, but I wanted to pose the question and see if anyone thinks this endeavor is possible. Others have mentioned possibly trying to implement a strategy-patterns to help fork behavior within the plug-in for various Maya versions. Any thoughts?

from maya2gltf.

haysclark avatar haysclark commented on May 28, 2024

Hmmm... I am blocked now. I was able to comment out the code above just to see if I could compile (expecting run-time errors). I also had to comment out 2 lines in MeshVerticies.cpp because mesh.iSRightHandedTangent() doesn't exist in the older API.

This is the new blocking issue:

[100%] Linking CXX shared library maya2glTF.bundle
Undefined symbols for architecture x86_64:
  "operator<<(std::__1::basic_ostream<char, std::__1::char_traits<char> >&, MTime const&)", referenced from:
      NodeAnimation::exportTo(GLTF::Animation&) in NodeAnimation.cpp.o
  "operator<<(std::__1::basic_ostream<char, std::__1::char_traits<char> >&, MString const&)", referenced from:
      Arguments::Arguments(MArgList const&, MSyntax const&) in Arguments.cpp.o
      Arguments::select(std::__1::set<MDagPath, DagPathComparer, std::__1::allocator<MDagPath> >&, MDagPath const&, bool) in Arguments.cpp.o
      ExportableMaterialPBR::loadPBR(ExportableResources&, MFnDependencyNode const&) inExportableMaterial.cpp.o
      ExportableNode::load(ExportableScene&, NodeTransformCache&) in ExportableNode.cpp.o
      ExportableTexture::ExportableTexture(ExportableResources&, MObject const&, char const*) in ExportableTexture.cpp.o
      Mesh::tryExtractBlendShapeDeformer(MFnMesh const&, MSelectionList const&) in Mesh.cpp.o
      Mesh::getOrCreateOutputShape(MPlug&, MObject&) const in Mesh.cpp.o
      ...
ld: symbol(s) not found for architecture x86_64
clang: error: linker command failed with exit code 1 (use -v to see invocation)
make[2]: *** [maya2glTF.bundle] Error 1
make[1]: *** [CMakeFiles/maya2glTF.dir/all] Error 2
make: *** [all] Error 2

Maya2014 might be pre-64bit, so I tried doing an i386 build but the program hits this issue.

[ 46%] Building CXX object CMakeFiles/maya2glTF.dir/src/Arguments.cpp.o
In file included from /Users/hays/infinitedescent/Maya2glTF/src/Arguments.cpp:1:
In file included from /Users/hays/infinitedescent/Maya2glTF/src/externals.h:101:
/Applications/Autodesk/maya2014/devkit/include/maya/M3dView.h:62:12: fatal error:
      'agl.h' file not found
#               include <agl.h>
                        ^~~~~~~
1 error generated.
make[2]: *** [CMakeFiles/maya2glTF.dir/src/Arguments.cpp.o] Error 1
make[1]: *** [CMakeFiles/maya2glTF.dir/all] Error 2
make: *** [all] Error 2

So... I might be out of luck.

from maya2gltf.

ziriax avatar ziriax commented on May 28, 2024

Thanks for trying this out! Unfortunately supporting 2014 is not a priority for us. Nevertheless let me try to help you out in my spare time :-)

The first problem: where do I download Maya 2014?

IMO the best approach is to drop some features first, and see if the plugin runs at all.

So I would comment out the M3DView.h include in externals, and see where this code is used. Most likely only to refresh the viewport while exporting, not a high priority. AGL is deprecated and replaced by OpenGL and Maya 2014 relies on that (4a1fbefe00db0184aa088eaacdd08a023c666f9f)

The right handed tangent support can be commented out first.

Furthermore I use C++17 and Clang, that didn't exist in 2014, so you will most likely have to use GCC, but that raises a ton of other issues. Then the runtime libraries used might will not be compatible with Maya 2014... All in all this is going to be a major undertaking

But, you can try of course :-)

from maya2gltf.

haysclark avatar haysclark commented on May 28, 2024

@ziriax Thanks for sparing some time. I download Maya2014 from ; however, maybe it's only available to people with perpetual licenses. I sent you an invite on LinkedIn so that I can forward you a link.

If it doesn't seem realistic, then maybe it would be best for me to figure out a Maya -> Colada -> GTFL, or an Automation setup, like Maya 2014 -> Maya 2018 -> GTFL.

from maya2gltf.

ziriax avatar ziriax commented on May 28, 2024

Did you try https://github.com/KhronosGroup/COLLADA2GLTF?

from maya2gltf.

Related Issues (20)

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.