If you write out the cache as SIM file, you can resume from the last known valid frame (in your case, frame 80).
You can check out this thread on more details on resuming simulation: https://www.sidefx.com/forum/topic/30619/ [www.sidefx.com]
Found 69 posts.
Search results Show results as topic list.
Technical Discussion » RESTORE CACHE
- huey_yeng
- 69 posts
- Offline
Houdini Learning Materials » Why is there so little Python in Houdini training?
- huey_yeng
- 69 posts
- Offline
I started learning Python because at my previous workplace, a lot of tools from building a shot scene and submitting job to the render manager are written with Python.
It got me thinking that a lot of the daily tasks (well as a freshie to the industry) are so repetitive so I managed to wrote a few Python scripts that automate my grindy tasks of pulling renders from the server to my local workstation storage and also filename checker for data cleanup.
While Maya does have Python support, I'm still more of a MEL script guy as the listener does a nice job in printing the commands that I can repurpose for my custom script. Same goes with Maxscript.
When I realise Houdini doesn't have a similar concept (I think?) like Maya's Script Editor Listener, it took me awhile to read the docs and in a not surprising result, I manage to adapt a similar approach and wrote scripts to batch apply a particular parameters value to dozens of nodes and setting up the Mantra render settings.
Also Python are handy when you're creating your own digital assets!
If you're up to challenge, learn PyQT/PySide so you can create your own GUI with your customised Python commands for easy 1 click automation!
You know I feel bad when another major motivation for learning Python is to reduce my headache when dealing with my juniors as they often screw up the file naming convention so they can automagically run my script to get it to comply with the pipeline standard…
It got me thinking that a lot of the daily tasks (well as a freshie to the industry) are so repetitive so I managed to wrote a few Python scripts that automate my grindy tasks of pulling renders from the server to my local workstation storage and also filename checker for data cleanup.
While Maya does have Python support, I'm still more of a MEL script guy as the listener does a nice job in printing the commands that I can repurpose for my custom script. Same goes with Maxscript.
When I realise Houdini doesn't have a similar concept (I think?) like Maya's Script Editor Listener, it took me awhile to read the docs and in a not surprising result, I manage to adapt a similar approach and wrote scripts to batch apply a particular parameters value to dozens of nodes and setting up the Mantra render settings.
Also Python are handy when you're creating your own digital assets!
If you're up to challenge, learn PyQT/PySide so you can create your own GUI with your customised Python commands for easy 1 click automation!
You know I feel bad when another major motivation for learning Python is to reduce my headache when dealing with my juniors as they often screw up the file naming convention so they can automagically run my script to get it to comply with the pipeline standard…
Technical Discussion » Rendering Normals of Pyro + Fluid sims
- huey_yeng
- 69 posts
- Offline
I'm not sure of the right approach to export normal from volume like Pyro but you can use RGB lighting rig setup and light the smoke in a hacky way.
I know it works because I use it when creating several FX assets for use in Maya Viewport 2.0 although trial and error will be your best friend as you figure out the right light intensity and also shader settings.
There is also this thread with a sample file by Sadjad Rabiee in post #2: https://www.sidefx.com/forum/topic/41603/ [www.sidefx.com]
I know it works because I use it when creating several FX assets for use in Maya Viewport 2.0 although trial and error will be your best friend as you figure out the right light intensity and also shader settings.
There is also this thread with a sample file by Sadjad Rabiee in post #2: https://www.sidefx.com/forum/topic/41603/ [www.sidefx.com]
Houdini Indie and Apprentice » Houdini Cam alignment with animated maya alembic camera
- huey_yeng
- 69 posts
- Offline
You can use the fetch and blend node to retrieve the Alembic Maya camera and feed it into Houdini's camera.
Shameless plug but I wrote a guide on it on my website: https://taukeke.com/2018/01/houdini-tips-fetch-cam-attributes-for-imported-cam/ [taukeke.com]
Since I did my layout and modelling in Max, it occurred to me that one cannot directly use the camera data without some tweaking (the render looks funky) and got me looking around which several kind folks shared their solution to this issue over at Odforce.
Shameless plug but I wrote a guide on it on my website: https://taukeke.com/2018/01/houdini-tips-fetch-cam-attributes-for-imported-cam/ [taukeke.com]
Since I did my layout and modelling in Max, it occurred to me that one cannot directly use the camera data without some tweaking (the render looks funky) and got me looking around which several kind folks shared their solution to this issue over at Odforce.
Edited by huey_yeng - April 3, 2018 12:27:06
Houdini Indie and Apprentice » Mantra Render Issue
- huey_yeng
- 69 posts
- Offline
Can you share screenshot of your Mantra settings and also the whitewater setup?
Your description is pretty vague to pinpoint to a solution but since it is for a university project, have you tried opening it on another PC and see if it works?
Other than that, the best way to troubleshoot is to create a new scene and generate a quick sim from the shelf tool to see if everything is working as intended when rendering it with Mantra.
Your description is pretty vague to pinpoint to a solution but since it is for a university project, have you tried opening it on another PC and see if it works?
Other than that, the best way to troubleshoot is to create a new scene and generate a quick sim from the shelf tool to see if everything is working as intended when rendering it with Mantra.
Technical Discussion » Collision activation
- huey_yeng
- 69 posts
- Offline
Thanks for sharing your wisdom, Jeff! I'll keep it in mind in the future if I ever need to toggle a DOP sim.
Technical Discussion » Collision activation
- huey_yeng
- 69 posts
- Offline
I'm not in front of Houdini and can't remember if the Static Object has activation parameter on it but you can try to animate the static objects at the specific frame to be outside of the FLIP sim?
It is hacky method but I used it in several production shots before (although in RealFlow instead of Houdini).
It is hacky method but I used it in several production shots before (although in RealFlow instead of Houdini).
Houdini Indie and Apprentice » Smoke to geometry particles
- huey_yeng
- 69 posts
- Offline
You can convert the smoke volume to points and use copytopoints to copy your 0 and 1 geometry/sprites onto the generated points.
Random example but something to give you an idea on how to start:
Random example but something to give you an idea on how to start:
Edited by huey_yeng - March 28, 2018 11:12:37
Houdini Indie and Apprentice » Referencing a channel string
- huey_yeng
- 69 posts
- Offline
If you're using HScript, it will be chs (channel string).
So something like this:
Do take note of the backtick symbols if you want it to evaluate the string.
EDIT: Here's a screenshot for better demonstration of it.
So something like this:
`chs("label")`
Do take note of the backtick symbols if you want it to evaluate the string.
EDIT: Here's a screenshot for better demonstration of it.
Edited by huey_yeng - March 28, 2018 08:22:35
Technical Discussion » Objects in transparent object rendering with black material
- huey_yeng
- 69 posts
- Offline
If you enabled Fake Caustics under Opacity tab in the principled shader, it should fix that issue if I'm not mistaken.
Assuming you're using principled shader as I encounter it before when practising Mantra rendering.
Assuming you're using principled shader as I encounter it before when practising Mantra rendering.
Technical Discussion » An expression function to find the global scale of an object??
- huey_yeng
- 69 posts
- Offline
Yeap you can switch that to Python for Python expression.
If I'm not mistaken, Houdini will colour code the parameter with purple if the expression it is expecting was invalid.
You can also toggle the expression type anytime by right clicking it and go to Expression > Change Language to whatever.
If I'm not mistaken, Houdini will colour code the parameter with purple if the expression it is expecting was invalid.
You can also toggle the expression type anytime by right clicking it and go to Expression > Change Language to whatever.
Technical Discussion » An expression function to find the global scale of an object??
- huey_yeng
- 69 posts
- Offline
You can use Python to get the value of the scales using evalParmTuple.
Something like this:
Something like this:
spam = hou.node("path/to/object/you/want/to/get/the/scale") egg = spam.evalParmTuple("s") print egg # (-1.0, -1.0, -1.0)
Technical Discussion » i can't fix that the water leaks out through a glass
- huey_yeng
- 69 posts
- Offline
You need to give a thickness to the tube and also a decent VDB volume for collision. Other than that, you're pretty spot on with the network setup.
I attached a simple demo of my equivalent setup like yours. Do study it and compare the difference with your setup!
I attached a simple demo of my equivalent setup like yours. Do study it and compare the difference with your setup!
Edited by huey_yeng - March 26, 2018 12:51:01
Houdini Indie and Apprentice » Python error for listing directories
- huey_yeng
- 69 posts
- Offline
Hmm I'm still new to Python but the error indicates there is no such as “eval” attribute as the hou.node seems to be pointing to “.”
To get the current node, you can use hou.pwd() and to retrieve the parameter (aka evaluate it) you need to use evalParm(“parameterthatyouwanttoretrieve”)
I'm trying to create a what if scenario as I don't have Houdini in front of me so here goes:
To get the current node, you can use hou.pwd() and to retrieve the parameter (aka evaluate it) you need to use evalParm(“parameterthatyouwanttoretrieve”)
I'm trying to create a what if scenario as I don't have Houdini in front of me so here goes:
import os buildings_node = hou.node(“/obj/buildings”) # We set the variable with the target node aka "/path/to/the/node" buildings_path = buildings_node.evalParm(“path_to_buildings”) # Here we retrieve the value of "path_to_buildings" parameter (make sure it exists in the first place) buildings_folder = os.listdir(buildings_path) # Use Python OS Module to list the directories print buildings_folder
Technical Discussion » Ocean simulation question (s)
- huey_yeng
- 69 posts
- Offline
Why not use the infinite ocean technique? You can use either the Ocean Flat Tank or Guided Ocean Layer Shelf tool as your starting point so you only simulate the grid around the ship for the wake while blending the edges of the simulated grid with displacement map ocean.
Technical Discussion » Strange Blocks in FLIP fluid mesh
- huey_yeng
- 69 posts
- Offline
Rendering a relatively noise free reflective/refractive material with Mantra are indeed time consuming.
You might want to reduce the reflection and refraction limit to 3 or 4 if you use the default 10 which are overkill personally unless photorealism accuracy is your goal.
If you're rendering as image sequence, upping the noise threshold to around 0.03 for 720p output or 0.05 for 1080p should still be acceptable (provided your min/max samples is 1/9). Leave the pixel samples at 3x3 unless you need to render heavy motion blur/DOF that benefit from higher pixel samples.
I'm unsure what is causing the issue when you set the display flag to the surface_cache node but do remember that you can override the render flag (the purple colour) on any nodes which Mantra will use for the actual render so you can have a separate display flag (like a dummy geo for faster viewport display etc).
Ctrl+LMB on where you usually set the display flag to set it as render flag. There's a reason why there is the occasional RENDER null that the Shelf tool creates!
To really answer your issue… I got no idea at all. Maybe try bake out the problematic frame and read it in to compare the mesh with the one generated by the Particle Fluid Surface.
You might want to reduce the reflection and refraction limit to 3 or 4 if you use the default 10 which are overkill personally unless photorealism accuracy is your goal.
If you're rendering as image sequence, upping the noise threshold to around 0.03 for 720p output or 0.05 for 1080p should still be acceptable (provided your min/max samples is 1/9). Leave the pixel samples at 3x3 unless you need to render heavy motion blur/DOF that benefit from higher pixel samples.
I'm unsure what is causing the issue when you set the display flag to the surface_cache node but do remember that you can override the render flag (the purple colour) on any nodes which Mantra will use for the actual render so you can have a separate display flag (like a dummy geo for faster viewport display etc).
Ctrl+LMB on where you usually set the display flag to set it as render flag. There's a reason why there is the occasional RENDER null that the Shelf tool creates!
To really answer your issue… I got no idea at all. Maybe try bake out the problematic frame and read it in to compare the mesh with the one generated by the Particle Fluid Surface.
Houdini Lounge » Flip fluid cache, after or before remesh ?
- huey_yeng
- 69 posts
- Offline
You preferably will want to cache out in stages if you're dealing with very high particles count!
This is a slight tweak when using the Ocean Shelf tool.
I make sure to save out the compressed_cache (the fluid particles) first and read it in to do the meshing.
You'll want to bake the mesh too for faster rendering as you don't want to generate the mesh every time you render…
Also remember that you can reuse the fluid particle caches for the Whitewater and Mist Shelf tool.
This is a slight tweak when using the Ocean Shelf tool.
I make sure to save out the compressed_cache (the fluid particles) first and read it in to do the meshing.
You'll want to bake the mesh too for faster rendering as you don't want to generate the mesh every time you render…
Also remember that you can reuse the fluid particle caches for the Whitewater and Mist Shelf tool.
Edited by huey_yeng - March 18, 2018 07:14:11
Technical Discussion » Strange Blocks in FLIP fluid mesh
- huey_yeng
- 69 posts
- Offline
I don't have Houdini in front of me but definitely play around with the settings value in Particle Fluid Surface. I guess the generated VDB volume that influence the meshing pickup something that it is not supposed to.
Try Spherical if you're using Average Position and also the Erosion/Dilate.
Try Spherical if you're using Average Position and also the Erosion/Dilate.
Technical Discussion » Global Variables in Python Callback Script
- huey_yeng
- 69 posts
- Offline
Ah completely forgotten about the escape character.
I must have been so caught up wondering why the code works fine when executing through the Python Source Editor.
Thanks Tomas!
I must have been so caught up wondering why the code works fine when executing through the Python Source Editor.
Thanks Tomas!
Technical Discussion » Global Variables in Python Callback Script
- huey_yeng
- 69 posts
- Offline
I'm curious on how to set a string value that has global variables in a Python callback script?
Referring to the above screenshot (pardon my lame humour as I'm still debugging it), if I execute the code in the Python Source Editor, it returns the value that I wanted with the global variables intact while executing the same code through callback expand the global variables.
Ninja edit: Guess using this weird workaround by (“$” + “HIP”) solved the issue for me.
Basically here's what I did to get it to evaluate to my desire result:
Referring to the above screenshot (pardon my lame humour as I'm still debugging it), if I execute the code in the Python Source Editor, it returns the value that I wanted with the global variables intact while executing the same code through callback expand the global variables.
Ninja edit: Guess using this weird workaround by (“$” + “HIP”) solved the issue for me.
Basically here's what I did to get it to evaluate to my desire result:
oldspam = "$HIP/geo/$HIPNAME/" + hires_name + "/" + hires_name + ".$F4.vdb" # Only works in Python Source Editor workingspam = "$" + "HIP/geo/" + "$" + "HIPNAME/" + hires_name + "/" + hires_name + "." + "$" + "F4.vdb"
Edited by huey_yeng - March 14, 2018 11:48:38
-
- Quick Links