Welcome to od|forum

Register now to gain access to all of our features. Once registered and logged in, you will be able to contribute to this site by submitting your own content or replying to existing content. You'll be able to customize your profile, receive reputation points as a reward for submitting content, while also communicating with other members via your own private inbox, plus much more! This message will be removed once you have signed in.


  • Content count

  • Joined

  • Last visited

  • Days Won


Community Reputation

140 Excellent


About Juraj

  • Rank

Contact Methods

  • Website URL https://sk.linkedin.com/in/juraj-tomori-296a4b116

Personal Information

  • Name Juraj
  • Location Slovakia
  1. I also wrote a blog post describing my approach, feel free to check it here.
  2. Hello, thanks! Glad you like it Unfortunately I cannot share scripts because of the university policy, but will try to write a new one save incremental function # splits versioning string into letter and number, e.g. v025 -> ['v','025'] def verSplit(ver): head = ver.rstrip('0123456789') tail = ver[len(head):] return head, tail # save incremental, tries to preserve version formatting def saveInc(): hipname = hou.getenv('HIPNAME') if hipname != 'untitled': v, num = verSplit( hipname.split("_")[-1] ) num = str( int(num) + 1 ).zfill( len(num) ) newName = hipname.split("_") newName[-1] = v + num newNameStr = hou.getenv('HIP') + "/" + "_".join(newName) + "." + hou.getenv('HIPFILE').split(".")[-1] hou.hipFile.save(newNameStr) else: print "cannot increment version name in untitled.hip" Hi, thanks Maybe, but this setup is not very portable and was made for our pipeline. It would require a bit of work to prepare for release and to make it work in most of the environments. LOD switching would not require much of work in this setup. Just computing distance to render camera and then thresholding it into an LOD attribute. But in our case manual decisions proved to be most suitable.
  3. Hi, probably building simple solver could help you. Check out those tutorials, they explain how to build simple and fast fluid solver. If I understood correctly, you need to initialize velocity volume (sampled on faces), then for each simulation step: inject into it velocities from animated geometry, do divergence-free projection, advect velocity by itself and repeat... Probably you might need to enforce boundaries to zero out velocity within geometry.
  4. Here is collection of breakdowns for a project I was working on during last half of a year Vimeo album: https://vimeo.com/album/4471569 Or individual videos:
  5. So I realized, that it is not possible to set rendering properties as mantra command line arguments. But I found cool solution for my problem, it can be done easily with hscript. opproperty -f /out/mantra1 mantra* *dcm* This did the trick, I am calling it with hou.hscript() in Python.
  6. Now when I think of it, it might be better to pass those properties as command line arguments in mantra driver. How should I format those arguments? For example for DCM Z Storage property. Like this? mantra -vm_dcmpzstorage "16 bit float"
  7. Hello, I am struggling with adding all deep render properties inside a mantra node with python. To do so manually via interface is quite simple, I go to node - edit render properties - filter *deep* - add them all. However I am modifying mantra nodes with python and it would be great if I could do the same thing automatically. So far it seems rather tedious - I need to create all ParmTemplates, match their signatures and append to a FolderParmTemplate and set this to the node. Another thing worrying me is menu parameters - I do not need to create interface with menus, can I only set the desired value? Is it equivalent to creating a string parameter and setting it's value to menu item's name (not label)? Thanks, Juraj
  8. Hi, thanks! It works. int prim; vector uv; int firstPt = primpoint(0, @primnum, 0); vector firstPtP = point(0, "P", firstPt); string grp = "!* ^"+itoa(@primnum); float dist = xyzdist(0, grp, firstPtP, prim, uv, 0.0000001); if (prim != -1) v@Cd = {1,0,0}; However performance is much slower then the previous way. Instant cook vs 4 seconds in this case, maybe using this primgroup parameter is not that efficient. I am still curious about this syntax !* ^240 - how would you explain it? * ^240 means: check against everything, but primitive 240 ! means inversion, like in blast sop: delete non selected, so wouldnt it negate the * symbol? Like that: !* == (nothing) However, if I leave out !*, then it doesn't work. Hmm...
  9. Everything well explained here. https://www.sidefx.com/forum/topic/37329/ Still curious why mplay does not interpret .blut lut correctly. With lut from the topic I got match between mplay and nuke.
  10. So it seems like mplay is not interpreting lut correctly :/
  11. I tried to generate in Nuke linear-srgb lut, but it doesn't seem to work in mplay. There is still noticable offset. However using the generated lut in Nuke perfectly matches this color space transformation.