Jump to content


  • Posts

  • Joined

  • Last visited

  • Days Won


Everything posted by LaidlawFX

  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
  16. So I have my own that does this. I pulled it off Orbolt when SideFX came out with theirs. It still resides here : https://github.com/LaidlawFX/LaidlawFX/blob/master/otls/LaidlawFX.sop__rbdfbx__1.0.hda with the python needed here : https://github.com/LaidlawFX/LaidlawFX/blob/master/scripts/python/LaidlawFX/fbx.py You would need to pull the whole repo if you want to use it directly to add it to your $HOUDINI_PATH. If you do know python, then you can just grab the code and modify it. For an FBX export, you need to build an object tree of your geometry cloud at your initial state. Then extract the transforms from the moving objects, and reference the transforms on the object level nodes. There are a few examples if you look for that workflow out there. Since Houdini does support what you want from the exploded directly out of the box, you will have to pick your poison. There are a few ways to extract the positions you need, but you will need some python to create the object tree.
  17. You need to change your sphere2 to a polygon from a primitive. FBX only works on polygon shapes. You can still use packed objects in the dop. The SideFX RBD to FBX will export packed object only based on the information given from DOPs, reverse of what I was saying. It has to be regular geometry prior to being pack however. I forgot they did not update it to work on non-RBD animations like your exploded view. To test just re-import it back into Houdini via the File > Import > FBX... menu rbdfbx_export_scene.hiplc
  18. You'll need to effect the system that created the point cloud that the file sop is looking at. One way of doing this is to set the up and N vectors on the original point cloud, and then rotate. Example attached. rotate_v1.hiplc
  19. http://www.sidefx.com/docs/houdini/copy/instanceattrs
  20. You'll need to provide an example scene of what your doing. FBX only exports regular geometry not packed geometry.
  21. RBD to FBX shoudl work. Make sure all the pieces are correctly identified with the name attribute as separate pieces. The pieces should not be packed.
  22. There are a lot of ways to do it depending on the system and the personal preference. I don't personally have a good example maybe some one else will. You could do something as old school and simple like a bashrc script, or a .bat. Python wrappers are the most common ones now a days. Setting the environment there then launching Houdini from inside it. You could even set them in the windows/mac system variables too. Just having a common wrapper works the best though. There are quite a few environment management systems if you really want to go all in. You can then use the same method for all of your dccs. Most of that process is not Houdini specific so I go to stack overflow first
  23. I believe you need to define that prior to 123.py being called. There are some variables that need to be set before Houdini starts like HSITE, there are variables you can change at 123.py, and other variables you can change while Houdini is running. There is no list of when which variables need to be declared when so try setting it in the shell prior to launch with a wrapper.
  24. Hello all, The Tech Artist Organization and the Seattle Houdini User Group would like to welcome you to Unity Technologies for a GDC practice run of our GDC speakers from the community. Not sure you'll be able to attend GDC? This is a great opportunity to be able to see the relevant talks from our community before they are at GDC. These talks are raw and in development, as the presenters will be honing their craft looking for YOUR feedback before they hit the big stage in San Francisco in March. Hello
  25. Depending one the shape you can also do shrink wrap, or a bounding sphere and a ray sop for low poly. The logic required for hard surface poly reduction to be the equivalent of simplygon is pretty complex so you generally need a complex HDA for that. Some of the processes to run are : Small part reduction, shape preservation, optimized triangle use, fuseing below certain thresholds, best fit scenarios for different simplified shapes like plane, box etc, Attribute copying, etc. The poly reduction sop has come a long way in H18 so I would recommend starting there.
  • Create New...