Found 183 posts.
Search results Show results as topic list.
Technical Discussion » Set up HDA so that a single inner subnet is unlocked for editing
- NFX
- 183 posts
- Offline
So the Solver SOP does this, where when you dive inside it while it is locked, it takes you down past the locked layers and into an unlocked Geometry DOP. How do you set something up like this? Say I want to make an HDA with a subnet inside that is down several levels. How do I leave it unlocked and instantly accessible like that?
Technical Discussion » Evaluate in Python from a path ?
- NFX
- 183 posts
- Offline
It's true that if you run the code in the shell, python won't know what node you're talking about without you passing it specifically. However, if you run code as a python expression on the node itself then you can access the parameter that called the function with hou.evaluatingParm(). Once you have that parameter you can backtrack to the node and get the ‘tx’ parameter you want.
node = hou.evaluatingParm().node()
parm = node.parm('tx')
Again this will not work in the shell, only when executing code on the node itself.
node = hou.evaluatingParm().node()
parm = node.parm('tx')
Again this will not work in the shell, only when executing code on the node itself.
Technical Discussion » Distance-From-Camera adaptive divisions
- NFX
- 183 posts
- Offline
Technical Discussion » How to dynamicly detect and assign materials to an object loaded through a file sop.
- NFX
- 183 posts
- Offline
Currently we do this by creating an export script in Maya that creates a material linker file which basically tells us what textures go to which material and which material goes on which material group. We then export the geo from Maya as an .obj with the material groups included. In Houdini we import the geo using a script which places the file merge node along with a material that best matches the material used in Maya using the definitions in material linker file. That file also tells the script which textures go to which new material and then how to assign those materials to the proper groups in a material SOP.
So it definitely takes a bit of coding overhead, but once it's working it speeds up the process of Maya->Houdini imports significantly.
So it definitely takes a bit of coding overhead, but once it's working it speeds up the process of Maya->Houdini imports significantly.
Technical Discussion » "Rolling Back" HDA definition versions with python
- NFX
- 183 posts
- Offline
Technical Discussion » "Rolling Back" HDA definition versions with python
- NFX
- 183 posts
- Offline
jsmackSo I am not sure which part of the HOM you are talking about, since I haven't been able to figure this out from the documentation yet. Currently the pages I have found most useful are…
Yes, we use this in our studio's HDA version control system. Everything you need to know is in the HOM documentation.
hou.HDADefinition [www.sidefx.com]
hou.hda [www.sidefx.com]
hou.Node [www.sidefx.com]
Install and manage assets [www.sidefx.com]
However, none of these make it clear how to set the current definition of the asset. Even when I try to change the current definition the operator type manager window the node doesn't actually change to that definition.
Any tips as to what functions or examples in the documentation I should be looking at?
Technical Discussion » "Rolling Back" HDA definition versions with python
- NFX
- 183 posts
- Offline
So I have been playing around in H16 with trying to create a HDA version manager in python and I discovered that you could assign multiple definitions with different names (for instance a name with an incremented version portion of <namespace>::<name>::<version>) to a single HDA file. Am I right in thinking that I could use this to store past versions of an HDA in a single HDA node? Is there a way this could be used to roll back and forth between versions pythonically?
So far my experiments seem to let me make and add new definitions to an HDA file, but I can't figure out how to set a previous definition to be current, or how to erase unwanted definitions. Any tips?
So far my experiments seem to let me make and add new definitions to an HDA file, but I can't figure out how to set a previous definition to be current, or how to erase unwanted definitions. Any tips?
Technical Discussion » Copy/Paste Hotkeys Not Working in Python Panel
- NFX
- 183 posts
- Offline
So I built a custom asset manager panel based on the tutorials by Varomix and have noticed that houdini 16.0 doesn't seem to understand when I bring the panel into focus. This results in me being unable to use hotkeys to paste, copy, or cut text in the QLineEdit fields, although surprisingly command-Z still works for undoing changes. Instead, houdini tends to paste any relevant information in my clipboard into the last non-python window I had active.
Any ideas how to fix this? For now I am stuck using the right-click context menu to do these operations.
Any ideas how to fix this? For now I am stuck using the right-click context menu to do these operations.
Technical Discussion » Many materials or many overrides?
- NFX
- 183 posts
- Offline
Wow. Yeah IFD generation time just dropped from 10min to 2min. Thanks for your help guys!
Technical Discussion » Hython method for listing supported file extensions
- NFX
- 183 posts
- Offline
Technical Discussion » Many materials or many overrides?
- NFX
- 183 posts
- Offline
Thanks guys. Good to know about the .rat file conversion, considering the number and size of the textures I'm dealing with that is probably a considerable factor. I'm already using disk primitives wherever possible and it was still taking me about 30min to compile my IFDs. Hopefully this will cut that down a good bit though.
Technical Discussion » Hython method for listing supported file extensions
- NFX
- 183 posts
- Offline
So this works for 90% of the file types, however I noticed it doesn't include some supported formats like .obj or .ia. Would these be listed in a separate file?
I found GEOio.json which has a bunch of the other extensions as well as other related info, so for now I am extracting them from the json and adding them to the ones I got from the GEOfiles file. Not ideal, but it kinda works.
I found GEOio.json which has a bunch of the other extensions as well as other related info, so for now I am extracting them from the json and adding them to the ones I got from the GEOfiles file. Not ideal, but it kinda works.
Edited by NFX - Nov. 22, 2017 22:16:10
Technical Discussion » Hython method for listing supported file extensions
- NFX
- 183 posts
- Offline
Technical Discussion » Hython method for listing supported file extensions
- NFX
- 183 posts
- Offline
GuillaumeJ
If you're talking about images, they are stored in “FBfiles” file, you can fetch them using that snippet:file_types = [] for fb in hou.findFiles("FBFiles"): with open(fb, 'r') as f: file_types += [ft.strip() for ft in f.readlines() if \ not ft.startswith("#")] print file_types
Thanks GuillaumeJ! This is definitely a step in the right direction. Now is there a similar file where I can find supported geometry file extensions?
Technical Discussion » Hython method for listing supported file extensions
- NFX
- 183 posts
- Offline
I've been looking for a Hython method or something that would return a list of all supported file extensions (by type preferably) but so far haven't had much luck. Anyone know how to get this. I'd prefer not to have to hard code it myself.
Technical Discussion » Many materials or many overrides?
- NFX
- 183 posts
- Offline
I'm setting up a rather large scene and am exploring ways to speed up IFD compilation. In the past I have been warned not to use too many materials as they each take time to compile. Is this still true with the principled shader? If so would it be faster to use just a few materials but override their parameters per object? Are there any other tricks to handling large scenes that I should be aware of?
Technical Discussion » OpenCL Issues on Mac with Xeons
- NFX
- 183 posts
- Offline
Sorry that I haven't replied until now. It seems that Sidefx isn't sending me notifications for subscribed posts.
I ran the command and this is what I got back.
The OpenCL exception at the end doesn't look promising though.
I ran the command and this is what I got back.
OpenGL Vendor: NVIDIA Corporation OpenGL Renderer: NVIDIA Quadro 4000 OpenGL Engine OpenGL Version: 4.1 NVIDIA-10.10.14 310.42.25f02 OpenGL Shading Language: 4.10 Detected: NVidia Professional (Mac version) Unknown VRAM Unknown driver version Supported Extensions not in OpenGL 3.3 (Version): GLX_SGI_swap_control GL_ARB_gpu_shader5 (4.0) GL_ARB_gpu_shader_fp64 (4.0) GL_ARB_sample_shading (4.0) GL_ARB_separate_shader_objects (4.1) GL_ARB_tessellation_shader (4.0) GL_ARB_texture_buffer_object_rgb32 (4.0) GL_ARB_transform_feedback3 (4.0) GL_ARB_vertex_attrib_64bit (4.1) GL_EXT_texture_filter_anisotropic Unsupported OpenGL Extensions used by Houdini: EXT_extensions_string GL_ARB_base_instance (4.2) GL_ARB_bindless_texture GL_ARB_bindless_texture GL_ARB_buffer_storage (4.4) GL_ARB_compatibility GL_ARB_compute_shader (4.3) GL_ARB_debug_output GL_ARB_multi_bind (4.4) GL_ARB_program_interface_query (4.3) GL_ARB_robustness GL_ARB_shader_image_load_store (4.2) GL_ARB_shader_storage_buffer_object (4.3) GL_ARB_shading_language_packing (4.2) GL_ATI_meminfo GL_EXT_abgr GL_EXT_blend_minmax GL_EXT_direct_state_access GL_KHR_debug (4.3) GL_NVX_gpu_memory_info GL_NV_gpu_shader5 OpenGL Limits: ELEMENTS_VERTICES 1048575 ELEMENTS_INDICES 150000 VERTEX_UNITS 16 TESS_CONTROL_TEXTURE_IMAGE_UNITS 16 TESS_EVALUATION_TEXTURE_IMAGE_UNITS 16 GEOMETRY_UNITS 16 FRAGMENT_IMAGE_UNITS 16 COMBINED_UNITS 80 TEXTURE_SIZE 16384 3D_TEXTURE_SIZE 2048 CUBE_MAP_TEXTURE_SIZE 16384 RECTANGLE_TEXTURE_SIZE 16384 TEXTURE_ARRAY_LAYERS 2048 MAX_COLOR_TEXTURE_SAMPLES 8 MAX_DEPTH_TEXTURE_SAMPLES 8 FBO_ATTACHMENTS 8 DRAW_BUFFERS 8 VIEWPORT_DIMS 16384x16384 VERTEX_UNIFORMS 4096 FRAGMENT_UNIFORMS 2048 VERTEX_ATTRIBS 16 VERTEX_OUTPUT_COMPONENTS 128 MAX_CLIP_DISTANCES 8 PATCH_VERTICES 32 TESS_GEN_LEVEL 64 TESS_PATCH_COMPONENTS 120 TESS_CONTROL_OUTPUT_COMPONENTS 128 TESS_CONTROL_TOTAL_OUTPUT_COMPONENTS 4216 TESS_EVALUATION_OUTPUT_COMPONENTS 128 GEOMETRY_UNIFORM_COMPONENTS 2048 GEOMETRY_INPUT_COMPONENTS 128 GEOMETRY_OUTPUT_COMPONENTS 128 GEOMETRY_TOTAL_OUTPUT_COMPONENTS 1024 GEOMETRY_OUTPUT_VERTICES 1024 UNIFORM_BLOCKS 70 UNIFORM_BLOCK_SIZE 65536 UNIFORM_BUFFER_BINDINGS 70 COMBINED_VERT_UNIFORM_BLOCKS 14 COMBINED_VERT_UNIFORM_COMPS 233472 TESS_CONTROL_UNIFORM_BLOCKS 14 TESS_CONTROL_UNIFORM_COMPONENTS 2048 TESS_EVALUATION_UNIFORM_BLOCKS 14 TESS_EVALUATION_UNIFORM_COMPONENTS 2048 COMBINED_GEO_UNIFORM_BLOCKS 14 COMBINED_GEO_UNIFORM_COMPS 231424 COMBINED_FRAG_UNIFORM_BLOCKS 14 COMBINED_FRAG_UNIFORM_COMPS 231424 TRANSFORM_FEEDBACK_INT_COMPS 64 TRANSFORM_FEEDBACK_SEP_COMPS 4 TRANSFORM_FEEDBACK_SEP_ATTRIBS 4 LINE_WIDTH_RANGE 0.5 - 1 LINE_WIDTH_GRANULARITY 0.125 POINT_SIZE_RANGE 1 - 2047 POINT_SIZE_GRANULARITY 0.125 OpenCL Exception: (-33) logout Saving session... ...copying shared history... ...saving history...truncating history files... ...completed. [Process completed]
The OpenCL exception at the end doesn't look promising though.
Technical Discussion » OpenCL Issues on Mac with Xeons
- NFX
- 183 posts
- Offline
So I am trying to test the heightfield erode tool and am getting the error “OpenCL exception: clCreateProgramWithSource(-34)”. My system specs are listed below. Anyone else get similar errors?
OSX El Capitan
Processor: 2 x 2.66 GHz 6core intel xeon
Memory: 64 GB
Graphics: NVIDIA Quadro 4000
Houdini: 16.0.671
OSX El Capitan
Processor: 2 x 2.66 GHz 6core intel xeon
Memory: 64 GB
Graphics: NVIDIA Quadro 4000
Houdini: 16.0.671
Houdini Lounge » My fix for the "No QT binding found" error in H16
- NFX
- 183 posts
- Offline
So I just ran into this problem while integrating Houdini into our pipeline. It looks like Houdini doesn't like the system's installed python. If I get rid of the PYTHONPATH env. variable it works like a charm. Unfortunately I need that variable set for the custom scripts that the pipeline runs on. Any tips for working around this?
Technical Discussion » Problem to load hou module in the standart OSX Python
- NFX
- 183 posts
- Offline
marsupial
I don't think it's possible using DYLD_LIBRARY_PATH as theres a few competing library versions between Houdini and the OS (at least for 10.10). I've been able to get it working by changing where _hou.so looks for it's libraries. But this might only be a good solution locally.installNameChanges()
{
# installNameChanges <file> <replace> <with>
otool -L "$1" | while read line; do
echo "$line" | grep -q "$2"
if [ $? -eq 0 ]; then
lib=$(echo ${line} | awk -F''"$2"'| ' '{print $2}')
if [ -n "$4" ]; then
echo install_name_tool -change "$2$lib" "$3/$lib" "$1"
else
sudo install_name_tool -change "$2$lib" "$3/$lib" "$1"
fi
fi
done
}
installNameChanges "${HFS}/houdini/python2.6libs/_hou.so" @rpath/ @loader_path/../../../Libraries/
installNameChanges "${HFS}/houdini/python2.7libs/_hou.so" @rpath/ @loader_path/../../../Libraries/
I have been running into this issue while trying to integrate houdini into our mac based pipeline. This shell script solution almost works. I ran a test where it only would echo back the intended changes and it looked perfect, however when I reenabled the sudo, I got back this error:
changing install names or rpaths can't be redone for: /Library/Frameworks/Houdini.framework/Versions/15.0.416/Resources/houdini/python2.7libs/_hou.so (for architecture x86_64) because larger updated load commands do not fit (the program must be relinked, and you may need to use -headerpad or -headerpad_max_install_names)
As far as I can make out, -headerpad_max_install_names is a linker flag that has to be enabled on compile in order to allow install_name_tool to replace paths with longer ones. If this is the case it seems like something that Sidefx would have to fix since we can't recompile the binaries. Hopefully someone can tell me I am wrong though?
Anyways, I would love to hear if anyone has figured a way to get the hou module to import from the terminal. Has Sidefx announced any plans to fix this?
-
- Quick Links