string stage = "op:/stage/sopcreate1"; string test[] = usd_primvar(stage, s@path, "test"); string string_val = test[0];
Found 156 posts.
Search results Show results as topic list.
Solaris and Karma » Import string primvars into SOPs
- jparker
- 296 posts
- Online
I still haven't figured out why the LOP import doesn't work, but can access the primvar value with a VEX workaround afterwards in a primitivewrangle:
Edited by jparker - Nov. 1, 2020 15:58:01
Solaris and Karma » Import string primvars into SOPs
- jparker
- 296 posts
- Online
Hopefully I'm missing something simple.
I'd like to create a bunch of points in a SOP network, tag them with string attributes and then import them into LOPs as transforms. I'd then like to use that string data later in a SOP Modify node to drive updated transforms. In my test I'm able to create the attributes that then come into USD as primvars, but when the USD is brought into a SOP network, the string attributes exist but are empty. Any float attributes seem to import correctly though.
Any idea why the string attrs don't work? See attached HIP.
Cheers,
Jon
I'd like to create a bunch of points in a SOP network, tag them with string attributes and then import them into LOPs as transforms. I'd then like to use that string data later in a SOP Modify node to drive updated transforms. In my test I'm able to create the attributes that then come into USD as primvars, but when the USD is brought into a SOP network, the string attributes exist but are empty. Any float attributes seem to import correctly though.
Any idea why the string attrs don't work? See attached HIP.
Cheers,
Jon
Solaris and Karma » USD xforms into CHOPs
- jparker
- 296 posts
- Online
Thanks! lopimport… I guess that's been there since 18 and I never noticed it…
But now I'm tempted to wrap the USD VEX functions into “lopimport” CHOP OTL nodes. Worth a try. Thanks Tomas.
But now I'm tempted to wrap the USD VEX functions into “lopimport” CHOP OTL nodes. Worth a try. Thanks Tomas.
Solaris and Karma » USD xforms into CHOPs
- jparker
- 296 posts
- Online
Hi,
What's a good way of bringing USD transforms into a CHOP network? Off the top of my head, pulling USD into SOPs and then extracting the xforms from there. Is that the best way?
Cheers,
Jon
What's a good way of bringing USD transforms into a CHOP network? Off the top of my head, pulling USD into SOPs and then extracting the xforms from there. Is that the best way?
Cheers,
Jon
Edited by jparker - Oct. 29, 2020 17:26:56
Technical Discussion » Houdini 18+ Linux QT Pyside 2 issues
- jparker
- 296 posts
- Online
I've seen some issues with both Solaris/other UIs and custom QT interfaces in a high DPI environment where the icons and buttons all have very strange scaling. Has anyone else noticed this and found a fix? See attached screen shot. The panel on the upper right is a custom Python panel.
Cheers,
Jon
Cheers,
Jon
Solaris and Karma » Controlling when/how updates/changes are propagated forward?
- jparker
- 296 posts
- Online
Having almost no Solaris or USD experience yet, take the following with a grain of salt…
Personally I would prefer Tomas's approach as it's more deterministic, hence predictable. It's the same reason why one doesn't lightly change software versions mid-production, or only in a way that doesn't disturb existing renders.
Maybe one could store, via some method, the version that “latest” points to when rendering / saving a work file and a toggle when submitting renders could swap the “latest” string in a resolver path to that version? That would involve application specific scripting I suppose, unless the resolver itself could somehow do it.
-Jon
Personally I would prefer Tomas's approach as it's more deterministic, hence predictable. It's the same reason why one doesn't lightly change software versions mid-production, or only in a way that doesn't disturb existing renders.
Maybe one could store, via some method, the version that “latest” points to when rendering / saving a work file and a toggle when submitting renders could swap the “latest” string in a resolver path to that version? That would involve application specific scripting I suppose, unless the resolver itself could somehow do it.
-Jon
Solaris and Karma » Houdini Solaris Roadmap
- jparker
- 296 posts
- Online
Technical Discussion » Texture from attribute
- jparker
- 296 posts
- Online
The material SOP can also create material overrides for shader parameters if your attribute has a local variable associated with it.
Edited by jparker - Feb. 3, 2020 18:29:45
Houdini Lounge » Temerity Pipeline (PDG precursor)
- jparker
- 296 posts
- Online
This was posted to another list recently…
If anyone happened to be in a studio in the early 00s and heard of the Temerity pipeline, parts of PDG might feel a little familiar (minus the version control). It's been open sourced:
https://github.com/JimCallahan/Pipeline [github.com]
Manual is here:
https://github.com/JimCallahan/Pipeline/blob/master/docs/manuals/PipelineManual.pdf [github.com]
If anyone happened to be in a studio in the early 00s and heard of the Temerity pipeline, parts of PDG might feel a little familiar (minus the version control). It's been open sourced:
https://github.com/JimCallahan/Pipeline [github.com]
Manual is here:
https://github.com/JimCallahan/Pipeline/blob/master/docs/manuals/PipelineManual.pdf [github.com]
Houdini Lounge » Solaris and USD advantages for one-person teams?
- jparker
- 296 posts
- Online
USD looks amazing on paper… and then I think about a relatively junior user being exposed to all of the possible ways to organize things with it, and I get scared.
That said, if you're disciplined and experienced enough, I think there's lots of potential to automate a lot of things that used to require lots of clicking and manual setup. Take lighting multiple shots, which was really only feasible before with multiple HIP files, and sharing setups was lots of manual OTL building. Now you can set up a master lighting rig and branch to different LOP trees for different shots. That would seem to me especially useful to a single user.
Cheers,
Jon
That said, if you're disciplined and experienced enough, I think there's lots of potential to automate a lot of things that used to require lots of clicking and manual setup. Take lighting multiple shots, which was really only feasible before with multiple HIP files, and sharing setups was lots of manual OTL building. Now you can set up a master lighting rig and branch to different LOP trees for different shots. That would seem to me especially useful to a single user.
Cheers,
Jon
Houdini Lounge » Importing orbital satellite data into Houdini
- jparker
- 296 posts
- Online
Two ways for us…
We currently use the Python Skyfield package to translate TLE (Two Line Element) sets. Accurate, fine for just one satellite… but if you want to visualize trails, or many satellites, it's really slow.
I'm in the process of porting over SGP4 C code to VEX, but some calculations in it are meant to be in double precision… the time functions are useless without that… will either find a workaround, but since the Python method works, will wait for some day when we have 64 bit VEX in SOPs.
https://rhodesmill.org/skyfield/ [rhodesmill.org]
https://www.danrw.com/sgp4/ [www.danrw.com]
We currently use the Python Skyfield package to translate TLE (Two Line Element) sets. Accurate, fine for just one satellite… but if you want to visualize trails, or many satellites, it's really slow.
I'm in the process of porting over SGP4 C code to VEX, but some calculations in it are meant to be in double precision… the time functions are useless without that… will either find a workaround, but since the Python method works, will wait for some day when we have 64 bit VEX in SOPs.
https://rhodesmill.org/skyfield/ [rhodesmill.org]
https://www.danrw.com/sgp4/ [www.danrw.com]
Technical Discussion » How deep is your HOUDINI_PATH?
- jparker
- 296 posts
- Online
Ours is 10 unique paths, mostly pointing to network locations, and while it might slow things down a little, I don't notice it much.
We have a few in-house tool collections that each get their own HOUDINI_PATH entry. For example, one dealing with astronomical calculations, another with pipeline tools, another for planetarium dome related stuff, etc… Pixar very likely has more than we do, though.
We have a few in-house tool collections that each get their own HOUDINI_PATH entry. For example, one dealing with astronomical calculations, another with pipeline tools, another for planetarium dome related stuff, etc… Pixar very likely has more than we do, though.
Technical Discussion » Is fromNDC supposed to work in COPS?
- jparker
- 296 posts
- Online
It's more tedious, but you can make your own perspective projection matrix with the “perspective()” VEX function.
Technical Discussion » Configuring PATHs for installed Python packages
- jparker
- 296 posts
- Online
Conda is all about managing custom Python environments… what I do is first create a new conda environment with a Python version that matches the version Houdini is using. Otherwise I believe conda defaults to Python 3, which doesn't work in Houdini.
Then activate that environment and install yt within there:
Then source Houdini as usual and run. You should be able to import within Houdini after that.
conda create -n 'yt-conda' python=2.7.14
Then activate that environment and install yt within there:
source activate yt-conda
conda install -c conda-forge yt
Then source Houdini as usual and run. You should be able to import within Houdini after that.
Technical Discussion » More Than One Return Statement in Vex User Defined Function
- jparker
- 296 posts
- Online
Technical Discussion » More Than One Return Statement in Vex User Defined Function
- jparker
- 296 posts
- Online
BTW, the help on functions has this handy info on parameter modification:
[www.sidefx.com]
As in RenderMan Shading Language, parameters to user functions are always passed by reference, so modifications in a user function affect the variable the function was called with. You can force a shader parameter to be read-only by prefixing it with the const keyword. To ensure that the user function writes to an output parameter, prefix it with the export keyword.
[www.sidefx.com]
Technical Discussion » More Than One Return Statement in Vex User Defined Function
- jparker
- 296 posts
- Online
Hmm, then maybe you could define a struct with the data you need and have the function return that?
Technical Discussion » More Than One Return Statement in Vex User Defined Function
- jparker
- 296 posts
- Online
The way to explicitly do this in VEX is to add an “export” keyword ahead of the parameter:
then when calling the function:
float do_something(float input; export float output) { output = input * 2; return input * 3; }
then when calling the function:
float output1; float output2 = do_something(6., output1); float morestuff = output1 * output2;
Edited by jparker - July 28, 2018 11:40:12
Technical Discussion » HFS, HSITE, HOUDINI_USER_PREF_DIR & HOUDINI_PATH relationships
- jparker
- 296 posts
- Online
Thanks Edward…
My last problem was actually caused by a Python script inadvertently setting Houdini environment variables… second message holds, everything seems to work.
Setting HOUDINI_PATH is necessary when including 3rd party Houdini tools such as Arnold, no?
I have other collections of OTLs, VEX libs and scripts which are grouped together and are not needed for every project… I assume that adding or removing the root path to those tools to HOUDINI_PATH would be the best way to optionally include them.
-Jon
My last problem was actually caused by a Python script inadvertently setting Houdini environment variables… second message holds, everything seems to work.
Setting HOUDINI_PATH is necessary when including 3rd party Houdini tools such as Arnold, no?
I have other collections of OTLs, VEX libs and scripts which are grouped together and are not needed for every project… I assume that adding or removing the root path to those tools to HOUDINI_PATH would be the best way to optionally include them.
-Jon
Technical Discussion » HFS, HSITE, HOUDINI_USER_PREF_DIR & HOUDINI_PATH relationships
- jparker
- 296 posts
- Online
This is becoming more of a journal for myself, I guess.
It seems that this setup does NOT pick up any vex .h files in the standard HOUDINI_PATH…
It seems that this setup does NOT pick up any vex .h files in the standard HOUDINI_PATH…
-
- Quick Links