Jump to content


  • Posts

  • Joined

  • Last visited

  • Days Won


LaidlawFX last won the day on March 3 2020

LaidlawFX had the most liked content!


About LaidlawFX

  • Birthday 02/23/1985

Contact Methods

  • Website URL

Personal Information

  • Name
  • Location
    Pacific North West
  • Interests
    Getting away from the computer

Recent Profile Visitors

The recent visitors block is disabled and is not being shown to other users.

LaidlawFX's Achievements


Newbie (1/14)



  1. Statistically improbable until you factor in a pandemic! Houdini 19 is coming out this Halloween season! TM data analysis says it should have been here this summer based on years of old... I have to say I awoke from a long slumber for this release. So I am looking forward to seeing what good offerings there are in this issue. My only wish is for SideFX to still keep on being independent and carving its own path. Trying to get folks to understand the heart of Houdini is no small feat. As always, this is a non-official wish list. So please submit BUGs, RFEs, and Questions directly to support. Also for anecdotal questions and rants branch them to another thread. People will more likely help you in a dedicated thread. -Cera
  2. The best answer I can say as to Alembic vs FBX is to pick the right tool for the job. Outside of playing 20 questions to ask about nuances it's easy to go either way. You may want to keep FBX as it's commonly supported across all packages. There is no nice Alembic Object node, so you are stuck using the Windows menu. The File Sop and Alembic Sop do a lot of the same thing. I guess I would say it comes down to are you porting materials, and how big are the files? With materials, I would stick with FBX unless you got a little R&D time to pack the materials. Or with big pieces of geometry go alembic. I would scarily enough suggest trying USD if you are still at the point of deciding a new format. That will be the best long term. Your tifs should not be held in memory by Houdini. EXR can have that issue like Alembic. It's possible that a specific node may be holding the texture in memory. The scene would have to be debugged to figure out that one. They don't refresh in the viewport in Houdini unless you press the refresh option in the windows bar.
  3. What texture format are you using?
  4. I believe this has more to do with the design of Alembic than Houdini. Don't quote me on this, however, Alembic turns into a memory like file state so that it can stream the data. This is one of the unique "features" of alembic compared to say FBX. This is how it allows the format to stream in the data so fast at runtime speeds. The workaround if you need access quickly and still want to keep performance, is to place a file cache node after it and write the alembic information to disk into Houdini's native file format, and then delete the alembic cache from Houdini. You can set this up in an HDA, with a call backscript, or in the hda's python module to press import alembic, press render file cache, and then press delete alembic file tree. If you need the hierarchy for say a DOPs sim it's best to make a copy of the Alembic file into something like a TEMP directory if you need simultaneous use of it.
  5. I've only worked on a few AAA franchises, with a few GDC talks you may have watched. Maybe you should wait on someone else to answer
  6. If you know how your terrain data is sliced for the 20kx20k world, you can just align the slices of the road geometry in Houdini. A roundtrip-able spline data is not common with off the shelf tooling. It's generally in the domain of studio pipelines. Even then mostly it's a one way process. It starts in the creation software saved to an external file then backed down in the engine. It generally does not come back in from the engine. However with Houdini Engine, you can take the splines you've created and write them out as your own data fromat. .svg should be able to handle most work by splines. However, Houdini does not have a native spline export tool. So you would be making one in python, or C++. You could write the data out as .csv if you really want, but then everything truely is a custom pipeline. One of the more efficient ways of doing open world roads is not to use mesh prefabs for the road, but to bake the main road texture directly into the heightmap. Then you instance decals onto the road to make it unique. This saves you from having multiple meshes representing the surface of terrain. You can then add street lamps, road signs etc via this method. The prefab for meshes works generally best in simple contained game environments like a city you teleport in and out of. Especially a city that does not use a heightmap. With a 20K world you will most certainly be using a heightmap nowadays.
  7. Two alternate ways with Houdini Engine would be to make an object level subnet hda, then set up an geo node for each child and object merge each child sop piece into it. The other hack way to do it in an hda is to use groups an on the Unity hda importer toggle on the split geometry based on groups.
  8. Sometimes I feel like I can predict the future... https://developer.apple.com/wwdc20/videos/ Arm64 on mac will be a thing now.
  9. Hello, Houdini should respect your graphics card. The RTX 2060 is from January 15, 2019 so make sure you are on a version of Houdini that is created past that date i.e. if you are working with the latest production build of Houdini this should not be an issue. The second thing I would look for is to make sure your drivers are up to date. If they are the latest driver maybe roll back to last major driver, sometimes the newest drivers are ahead of the dcc developer cycle. The third thing I would check is to see if any other dcc or game does not recognize them too. Then it may be a more common issue like the drivers are the problem, or your motherboard may need updated drivers to see it correctly. Fourth I'm guessing this is very slim is that your OS is not recognizing the graphics card for some reason. Perhaps the cards is bad, or not set correctly, or your using an OS that may not support the drive. Houdini and Nividia's rarely have an issue. If it's none of these issues above I would send in a support ticket to SideFX with your system info Help > About and saving out all the info to disk and the card information. There is a rare chance that this specific GPU may be different. Generally that is reserved for the likes of your onboard intel graphics cards on your motherboard, which Houdini does not like, and will not support.
  10. For instance in your Houdini.env # Houdini Environment Settings # ACME = P:/path/on/disk HOUDINI_PATH = $HOUDINI_PATH;$ACME;& ACME will be evaluated first and then when HOUDINI_PATH is evaluated it can use it in the path. Of course Houdini.env is for your personal preferences. So say you use windows environment, do Windows Key + Edit the system Environment Variables, in the System Properties press the button Environment Variables... Here you can enter in local or system variables. Path on Windows is very common for say adding access to the command line for .exe say python, or Houdini's bin directory. If you put $HOUDINI_PATH here it will be processed first in the system. Thus having the inclusion of $HOUDINI_PATH; in my Houdini.env declaration of HOUDINI_PATH. Alternatively in this context any variable will be expanded prior to anyone of them being called. So unlike in Houdini.env or a python or bash script. You do't have to worry about order of operations. One of the more common ways to set HOUDINI_PATH in production is via wrapper made by python, or a bashrc in linux. If you declare ACME then HOUDINI_PATH in it, and then launch Houdini or say Houdini Engine, any variables will be called first before Houdini.env. This happens with a parent child relationship where each application that spawn another application will inherent the parents "environment" variables. There are many other ways to set up the environment variables, but this should give some of the more common methods with order of operations concept. Hope that helps.
  11. You just need to set them before, the Houdini ones are declared. Setting them in a shell prior to launching. Setting them in the global environment variables, they will all condense when anyone is called. You can even do it in Houdini.env if you set them prior to $HOUDINI_PATH.
  12. The python and the fbx part can't really be speed up that much. The python code can be cleaned up a bit and made more robust. This is a few year old code that I abandoned. The extraction of transforms can be speed up quite a lot with a new set of nodes in Houdini. FBX in general is an outdated format for this type of work. If you are looking for straight transform Vertex Animation is the best bet. That where all my latest code and development have gone the last few years. As far as learning python, just picking up snippets here and there in Houdini helps. It does not have to be a full course. Like this example where you had a specific problem to solve. You might not understand all the code, and by my own admission it's not the best, but once you see more code like it you'll be able to compare. The basic concept of just having python in Houdini press a button when another task is done is where I got my start. I wanted to trigger one sim after another.
  13. Preferably not. Thanks for thinking of it though.
  14. Unlock the hda and copy channel reference the start/end frame to the ROPs/FBXSplit start/end frame. I forgot how slow of an export this method was. You will know when it is exporting.
  15. Ok I shared the wrong FBX code with my repo. Need to fix that at some point. I hacked my own node to work again. It is really bad legacy code at this point, lol. Hopefully it works for you. It was missing a chunk of code that copied the extracted transforms to the geometry. Which is doing an old extract of transform at this point. Oh well, legacy junk. tempexporter.hda RBDtoFBX_export.hiplc
  • Create New...