Search Unity

Houdini Engine

Discussion in 'Formats & External Tools' started by lcambiaghi, Jul 12, 2013.

  1. lcambiaghi

    lcambiaghi

    Joined:
    Sep 27, 2012
    Posts:
    41
    The Houdini Engine is a compact API which extracts Houdini's core technologies into a powerful procedural engine for film and game studios to integrate into proprietary applications. Experimental plug-ins for popular DCC apps such as Autodesk® Maya® and the Unity® game engine are under development at SideFX Labs.

     
  2. Durston88

    Durston88

    Joined:
    Mar 15, 2012
    Posts:
    110
    Whoa, really awesome news. I've dabbled in this and have some friends who work with Houdini, really excited to see what can come of using this in games.
     
  3. andrydeen

    andrydeen

    Joined:
    Aug 11, 2012
    Posts:
    37
    this is really great news, procedurally generate roads, buildings, dungeons and create destruction in real time.
     
  4. HeadClot88

    HeadClot88

    Joined:
    Jul 3, 2012
    Posts:
    736
    Awesome!

    Is this going to be available to indies as well?

    Or just big corporations that can afford it?
     
  5. monark

    monark

    Joined:
    May 2, 2008
    Posts:
    1,598
    Be even more awesome if the results didn't need to be baked out...
     
  6. Stjohn909

    Stjohn909

    Joined:
    Aug 19, 2011
    Posts:
    35
    They don't.

    The video happens to show a self-contained dynamics simulation asset, which is a bit misleading. If you weren't running the simulation using Houdini's dynamics and all you wanted were the broken pieces to hand off to Unity's RBD system, you wouldn't have to bake anything at all. the Asset remains live in the editor, always.
     
  7. monark

    monark

    Joined:
    May 2, 2008
    Posts:
    1,598
    What about something like procedurally animated geometry done in sops not using dynamics?
     
  8. Stjohn909

    Stjohn909

    Joined:
    Aug 19, 2011
    Posts:
    35
    Anything animated in SOPs is the same as having deforming geometry, even though you might have a number of groups or what appear to be discrete objects. They're not. They're all part of the same object. Prim groups in SOPs are like submeshes. Things in SOPs don't have 3d transforms like objects in a hierarchy, but the geometry object that contains the sopnet does.

    The way I'd set it up, to satisfy the requirements of your question, is to have a Houdini Asset doing something like deforming rocks every frame with a random number, which would give me a different rock each frame, in Houdini. In Unity, I'd have a .cs script with a for loop in it that sets the frame number parameter on the Asset to be whatever the int value is. Within that for loop, I'd create a new gameobject and grab the mesh from the result of my Asset, and at the end of the loop, I'd have a boatload of different rocks.

    At runtime, it's a different story. The assets don't cook at runtime. Well, technically they do, and only in play mode within the editor, but as it stands, you'd be crazy to give that much runtime budget to what is currently an Editor/level-load-time solution. Not that the libraries are porky, but the assets you build can be. We've tried to make it so the results of the asset are optimized and make sure we retain all the Houdini functionality.

    I see your location is London, but if there's any way you can make it to SIGGRAPH, stop by the SESI booth and we can chat.

    cheers,
    -John.
     
  9. monark

    monark

    Joined:
    May 2, 2008
    Posts:
    1,598
    So I was technically right, you have to bake out the results to use them? We are long time Houdini (since PRISM) and Unity users here, but yes based in London so probably tricky to get to SIGGRAPH. Really hoping that over time this can change into something fully embedded with procedurally functionality available right in the webplayer.
     
  10. Stjohn909

    Stjohn909

    Joined:
    Aug 19, 2011
    Posts:
    35
    if by 'bake out' you mean 'generate in the editor' then yes. Not bake to disk or any other intermediary format. Runtime cooking of HDAs is technically possible (I've done it), but only in the Editor's play mode at the moment.
     
  11. monark

    monark

    Joined:
    May 2, 2008
    Posts:
    1,598
    Yes sorry, by bake in this context I mean the result is fixed at build time. Handy that you don't need to write out a file, even that will be very useful for us, but being a long time Houdini user I know how totally awesome it would be to use the power of houdini properly inside the actual game engine.
     
  12. Marionette

    Marionette

    Joined:
    Feb 3, 2013
    Posts:
    349
    this is absolutely huge imo. as a developer an *not* an artist by trade, the thought of not only having to create assets, but spend all that time placing them and updating them, when I can be coding etc is *huge*.

    The ability to prototype ideas quickly with more depth just increased exponentially, and here's the key: to show off a demo/idea to a producer where you don't have to say things like: "in the real game, there will be more trees here..." because you didn't have time to place them ;)

    so question: will this be incorporated *into* unity core or will it be an asset obtainable *for* unity? kind of confused as to how it integrates and what this might do to unity's pricing point?
     
  13. Pix10

    Pix10

    Joined:
    Jul 21, 2012
    Posts:
    850
    So far all that's been said it that it's a plug-in. You do still need a Houdini install (such as the free Apprentice edition) - the plugin connects from within Unity to the Houdini host environment; it's not embedded into Unity the way, say, Substances are (proceduralTextures).
     
  14. Stjohn909

    Stjohn909

    Joined:
    Aug 19, 2011
    Posts:
    35
    Not quite.

    Unity is the host environment. The plugin accesses core Houdini dll's to make the asset sing and dance, and no session or process of Houdini is necessary. We're currently working with an Engine-only install that essentially wraps those libraries up into their own thing, the idea being that with one Houdini license, you can author assets for many Engine users. The full Houdini install will of course contain the Engine libraries, so you don't have to install both.
     
  15. Pix10

    Pix10

    Joined:
    Jul 21, 2012
    Posts:
    850
    Ahh ok, that's a step up from impressions up to now - thanks for putting me straight. That does raise more questions of course ... you can't really predict what's in an HDA, I would imagine you'd have to support almost every aspect of Houdini (all contexts, even Mantra output?)?

    So could we create HDAs that cook textures (i.e. projection mapping, etc) as well as geometry? Obviously it would be extremely cool if we can build truly dynamic multi-res content generators...nobody really enjoys texture baking.
     
    Last edited: Aug 2, 2013
  16. seitor

    seitor

    Joined:
    Feb 18, 2012
    Posts:
    36
  17. Houdini3d

    Houdini3d

    Joined:
    Jul 9, 2013
    Posts:
    15
    A more complete video with everything explained will be posted at the end of the month. You can also see the demo live in Vancouver at Unite 2013:
    http://bit.ly/14OvX1l

    Robert Magee
    Product Marketing Manager
    Side Effects Software
     
  18. monark

    monark

    Joined:
    May 2, 2008
    Posts:
    1,598
    So great to see my 2 favourite bits of software joining together like this! It's like seeing your 2 best mates getting married :)
     
  19. Stjohn909

    Stjohn909

    Joined:
    Aug 19, 2011
    Posts:
    35
    Sorry I'm a little slow getting back to this thread, SIGGRAPH and Unite have been consuming my life of late.

    The short answer, so far, is Yes You Can. You could create a HDA that renders out texture maps with Mantra. Certain limits apply, your mileage may vary, yada yada. Mantra does not currently support raytraced UV rendering, but Micropolygon Physically Based Rendering looks good, once you get the hang of it. Mantra is capable of putting out various passes like Normal, Specular, Bump, Diffuse, and even any custom attribute you can think of, like vector flow maps derived from interaction with a Houdini dynamics simulation. It can also save those as deep raster passes in a single .exr file. Not only that, if you decided you wanted to do your lightmapping somewhere besides Beast, Mantra could probably handle that as well. Multiple passes for multiple lights are just a fact of life for Mantra renders.

    The coolest thing about Houdini's rendering workflow is that it's really hard to tell where geometry leaves off and shader operations begin. The underlying VEX operations can be used in both contexts, and shaders can render based on an unlimited number of geometry properties of most known types. This technology was driven by feature film VFX, where shader parameters driven by geometry properties are necessary for basic survival. Houdini removes most of the limits on arbitrary properties and shader interaction.

    As for predicting HDA's, you don't really have to predict much. All HDA's have a finite number of ways to get data in and out, so anything that both the host application and Houdini support, you can work with. All HDA's have a parameter interface, some inputs, and some outputs. Outputs can be geometry, images, or channel data (in the case of CHOPs, which is like digital audio/DSP but for animation and geometry). To interact with the asset, you need only access the parameter interface, and the results are manifested where they're supposed to go. In the case of the Unity plugin, resulting geometry shows up in the scene view. Images are a work in progress, and currently go to files on disk instead of an image buffer. We're currently working on animation data as well.

    But, like with all things, the devil is in the details. I can't say with 100% confidence what will work in a production scenario and what won't. The plugin is still embryonic, and to make it ready to breathe the same filthy air that we do, we need a lot of feedback and some solid foundations for product design.
     
  20. Pix10

    Pix10

    Joined:
    Jul 21, 2012
    Posts:
    850
    Awesome, thanks for taking the time out to confirm all this. Really is starting to sound like you've managed to bottle the magic.

    I was thinking more of the limitations of Unity - it's still a 32bit client and does have a few hard limits on i.e. vertex count per object. Still, kind of a moot point I guess - there'll be a learning curve between otl creators consumers, and best practises will develop naturally.

    Can't wait ;)
     
    Last edited: Aug 22, 2013
  21. Houdini3d

    Houdini3d

    Joined:
    Jul 9, 2013
    Posts:
    15
    Here is the more detailed video of the material you found online

    SPOILER ALERT - avoid this video if you are coming to our Wednesday 4PM presentation at Unite2013 in Room 212 because it covers similar material.

     
    Last edited: Aug 26, 2013
  22. kilik128

    kilik128

    Joined:
    Jul 15, 2013
    Posts:
    909
    Altas mapping for mobile ?
     
  23. Acey195

    Acey195

    Joined:
    Mar 13, 2013
    Posts:
    10
    Hey Guys,

    I am also really thrilled about the Houdini Engine plugin,
    but since we still have to wait a little while I created a Houdini importer for Unity myself :D

    Demo Video:


    For those familiar with Houdini, it imports .geo files and processes them exactly like a copy SOP would in Houdini,
    with some basic attribute stamping included.

    Asset Store:
    https://www.assetstore.unity3d.com/#/content/12316
     
  24. payalsharma9988

    payalsharma9988

    Joined:
    Oct 31, 2013
    Posts:
    24
    Such great video thanks for sharing :)
     
  25. UNITY3D_TEAM

    UNITY3D_TEAM

    Joined:
    Apr 23, 2012
    Posts:
    720
    u asked unity to use for integration?
     
  26. Acey195

    Acey195

    Joined:
    Mar 13, 2013
    Posts:
    10
    I've updated my asset package with some new functionality, creating pathfinding data :D :
    This should be automatically added to the package over the course of next week.



    No problem, Thanks :)

    I do not know exactly what you mean, this package can be used completely separate from the Houdini-Engine.
    I wrote the file parser myself, so it doesn't use the Unity File importer. But if the Dev-team wants to use it, I am happy to cooperate :)
     
  27. lcambiaghi

    lcambiaghi

    Joined:
    Sep 27, 2012
    Posts:
    41
  28. kilik128

    kilik128

    Joined:
    Jul 15, 2013
    Posts:
    909
    sorry but where is for ? must be register
     
  29. Pix10

    Pix10

    Joined:
    Jul 21, 2012
    Posts:
    850
    You don't need to be registered - follow the quick start videos which explain the full download and installation steps, but all you need is the 32bit build of Houdini Apprentice, which doesn't require any login.
     
  30. tswalk

    tswalk

    Joined:
    Jul 27, 2013
    Posts:
    1,109
    so, how does bullet and PhysX work together like this?
     
  31. Pix10

    Pix10

    Joined:
    Jul 21, 2012
    Posts:
    850
    In the case of bullet, it's not a runtime solution, rather it bakes ("cooks") the physics simulation in the editor, which can be played back at runtime.

    An example, you could create a Houdini asset that blows things up, pipe your scene geometry into it, and run a physics simulation using your scene geo - this can then be played back at runtime (but the simulation itself has to be pre-computed).

    So you'd not use it for, i.e. a bat and ball game's realtime physics, but if you had something in your scene such as a building that you wanted to destroy, you could bake a complex animation complete with fracturing, dust and so forth, and play it back as a set piece. Not a small task, but there are so many ways to go about it, and even more if your building is built procedurally with HE in the first place.
     
  32. tswalk

    tswalk

    Joined:
    Jul 27, 2013
    Posts:
    1,109

    ah ok! well.. that's pretty freakin' cool.
     
  33. Pawscal

    Pawscal

    Joined:
    Mar 26, 2013
    Posts:
    11
    Just read all this and i think i got a bit confused, i understand the thing works in the editor, i've tried it. But does it work in a build?

    Thanks :)
     
  34. TechnicalArtist

    TechnicalArtist

    Joined:
    Jul 9, 2012
    Posts:
    736
    Houdini assets work with mobile platform?
     
  35. zelmund

    zelmund

    Joined:
    Mar 2, 2012
    Posts:
    437
    got problem
    did all step by step from here https://www.sidefx.com/products/houdini-engine/plug-ins/unity-plug-in/

    inside unty getting this error

    Loading Asset Library From File : HAPI Error: No Valid Licenses Found
    - HAPI_LICENSE_MODE unset or is set to 'default' meaning Houdini Engine will first try to acquire a Houdini Engine license and if one is not found it will try to acquire an interactive Houdini license (Houdini Core then Houdini FX).
    - No Houdini Engine license found.
    - No Houdini license.
    - No Houdini FX license found.
    - No Houdini Engine Indie license found.
    - No Houdini Indie license.
    If session is invalid, try restarting Unity.
    UnityEngine.Debug:LogError(Object)
    HoudiniEngineUnity.HEU_SessionBase:SetSessionErrorMsg(String, Boolean) (at Assets/Plugins/HoudiniEngineUnity/Scripts/Sessions/HEU_SessionBase.cs:189)
    HoudiniEngineUnity.HEU_SessionHAPI:HandleStatusResult(HAPI_Result, String, Boolean, Boolean) (at Assets/Plugins/HoudiniEngineUnity/Scripts/Sessions/HEU_SessionHAPI.cs:746)
    HoudiniEngineUnity.HEU_SessionHAPI:LoadAssetLibraryFromFile(String, Boolean, Int32&) (at Assets/Plugins/HoudiniEngineUnity/Scripts/Sessions/HEU_SessionHAPI.cs:1046)
    HoudiniEngineUnity.HEU_HoudiniAsset:LoadAssetFileWithSubasset(HEU_SessionBase, Boolean, Int32) (at Assets/Plugins/HoudiniEngineUnity/Scripts/Asset/HEU_HoudiniAsset.cs:1876)
    HoudiniEngineUnity.HEU_HoudiniAsset:StartRebuild(Boolean, Int32) (at Assets/Plugins/HoudiniEngineUnity/Scripts/Asset/HEU_HoudiniAsset.cs:862)
    HoudiniEngineUnity.HEU_HoudiniAsset:processRebuild(Boolean, Int32) (at Assets/Plugins/HoudiniEngineUnity/Scripts/Asset/HEU_HoudiniAsset.cs:786)
    HoudiniEngineUnity.HEU_HoudiniAsset:AssetUpdate() (at Assets/Plugins/HoudiniEngineUnity/Scripts/Asset/HEU_HoudiniAsset.cs:586)
    HoudiniEngineUnity.HEU_AssetUpdater:Update() (at Assets/Plugins/HoudiniEngineUnity/Scripts/Asset/HEU_AssetUpdater.cs:84)
    UnityEditor.EditorApplication:Internal_CallUpdateFunctions()


    i see menu houdini, can make some changes in options, but cant generate geometry from example.
    what i did wrong?
     
  36. LydiaUnity

    LydiaUnity

    Unity Technologies

    Joined:
    May 10, 2017
    Posts:
    1
    Hi everyone! Have you had a chance to check out the Houdini Game Jam?

    It's a great opportunity to use the newly released Houdini Engine for Unity, which lets you bring procedural node-based assets into the Unity editor. These assets contain "recipes" that can be applied many times in multiple levels to create consistent, high quality game art. Unity is supporting jammers on the contest forums, so you can bring your Houdini related questions there!