PDA

View Full Version : Setting Segment Memory



smcclurg
02-26-2003, 05:51 AM
I'm new to LightWave and having memory management problems on my first high resolution rendering.

Does anyone know the largest segment memory file size I can set for an XP machine with 512 MB of RAM?

Can you manually set the swap file size in LightWave? Where? how?

I'm using Saslite on an object that would span multiple sections if I rendered it in pieces using "render limited region." Does does anyone know if I'll have problems with pieces lining up properly?

To anyone willing to read one, here's the whole story:

I'm trying to render a single frame at at least 3000 x 4500 on a Windows XP machine with 512 MB or RAM. I had the segment memory initially set to 8 MB (the default) and tried to render at 4000 x 6000. The render errored out when Saslite wanted more like about 1.5 GB or segment memory. I haen't figured out how to set the swapfile size in Lightwave and have been trying to set a larger segment memrofy file to something that will work.

I've tried re-rendering with segment files set to 450 MB and 384 MB, but Windows keeps telling me it's run out of virtual memory and will limit certain programs access to memory. Coincidentally, after rendernig for 6 hours, the image hadn't completed 1 pass of 1 of the two segments. That may be right, but I'm afraid Windows is shutting off LightWave's access to memory.

Most recently, I've tried to move Window's virtual memory file to a separate drive, and don't know if that's working yet, but the new drive it's set to (not C:\) is a small drive. There's only about 1 GB of free space on it. Since I don't know how to change it, LightWave should still be using the C:\ drive as a swap file (I think) and it has close to 20 GB free.

Red_Oddity
02-26-2003, 07:50 AM
Try working with limited regions:

Here's a LScript i wrote some time a got to do a 16000x10000 render

When applying this Lscript i suggest you change the values to accomodate your PCs memory:

So with a 3000 x 4500 render i suggest slices 3000x500 pixels or 3000x 250 pixels (RegionPosition(0 ,slice * 500 ,3000 ,500 ), or RegionPosition(0 ,slice * 250 ,16000 ,250 ) )

To use it, set a Render Output (i suggest LWTGA32) and a directory where it should go.
Also turn off 'Show rendering in progress' and 'Render Display'.
Then simply turn on Limited Region and then run this script, it ask you a slice number, start with 0, it will jump to frame 0 (it also sets your render range in the render from frame 0 to 0), now simply press F10 and it renders the first slice away to HD.
For the next slice, simply run the script again and now type 1, and do the above again (and so on and so on for all incremental slices)

I hope this works for you (it did for me with the 16000x10000 print), and i hope it is somewhat clear..also i hope someone could figure out a way to just make this script run itself from first frame to last, so it can be rendered in one go without having to wait for every slice to be done with rendering)

here's the script:

Red_Oddity
02-26-2003, 07:51 AM
@warnings
@name Limited Region slicer

// by S.Neve
// Change values at the RegionPosition to get smaller slices
generic

{
reqbegin("slicer");
slice = 0;
c1 = ctlinteger("Slice NR",slice);

return if !reqpost();

slice = getvalue(c1);

reqend();

RegionPosition(0 ,slice * 1000 ,16000 ,1000 );
GoToFrame(slice);
FirstFrame(slice);
LastFrame(slice);
}

smcclurg
02-27-2003, 09:05 PM
Thanks!

I haven't had a chance to test this yet, but I was able to render the scene at a slightly lower resolution, which turned out to be all I needed for this project.

I plan to rerender the scene in a few days at a higher res in order to test your script.

Thanks again!