[Sidefx-houdini-list] non-hardened environment variables in IFDs?

Georg Duemlein rdg at preset.de
Thu Oct 21 17:19:30 EDT 2010


Mantra IFD filter seemt run after the geometry prep phase. Eg you can't
change geometry shaders in a Python filter.
Might be too late to change your paths ...

On Thu, 21 Oct 2010 14:15:59 -0700, Robert Kelly <isstuff at gmail.com>
wrote:
> Thanks Georg
> 
> if Houdini's IFD python filtering doesn't do it I will give that a crack
> 
>        /@
>         \ \
>    ___> \
>  (__O)    \
> (____@)  \
> (____@)   \
>  (__o)_      \
>             \    \
> 
> 
> Rob.
> 
> On 21 October 2010 14:07, Georg Duemlein <rdg at preset.de> wrote:
>> Wow! Look's like email art.
>>
>> However: If this doesn't work for you:
>> why not pipe the IFD through a python \/perl script and munge the
paths?
>>
>> foo.ifd > myMunger.py > mantra -j 0 -whateva
>>
>> Depending on the size of your IFDs perl might be a valid option. Last
>> time
>> I checked it still was noticable faster in string replacement than a
"for
>> line in readlines".
>> awk might be an even more hardcore option here.
>>
>> On Thu, 21 Oct 2010 12:34:53 -0700, Robert Kelly
>> <meshsmooth at optusnet.com.au> wrote:
>>> So with the thread alive again It looks like they didn't find an
>>> answer. Has anyone done path changing with Python Filtering of IFD's
>>>
>>>
>>>>>>>>>>>>>>>>>>>>>>>>>> Georg Duemlein
>>>
>>> I've got a bookmark for this thread - it's coming up regularly :)
>>>
>>>>>>>>>>>>>>>>>>>>>>>>>> Peter Bowmar
>>>
>>> I believe the paths are expanded, however I recall some voodoo to hack
>>> IFD files to do what you describe, maybe the Python filtering will now
>>> work :)
>>>
>>>>>>>>>>>>>>>>>>>>>>>>>> re stating My question
>>>          Should one IFD be able to be rendered cross platform? windows
>>> /
>>>          mac
>>>
>>> Can i create an IFD on a windows box that will be able to render on
>>> both windows and mac using environment variable like $JOB inside the
>>> IFD with $JOB being set one way for windows and another for the mac
>>> boxes then the IFD?
>>>
>>> Or are the paths always collapsed into one path when the IFD is made
>>> and it will only work on one platform so deal with it?
>>>
>>> I expect Dealing with it  may be Python filtering the IFD's to replace
>>> all "X:/Projects' with "/Volumes/Projects"..... is that the answer?
>>>
>>>
>>>>>>>>>>>>>old thread brought back from the dead
>>>
>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>  Email 4
>>>
>>> On 11 July 2007 12:09, ken <ken at corefa.com> wrote:
>>>> oh yeah, ick...forgot about all that.
>>>>
>>>> We use renderman here and have adopted strong usage of RiFilters to
>> help
>>>> parse and filter our rib files. We proposed the same thing for Mantra
>> and
>>>> they have done some work exposing standard python filtering for IFD
in
>>>> H9.
>>>>
>>>> Only think I could think of is to store your env vars and create a
>> lookup
>>>> file (mapping the expansion of the variable in an array) so you can
>>>> quickly
>>>> post process your IFDs (which is probably what you are doing
already).
>>>> I can't think of a "nice" way to do this across the board in a hip
>> file.
>>>> You
>>>> can't clobber them all with a mapping file via "opchange" since that
>>>> might
>>>> break any cooking you have going during the generation of the IFD.
>>>>
>>>> -k
>>>>
>>>>
>>>>
>>>> Darran Edmundson wrote:
>>>
>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>email 3
>>>
>>>>> Hi Ken,
>>>>>
>>>>> The issue with a pre-render script is that there's no easy way of
>>>>> determining where environment variables are hiding.  ROPs for sure,
>>>>> texture
>>>>> maps in shaders yes, but also geometry render tabs for instanced
>>>>> geometry.
>>>>>  At least in the ifd everything is in one location ;-)  And the
>>>>> postrender
>>>>> script can get the expanded $HIP as an argument to search on.  I
>>>>> don't
>>>>> like
>>>>> having to do this though.  It would be really nice to have a number
>>>>> of
>>>>> environment variables in the IFD ($JOB_MAPDIR, $JOB_RENDERDIR,
etc.).
>>>>>
>>>>> Cheers,
>>>>> Darran.
>>>
>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>> email 2
>>>
>>> Can you protect $VARNAME with \$VARNAME... you could make a python
>>> script to put the backslash there on the preRenderScript field of the
>>> ROP.
>>>
>>> maybe?
>>> -k
>>>
>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>> email 1
>>>
>>> Is it possible for Houdini to *not* expand environment variables when
>>> writing to IFD?
>>>
>>> More generally, what options are there for dealing with relative paths
>>> when moving from one's local machine over to a render node?  For a
>>> given project, I tend to create a directory tree with one or more .hip
>>> files in the root folder.  Resources are then referenced as
>>> $HIP/shaders, $HIP/maps, etc.  In the ROP, I'll then prepend my output
>>> filenames with $HIP/render/diff, $HIP/render/spec, etc.  This works
>>> great on the local machine.  However, writing to .ifd, the $HIP (or
>>> any other environment variable) gets expanded.  My hack is to run a
>>> post-render script that does a search/replace of the hardened strings,
>>> converting them back to envvars.  Of course this only works with ascii
>>> IFD.
>>>
>>> I'd be very interested in hearing how others deal with path issues ...
>>>
>>> Cheers,
>>> Darran.
>>> _______________________________________________
>>> Sidefx-houdini-list mailing list
>>> Sidefx-houdini-list at sidefx.com
>>> https://lists.sidefx.com:443/mailman/listinfo/sidefx-houdini-list
>>
>> --
>> Georg Duemlein
>> +1 604 726 4230
>> 701-1833 Frances Street
>> Vancouver, BC
>> V5L 1Z8
>> _______________________________________________
>> Sidefx-houdini-list mailing list
>> Sidefx-houdini-list at sidefx.com
>> https://lists.sidefx.com:443/mailman/listinfo/sidefx-houdini-list
>>
> _______________________________________________
> Sidefx-houdini-list mailing list
> Sidefx-houdini-list at sidefx.com
> https://lists.sidefx.com:443/mailman/listinfo/sidefx-houdini-list

-- 
Georg Duemlein
+1 604 726 4230
701-1833 Frances Street
Vancouver, BC
V5L 1Z8



More information about the Sidefx-houdini-list mailing list