Digital Art Zone

 
     
RIB, workflow, queuing renders
Posted: 21 September 2012 07:55 AM   [ Ignore ]
New Member
Total Posts:  6
Joined  2005-06-19

Hi all,

I’m still using the basic workflow: pose, render, repeat…

But with complex scenes it is not that great because the “render” part takes a lot of time. I’ve been looking for ways to create a render queue, I’ve seen some scripts that apparently do something close to what I’m looking for, I’ve tried to use RIB and use the 3delight standalone to render in background on 2 cores while I keep working on other scenes but…

1- Renderman encounters errors and the final picture looks horrible (missing textures mostly, they even happen when I export the textures to the RIB folder)
2- unless it is scripted, renderman only renders one picture at a time so its not really a queue that can be rendered while I sleep or when I’m out of the house.

I’m thinking of building a rendering tower, just for the purpose of the render queue but its pointless if I can’t create the said queue. the ideal workflow would be: pose, save or export to a folder (repeat) ... rendering is in the queue. (first in first out)

could be done as a process running in background on the same machine or on a network shared folder on the rendering tower. As an alternative, the rendering of all scenes could be done in a “delayed” fashion: Pose, save or export, repeat… (when all scenes are done for the day, launch the rendering of all scenes in a given folder)

what are your suggestions on this?

Profile
 
 
Posted: 21 September 2012 10:06 AM   [ Ignore ]   [ # 1 ]
Addict
Avatar
RankRankRankRank
Total Posts:  4545
Joined  2007-09-13

One of the problems with exporting to RIB is shader mismatch…the shaders you are using will, more than likely, need to be recompiled for the stand alone version you are using.  Also, you’ve found that textures don’t automatically end up where they are expected to be. 

As to shaders, some of the included ones don’t recompile…I think mainly the Uber ones (including lights).  The DAZ ones should.  In the latest versions of 3Delight you can recompile a shader without the source code, but that is an on/off feature…it can be used to prevent a recompile.  The shaders can be recompiled on the fly or done before hand…but in either case you need to set up the standalone to find/point to the folders.

If I recall, the Render to RIB generates two RIB files…one in the folder with the textures and one outside of it.  You need to render the one inside the folder with the textures and what not (the localize and collect should gather the shaders, shadowmaps and everything else…so if they can be converted on the fly, it should work). 

As to batch or que rendering…yeah, the stand alone can’t do it without a script.  I think that’s a feature of the paid license version, though…

I just did a quick test…the rib inside the folder generated a rather acceptable image, so that’s the key thing…make sure that is the one you are rendering.

 Signature 

1432 old posts

My ShareCG gallery.

Just because something costs a lot, doesn’t mean it’s the best…

It just means it’s expensive.

Profile
 
 
Posted: 21 September 2012 04:48 PM   [ Ignore ]   [ # 2 ]
New Member
Total Posts:  6
Joined  2005-06-19

Thanks MJ, I did not realize there was another RIB file in the folder. So I guess with scripting I could start my “many” renders at night and collect the results in the morning. If it works, it would be an improvement over what I do now. but I’m not done researching how to build a queue, maybe with LUX or something else if I have to.

Profile
 
 
Posted: 21 September 2012 05:59 PM   [ Ignore ]   [ # 3 ]
Addict
Avatar
RankRankRankRank
Total Posts:  4545
Joined  2007-09-13

It seems that now even the Uber shaders are working correctly…

I rendered this with the stand alone, the only lighting is UberEnvironment and the skin has UberSurface applied to it.

Image Attachments
render2c.jpg
 Signature 

1432 old posts

My ShareCG gallery.

Just because something costs a lot, doesn’t mean it’s the best…

It just means it’s expensive.

Profile
 
 
Posted: 21 September 2012 06:41 PM   [ Ignore ]   [ # 4 ]
New Member
Total Posts:  6
Joined  2005-06-19

My tests also point that way but I tried the command line

% renderdl D:\RIB\file1_collected\file1.rib D:\RIB\file2_collected\file2.rib D:\RIB\file3_collected\file3.rib

and it stopped after the first render (which was bugged on almost every texture) go figure… all my previous tests had nice textures and Environment lighting worked fine.

Profile
 
 
Posted: 21 September 2012 07:25 PM   [ Ignore ]   [ # 5 ]
Addict
Avatar
RankRankRankRank
Total Posts:  4545
Joined  2007-09-13

Luxrender does great with a que or network rendering…but may take a bit of set up to get right.

I haven’t played around with the stand alone 3delight in several months, so I was quite surprised when I ran the first render.  Another thing I noticed and it may be something related to the fact I run Studio on a Linux system under WINE, but rendering in the stand alone (Linux native version) is much faster than in DS, even counting the export time.  Rendering a UE scene runs a couple of hours, minimum…but in the stand alone, the same scene takes about half an hour or less.  Some of them, if I am using Gen4 characters and can dump them to DS3 (no real simple way of doing a Genesis character…) and then exporting to Luxrender, using SPPM rendering I can get great results in between 15 and 45 mins…but I usually let them run an hour.

 Signature 

1432 old posts

My ShareCG gallery.

Just because something costs a lot, doesn’t mean it’s the best…

It just means it’s expensive.

Profile
 
 
Posted: 23 February 2013 01:42 PM   [ Ignore ]   [ # 6 ]
Member
Avatar
Rank
Total Posts:  39
Joined  2009-11-20
chbautist - 21 September 2012 06:41 PM

My tests also point that way but I tried the command line

% renderdl D:\RIB\file1_collected\file1.rib D:\RIB\file2_collected\file2.rib D:\RIB\file3_collected\file3.rib

and it stopped after the first render (which was bugged on almost every texture) go figure… all my previous tests had nice textures and Environment lighting worked fine.

Just a though, though I’ve only started to Google to see if it will actually work.

Try using a (old) Dos batch file.  These normally waited for each process to exit before continuing on. You’d still have to list each file you wanted to render but you would be able to walk away from it once it was written.
Alternately, perhaps, a VBScript file. It could even be written in such a way as to pull a list of the files in a single Queue Directory and render each in turn.

My experience with such things expires around WindowsNT and 98 though, and I’ve only this week started to learn about the standalone render engine.  Maybe someone with more hair on their head than in their ears can help.  I’ll keep poking around the web to see if this might work, but I’ll probably get frustrated and give up before I get too far. red face

Edit:  Found the 3Delight reference.  Issue is complicated by the fact the render is always saved to render.tiff.  There seems to be no command line flag to change this.

Edit again:  Here’s a quick batch file that worked for me for a few quick test renders of a simple prop.  It has several limitations.  First off, all of your collected renders have to be in one folder, I’ll call it the Base Folder.  Second, you have to retype almost all of the batch file each time, changing the names of the files and folders. (Someone with VBScript experience could work around this.  Hint, Hint tongue rolleye )  Third, it has no error handling ability.  If something goes wrong, it will try to soldier on, but might fail in unexpected ways.

The file is basically a repetition of three lines/instructions.
1) Go down into the _collected folder with the .rib file
2) Run renderdl
3) Come back up the Base Folder. This last one is something that sometimes gets missed wink

I included an Echo to give start and stop times for the whole thing, though you could repeat it for each render.  Rendeders are saved as render.tiff in each seperate _collected folder

Heres my sample:

#Put in a folder containing your _collected rib folders
#Format is:
#     cd.\<<FOLDERNAME>>
#     renderdl <<FILENAME>>
#     cd..

Echo Time Start: %Time%
cd .\test001_collected
renderdl test001
.rib
cd 
..

cd .\test002_collected
renderdl test002
.rib
cd 
..
Echo 
Time End: %Time

For old DOS coders only:  I know .\ is unnecessary, but it’s a habit.

I started to include instructions on making and running batch files, but could figure out how to say (clearly) what’s involved.  Sorry.

Profile
 
 
Posted: 24 February 2013 03:29 AM   [ Ignore ]   [ # 7 ]
Power Member
Avatar
RankRankRank
Total Posts:  1348
Joined  2011-11-16

Kendall Sears, here on the boards has a lot of experience with the Stand-alone 3Dlight render engine and helped me get it working. The biggest issue I had been having—like yourself—is textures not showing up when rendering. The problem comes down to where the render engine is looking for the textures, which is encoded in the RIB file. It’s typically telling the render engine to look in your (For Mac) Users>“User name”>Library>Application Support>Daz3D>studio>Temp folder. To fix it, you have to open the RIB file in a text editing program, and do a find and replace to change where the render engine should be looking for the textures from said temp folder to the location of the actual RIB collected folder you created. You’ll have to do that with every RIB file.

Profile
 
 
Posted: 28 February 2013 12:18 PM   [ Ignore ]   [ # 8 ]
Member
Avatar
Rank
Total Posts:  39
Joined  2009-11-20

Just an update for anyone reading this:  I figured out a Windows VBScript that does batch rendering using the 3Delight engine.  The biggest shortcoming is that it has absolutely no error handling for 3Delight, or even for VBScript.
I welcome comments and suggestions.  I’m not a coder by profession, so please excuse the cludgy nature.

'Batch 3Delight rendering using VBScript.
'
Copyright 2013 Shawn Donaldson
'Daz Forums: http://www.daz3d.com/forums/member/1358351/

'
What it does:
' Runs the 3Delight standalone engine against all _collected rib files in the folder the
script resides.

'Shortcomings:
Has no error handling.

'Requires VBScript and 3Delight standalone engine.

'
For more info see:
' http://www.daz3d.com/forums/viewthread/8205/
http://www.daz3d.com/forums/viewthread/17016/

'To Use :
Place this file in the folder with all of your COLLECTED rib folders
' Make sure the file has the .vbs extension.  If you use Notepad you can change the
'  
extension during save from .txt to .vbs.  Otherwise you may have to go 
'  through the Control Panel to show extensions if you don't have Windows set
'  to do so already.
Run the script by double clicking on it.




'Use at your own risk.  File WILL overwrite a .tiff file in the folder it resides in for each
'
rib file it renders.

strCmdRoot "renderdl "

Const """"
Dim sCurPathobjShellfsFileSysfFolderfcFolderCollfSubFolderfRender
Dim strFPath
strCmdstrFolderNameintLocintReturnblReturnintCountstrRenderName

sCurPath 
CreateObject("Scripting.FileSystemObject").GetAbsolutePathName(".")

Set objShell WScript.CreateObject("WScript.Shell")
Set fsFileSys CreateObject("Scripting.FileSystemObject")

Set fFolder fsFileSys.GetFolder(sCurPath )
Set fcFolderColl fFolder.SubFolders

For Each fSubFolder in fcFolderColl
 strFolderName 
fSubFolder.name
 intLoc 
InStr(strFolderName"_collected")
 if 
intLoc 0 then
  strFPath 
fSubFolder.Path
  strFileName 
Left(strFolderNameintLoc-1)
  
strCmd strCmdRoot strFPath "\" strFileName ".rib" Q
  
  intReturn 
objShell.Run(strCmd4TRUE)
  
blReturn fsFileSys.CopyFile ("render.tiff"strFileName ".tiff")
  
 End 
if
Next 
Profile