daz3d animation to 3delight standalone

phomlishphomlish Posts: 6
edited February 2015 in Daz Studio Discussion

I have tried a few things and browsed the forums, but I can't get it to work and can't verify through the forums that it should be able to work. Is it possible to create a rib of a daz3d animation and send it over to 3delight standalone?

Thanks.

Post edited by Richard Haseltine on

Comments

  • phomlishphomlish Posts: 6
    edited December 1969

    I had to kill this fly with a sledgehammer.

    I have an old server laying around with 8 cores and 6 Gig RAM but no OS. I bought a copy of W7 and installed it on there. I then installed DAZ3D on there. Now I can edit on my mac and save the scene with animations, then follow my workflow notes to load the scenes up over on the w7 machine to render. Only really bad part- the old machine uses about $30 a month in electricity. Seriously the lights dim in the house when I boot it up. Oh well.

    Minor bad part- windows and mac treat the content folders differently. I share the content over an nfs/samba share on linux to the windows and mac. But windows and mac have different ways of dealing with case, and when one platform can find the file often the other can't due to a case difference.

    I've already cleaned the blood off my sledgehammer as DAZ3D seems to require this tool quite often.

    Paul

  • MistaraMistara Posts: 38,675
    edited December 1969

    i installed the standalone, but don't know how to use it. can you send straight from DS or needs a command line to launch?

  • phomlishphomlish Posts: 6
    edited December 1969

    I started here but tweaked because I used linux for the standalone. To summarize the thread, I think everyone agrees to render to a rib file and have 3delight render that. But rendering to a rib file doesn't seem to work for an animation- only one frame is in the rib.

    I never got anywhere as I gave up when i saw that the rib created by DAZ3D only contains one frame. I guess I should have tested to see if it would even render one frame but didn't.

  • millighostmillighost Posts: 261
    edited February 2015

    phomlish said:
    I started here but tweaked because I used linux for the standalone. To summarize the thread, I think everyone agrees to render to a rib file and have 3delight render that. But rendering to a rib file doesn't seem to work for an animation- only one frame is in the rib.

    I never got anywhere as I gave up when i saw that the rib created by DAZ3D only contains one frame. I guess I should have tested to see if it would even render one frame but didn't.


    If you use DS in linux (with wine, like i do), there is a solution; when exporting an animation to a rib file, each frame is written, but each frame is output to the same file, so earlier frames are overwritten. Only the last frame remains. So all i do is letting DS write the rib to a named pipe instead of a file, which effectively results in a large rib file with all the frames concatenated. I use gawk to split that large file into segments and also let each segment render to a different image file (the default is only "render.tiff"):

    
    rm -f test.rib
    mkfifo test.rib
    sleep 1000 > test.rib &
    echo sleep: $!
    gawk '/##RenderMan RIB-Structure 1.0/{++f; fs=sprintf ("d",f);} $2=="\"render.tiff\"" { $2="\"render-" fs ".tiff\""}
     {print > "output-" fs ".rib" }' test.rib &
    

    The above code is for rendering to a file named test.rib. The sleep is necessary to hold the pipe open till the last frame. Kill it after DS is finished exporting the animation. It could work on Mac, too (i did not try it), i have no idea if a similar thing exists in Windows.
    Post edited by Chohole on
  • phomlishphomlish Posts: 6
    edited December 1969

    Thanks Millighost. I didn't get DAZ3D to run in Ubuntu Linux with Wine. I did try, it did install, but then it threw an error when I tried to run it. I checked the wine apps list here and saw someone had success with OpenSuse and had prepared to install that to the server before I went down the W7 route. I am rendering with the w7 machine to an NFS mount so maybe I can run your script on the linux server that owns the mount.

    A question if you please on the script. I've been using linux for 20+ years and thats a duzzy you crafted there. I admit my awk isn't as developed as yours. But even the
    sleep 1000 > test.rib &
    has me stumped. sleep 1000 does not output anything, so when you redirect it to test.rib it seems to want to clear it.
    then the
    echo sleep: $!
    is foreign to me. Probably the colon after sleep. Is that what somehow makes the script loop?
    Like I said, the gawk is not my strong suit, but it seems to want to search the file for the header and then write it out to a new filename when it finds one.

    So my question is how does this loop. Seems like you bring up the script before you start the render.
    Any clarification you could provide would be sincerely appreciated.

    Paul

  • millighostmillighost Posts: 261
    edited December 1969

    phomlish said:
    Thanks Millighost. I didn't get DAZ3D to run in Ubuntu Linux with Wine. I did try, it did install, but then it threw an error when I tried to run it. I checked the wine apps list here and saw someone had success with OpenSuse and had prepared to install that to the server before I went down the W7 route. I am rendering with the w7 machine to an NFS mount so maybe I can run your script on the linux server that owns the mount.

    Getting wine to run can require a bit of try and error. Usually only every other release works (currently i use 1.7.33). With some versions of DS, it is required to use the "official" microsoft visual c libs, not the ones that are distributed with DS. Search for "msvc redistributable" and install the 2008 and 2010 versions using the installers (they are called vcredist_x86-msvc2008sp1.exe and vcredist_x86-msvc2010.exe respectively). Alas, only 32 bit works, i never got the 64 bit version to work.


    A question if you please on the script. I've been using linux for 20+ years and thats a duzzy you crafted there. I admit my awk isn't as developed as yours. But even the
    sleep 1000 > test.rib &
    has me stumped. sleep 1000 does not output anything, so when you redirect it to test.rib it seems to want to clear it.

    You are right, it does not output anything for 17 minutes. Its purpose is to keep the file handle open. With pipes, the reading end (the gawk) will see an end-of-file when there is nobody writing to the other end. The sleep makes sure that this does not happen.

    then the
    echo sleep: $!
    is foreign to me. Probably the colon after sleep. Is that what somehow makes the script loop?


    This line simply outputs "sleep: 1234", with 1234 being the process id of the sleep. Since the sleep does not terminate before 17 minutes have passed, the gawk will not see an end-of-file for that duration. So it will sit there, waiting for input for 17 minutes. The DS export is likely finished long before that. So to shorten that time, the gawk must get an end-of-file. Terminating the sleep (with kill 1234) closes the writing end of the pipe, generates and end-of-file and lets the gawk write its internal buffers.

    Like I said, the gawk is not my strong suit, but it seems to want to search the file for the header and then write it out to a new filename when it finds one. So my question is how does this loop. Seems like you bring up the script before you start the render.
    Any clarification you could provide would be sincerely appreciated. Paul

    The "##RenderMan RIB-Structure 1.0" happens to be the first line of every DS exported rib file. The gawk searches for this line, increases a counter, which is then used to construct the filename, which the other lines are written to. There is no explicit loop, because gawk loops automatically (the whole gawk program is applied to every line it reads).
Sign In or Register to comment.