Jump to content

Recommended Posts

Hello OdForce!
 
Circumstances have recently forced me to explore the possibility of rendering directly to Mantra from Maya -- that is: generating an IFD directly from Maya. This is in contrast to the more typical exporting of scene elements to Houdini (via some intermediate format like Alembic/Fbx, say) and then rendering from Houdini, which I realize is still a valid avenue open to us. Instead, I'm looking into the possibility of a method that will allow Maya users to simply "press render" and have Mantra transparently service said renders behind the curtains. My uncertainty with the whole thing lies primarily on the Maya side, because while I'm quite comfortable with Mantra and IFD's, I'm very much *not* a Maya power user.
 
I realize this is not at all a trivial task (and perhaps not even worth the effort in the end), and am also conversant with some of the individual components that may be put to use in a hypothetical solution:

  • Maya & Houdini C++/Python toolkits
  • IFD's reference SOHO implementation
  • Houdini Engine for Maya
  • etc...

But I'm curious, so I thought I'd tap into the vast Houdini brain-store here to see if anyone has had experience with this or can point me to existing partial/complete solutions (I'm aware of at least one partial attempt), or simply has travelled down the road enough to say "don't even think about it, you fool!" :)

 

TIA!

Edited by Mario Marengo
  • Like 3

Share this post


Link to post
Share on other sites

hi mario,

 

it would make sense to look at the maya houdini engine plugin and check what's has do be done to reach your needs. when you are lucky it's just a small modification.

 

https://github.com/sideeffects/HoudiniEngineForMaya

 

btw. if you are a sesi customer ask them also directly and explane your plan.  

Share this post


Link to post
Share on other sites

Thanks, Francis.

 

Yes, I've just recently started looking into the guts of HouEngineForMaya and am in touch with SESI... so we'll see. I'm fairly certain now, however, that at least to start with, we'll tackle things in the traditional way (Maya->Fbx/Alembic/etc->Houdini->Mantra), just for practical reasons. But as I familiarize myself better with some of the components, I may decide to tackle a direct Maya->IFD solution (in which case I'd  make it open source).

The purpose behind this initial exploration was to A) find out if any such thing exists out there; to which the answer is clearly "no" -- at least not publicly, and B) failing a ready-made tool, what would be the scope of a roll-your-own solution, to which the answer seems to be "rather large".

...but I'll continue to pull the string, of course:).

Edited by Mario Marengo

Share this post


Link to post
Share on other sites

Hi Mario,

I would lean towards the "don't even think about it". Let me carefully throw some wrenches at you. If you want a Maya user to push a button to generate an ifd, you are talking about a robust system. This system cannot easily be robust though. You would have to support blendshapes, animations, skin weights, motion blur, custom shading networks translated to compatible mantra shaders, etc. Which materials would you support? How many of the attributes from a supported material would you handle? if you limited your system and only supported several materials with several options, how would the user know if they are using something that is supported? At best, a massive effort would yield partial results of existing tools like fbx, alembic, collada, and even obj, but at what benefit?

It would probably be easier to write out a scene to ascii fbx and to write an fbx-to-ifd converter. However, at that point wouldn't it be easier to show some people to basics of houdini to work with an fbx in houdini? Maybe that is not an option for you.

What about writing a tool that saves an fbx from maya, and loads the fbx into a command line houdini which writes the ifd?

I know this is a blunt reply and I know you are quite capable. I wish you success in your project!

Share this post


Link to post
Share on other sites

Thanks for your thoughts^H^H^H^H^H^Hwrenches, Jim! :-)

Yup, I agree with all of it.

My new mission: to convert all these Maya heathens to Houdini!

 

Cheers.

Share this post


Link to post
Share on other sites

I have to agree. As the author of the mayaToMantra thing you menioned above I run into some problems. Geometry translation is not a big problem, so there is no need to support deformers, skin etc., you simply read the geometry at different positions, that's all.

 

The biggest problem was the need to write bgeo files. And unfortunatly the new json based bgeo format is a bit tricky to implement and documentation often lacks some information. My final solution was to save all geometry in a very simple format and use a houdini standalone tool to convert the geometry into bgeos. Not a really streamlined workflow. Another quite heavy part was the translation of the shading network. Well, it is possible, but it is a lot of work. Especially writing the shaders is tricky.

 

In my case I gave up because the workflow was too complicated, one reason was that maya used another Visual Studio version than houdini and libraries were not compatible. And finally I realized that with mantra rendering from maya you only can use a tiny amount of all the great possibilities unless you code a lot of tools to access point data and other things from withing maya.

Share this post


Link to post
Share on other sites

i'd be surprised if an ifd needed to use the latest version of bgeo files.  the "bhclassic" format would probably suffice.  the shading network might be tough, but would be awesome.  it must be a known quantity, tho, since other packages seem to handle it (3dlight, for example).

 

but even if you had a hard-coded "use this material" kind of thing, you could look dev in houdini and then push out animation/layout/lighting from maya, which seems like a reasonable workflow.  the mantra archive feature in houdini can dump out an ifd snippet that contains shaders for an object which could then be attached to your maya objects or even "imported" and made available.

Share this post


Link to post
Share on other sites

the most elegant way would be that sesi integrate this in the houdini engine. the ability to link vex/vop shaders inside maya directly without tons of codes and hacks.

the less maya you use the better / more stable it will be, so taking advantage of the new alembic reference feature in Maya 2016 would be nice.

 

- you have to geo cache all your mesh and reference them in Maya (you ditch all the deformer and complex translation problem of the equation)

- you load your vop / vex materials throw the houdini engine (maxwell reference .mxm node is kinda interesting as a reference)

- you load your light throw the houdini engine

- you load your FX inside Maya throw the houdini engine

and you are able to render in Mantra either from Maya or Houdini.

 

why would you want to import all the beauty of houdini inside Maya ? well i think the idea of unlocking Mantra to houdini only would be very sexy to sell houdini license, especially if mantra token comes for free !

 

sort of what apple did with their itunes and ipod to conqueer the pc market, first you taste the ipod, you find it cool then you buy a mac ...

first you taste the beauty of Mantra inside Maya then you move completely your lighting workflow to houdini ... because you realise you don't need maya anymore.

 

Mantra need some more proselytism and evangelism from sesi cause this engine is a pure beauty not enough use as a Full Feature renderer !

Edited by sebkaine

Share this post


Link to post
Share on other sites

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!

Register a new account

Sign in

Already have an account? Sign in here.

Sign In Now

×