[Next: Command Line Parameters]
LightWave’s Config Files are plain text files that store
basic configuration information for LightWave and ScreamerNet. It’s
very important that you know where these config files are located
so that both LightWave and ScreamerNet can access them. It’s
also important to understand which ScreamerNet relevant settings
are stored in the config file, and how to use them.
LightWave only updates the config file when you quit the program.
Therefore anytime you make changes to any of the config settings
(other than menu or shortcut changes which are saved when you close
the respective editor) you must be sure to quit LightWave to ensure
that the changes are written to the config file itself. ScreamerNet
only reads the config file when first launched. Therefore, if you
wish to make changes to the config file for ScreamerNet and you
are using a single config file for both Lightwave and ScreamerNet,
you should perform the following steps:
- Quit ScreamerNet (lwsn).
- Launch LightWave Layout.
- Make changes to the desired config settings in LightWave Layout,
as discussed later.
- Quit LightWave Layout to write the changes out to the config
- Re-launch lwsn so that it reads the updated config file.
- Re-launch LightWave Layout if you’re using the built-in
network controller to manage ScreamerNet.
On Mac OS X the full default path of the config files is:
Whenever writing out paths (such as for lwsn command lines) on
Mac OS X always make sure to use the Unix separator "/"
(forward slash) not the DOS separator "\"
(back slash) and enclose it in quotes.
Replace username with your actual user name, and 11.0
with your version of LightWave. The default Config File folder is
Application Support folder in the
folder of the current user’s home folder. This would mean
that any config files kept in this default location would only apply
to this user as each user would have their own set of config files
on this Mac in each of their own home folders.
Up to Mac OS X 10.6 Snow Leopard the user’s
folder is visible in their home folder.
In Mac OS X Lion (10.7) or later the user’s
folder is hidden but you can still access it by using the Go->Go
to Folder... menu item in the Finder and typing
into the text field, which tells it to open the current
user’s Library folder.
The config files are named as follows:
Layout 11 : Basic Layout Settings
Modeler 11 : Basic Modeler Settings
Extensions 11 : User plugin paths
Extension Cache : Auto-scanned plugin paths
Hub 11 : Basic Hub Settings
Alternatively you may create a custom folder named
within the LightWave3D application folder and LightWave Layout,
Modeler and ScreamerNet lwsn will use that folder as the default
to create a new set of config files. This alternate default path
Where 11.0 is replaced with the verison of your LightWave
This can be useful if you have multiple builds of LightWave on
the same Mac. It’s also useful if you want multiple users
on the same Mac to all use a single set of config files because
they’d be stored in the common Applications folder.
You don’t need to specify any of these config files by name,
only the path to the folder where they are stored, and that’s
only if you decide to keep your config files in a location other
than one of these two default locations. If you leave the config
files in one of these default locations, you do not need to specify
their path for LightWave, Modeler, the Hub, or for ScreamerNet (lwsn).
If you use
DLI_SNUB-Launcher it will also automatically configure
itself to use a custom
Preferences folder in the
folder or the default config folder in the current user’s
Library/Application Support folder.
You may wish to use a different custom config folder for ScreamerNet
in some situations, such as:
- When running ScreamerNet over a network with a common set of
configs for all nodes.
- When running ScreamerNet over a network and using separate configs
for machines with varying resources, such as available RAM or
number of processors/cores.
Interactive ScreamerNet UB Launcher Update
DLI_SNUB-Launcher™ is an XCode Aqua GUI front end to interactively configure and launch LightWave
9, 10 & 11+ ScreamerNet UB lwsn instances for standalone, batch and network
your copy today!
Created by the author of Creating
a 3D Animated CGI Short
& Mastering LightWave
ScreamerNet (lwsn) for Mac OS X
Michael Scaramozzino - LightWave
3D Artist Profile.
To create a new set of config files simply follow the following
- Locate your LightWave installation, typically:
- Inside the
LightWave3D folder, create a new folder
Preferences or delete the existing folder if
it already exists in that location.
- Launch & Quit Layout so that Layout creates a new set of
- Launch & Quit Modeler so that Modeler creates a new config
- Quit the Hub so that it creates a new config file.
LightWave automatically scans plugins when launched. If you wish
to add custom third-party plugins then an easy way is to create
3rdParty folder inside the
folder inside the LightWave 3D folder and put any new 3rd party
plugins into that folder so that they will automatically load.
If you run into various problems with LightWave and suspect corrupted
config files, you can simply delete them and use the above steps
to recreate a fresh new set of config files in their current location.
The following settings are stored in the LightWave Layout config
file and are used by ScreamerNet (lwsn): Content
Directory, Command Directory, Default
Segment Memory, and Multithreading.
Here’ a sample Content Directory entry from the config file:
The Content Directory is simply a folder that contains all the
asset files needed for a project. It usually contains a full compliment
of special sub folders for the various types of files contained
in the project, such as
Images, Objects, Scenes, etc.
If you wish to use ScreamerNet (lwsn) successfully you must learn
to properly use LightWave’s Content Directory structure to
package your projects correctly.
A Content Directory in LightWave is very similar to a Web site’s
root directory. When used properly, all necessary file paths are
specified relative to that root folder, and all files are located
in sub folders of this root folder. This means the project’s
root folder is a self contained unit that may be moved as desired,
including to other machines, without breaking all the dependent
In LightWave, the Content Directory folder itself may be named
whatever you like, but there are some specific sub folders that
LightWave expects to find inside the Content Directory folder that
you should not rename or move. The most common of these special
sub folders are named
Objects. For a list of other possible sub folders look
at LightWave Layout’s Paths tab on the Preferences panel.
These sub folders are where you should store all your image, scene
and object files respectively, for a project. You may name your
files anything you wish (being sure to use proper file extensions),
as long as you place them in the proper sub folders
There are two approaches to effectively organize the Content Directory
. Using a separate Content Directory for each project, or using
a single Content Director for all your projects.
If your projects don’t typically share assets and you don’t
mind changing the Content Directory folder for each project you
work on, then you can keep each project in its own self-contained
Content Directory folder. In this case simply put all your project’s
objects in an
Objects folder, all your project’s
images in an
Images folder and all your project’s
scenes in a
Scenes folder within a project folder.
For an example of a simple separate Content Directory structure
for a single project, download the free DLI_SuperBalls
Benchmark project included in the DLI_SNUB-Launcher
NOTE: You can easily create such a self-contained Content Directory from any LightWave scene in Layout, even if it is not already properly structured and it accesses objects and images from far-flung folders. Simply open the scene in LightWave Layout, select File->Package Scene, select a destination folder and click the OK button. This will copy the scene and all associated asset files into a new properly structured Content Directory that may then be rendered with ScreamerNet lwsn.
If your projects typically share assets or changing the Content
Directory often would be inconvenient, such as when multiple users
or render nodes all point to a common shared Content Directory,
then you can organize a single Content Directory for all your projects
to share. This is also a useful if you intend to submit multiple projects for rendering over ScreamerNet lwsn because all the ScreamerNet lwsn nodes would need to be quit and relaunched anytime you wished to change the Content Directory. If all projects use the same Content Directory then you may leave ScreamerNet running and rendering while adding new scenes to render as needed, without having to keep stopping and restarting all the nodes for each project.
The trick to organizing your Content Directory in this
manner is to make separate folders for each project inside each
folders. Those project specific sub folders may be named anything
you like, but the enclosing folders at the top level of the Content
Directory folder must be named
Scenes, unless you explicitly changed them in LightWave’s
path preferences panel.
Here’s an example of a single Content Directory structure
that is shared by multiple projects:
The ContentDirectory entry is not actually written to the config
file until you Quit LightWave after specifically setting a Content
Directory or by allowing LightWave to automatically change the Content
Directory when loading a scene file. You may explicitly set a Content
Directory as follows.
- Launch LightWave Layout
- Select: Edit->Set Content Directory... &
Choose your desired Content Directory folder,
or open a scene file and click Yes
when asked if you’d like to change the Content Directory.
- Quit LightWave Layout, to actually save the changes to the config
Here is a sample Command Directory entry from the config file:
Believe it or not, LightWave really doesn’t do any “network”
rendering. Neither LightWave nor ScreamerNet lwsn really has any
idea that it may be communicating over a network or even that any
network even exists. All LightWave does is write simple text commands
job command text file in a common Command Directory.
Then each ScreamerNet lwsn render node simply reads those text commands
job text files, executes the commands and
writes a text reply into an
ack (acknowledgment) text
file in the same Command Directory. What makes this work over a
network is setting it all up so that each machine has read/write
access to the same Command Directory folder.
The Command Directory is the folder that contains the job command
file and the acknowledgement file. These are two plain text files
that the ScreamerNet controller uses to communicate with each ScreamerNet
lwsn node during batch or network rendering.
The communication goes like this:
- The ScreamerNet controller creates a job file.
- The ScreamerNet controller writes a command into the job file.
- The ScreamerNet lwsn node reads the command from the job file.
- The ScreamerNet lwsn node performs the command.
- The ScreamerNet lwsn node creates an ack (acknowledgment) file.
- The ScreamerNet lwsn node writes a reply to the ack file.
- The ScreamerNet controller reads the reply from the ack file
to decide what’s next.
These files are named:
# is replaced with the number of the ScreamerNet
lwsn node to control. If only one instance of ScreamerNet lwsn is
being used these files would be named
For a second instance of ScreamerNet lwsn, they would be named
ack2, etc. No
is used on the filenames. Also note that there is no leading zero,
space or anything else between the number and the words
Both the user running the ScreamerNet controller (typically LightWave
or a third party controller) and the user running ScreamerNet lwsn
(if different) must have read/write access to the same Command Directory.
Non-administrator users don’t typically have write access
to the Applications directories on Mac OS X. Therefore, I prefer
to use a shared Content Directory, with read/write access for all
users, and keep everything inside this shared Content Directory,
including my ScreamerNet Command Directory folder folder that I
Commands (the name doesn’t really matter
but it’s useful to be descriptive).
Here’s a step-by-step example of how to configure such a
simple self contained Content Directory with its own Command Directory
- Launch LightWave Layout.
- Set LightWave’s Content Directory with: Edit->Set
to your desired Content Directory folder.
- Select: Render->Network Render
- Click the Command Directory button.
- Navigate to the same Content Directory you set in step 2.
- Create a New Folder named Commands
inside the Content Directory.
- Click the Choose button to close the dialog
and accept the changes.
- If asked to initialize the ScreamerNet, click No
(we’re not ready to render yet).
- Quit LightWave Layout to save your changes to the config file.
Here is a sample Default Segment Memory entry from the config file:
This is the maximum number of bytes to use for the rendered image
segment memory. It defaults to 32 million bytes which is just under
32 Megabytes. This only affects the memory allocated for image buffers
used in rendering the image itself, it doesn’t affect the
amount of RAM used to load objects, textures etc. The number you
set is the maximum upper limit. LightWave will only use as much
RAM as it needs for the actual render buffers, up to this limit.
If more memory is needed, LightWave will break the image up into
as many segments as necessary so that each fits within the segment
memory limit. In general you want this number set high enough for
an entire frame to be rendered within one segment, as long as it
fits comfortably within your machine’s physical RAM capacity,
while still leaving enough physical RAM free for objects, textures
This value is set in the Render Globals panel (typically while
a scene is open) but is stored in the Config file, only
if you say yes when asked to use the changed value as a new default.
It is never stored in the scene file, and is not
stored anywhere if you click no when asked to use the changed
value as a new default. In that case it will only affect a render
in the current session of LightWave itself until you quit LightWave.
The next time you launch LightWave the old value in the config file
will be reinstated.
Here’s a simple step-by-step example of how to set the Default
- Launch LightWave Layout.
- Open the Render->Options->Render Globals
- Set the resolution to whatever you wish on the Camera tab.
- Notice the readout directly under the Segment Memory
Limit button on the General tab.
- If it lists more than one Segment then you may want to increase
the Segment Memory Limit.
- Click the Segment Memory Limit button.
- The Segment Memory Limit dialog opens, with
the current DefaultSegmentMemory config value.
(NOTE: This number is in millions of bytes, not megabytes. The
rounded integer shown is simply multiplied by 1,000,000 when stored
in the config file. A true Megabyte of RAM is actually 1024*1024
= 1,048,576 bytes. )
- Enter an integer that is equal to the old number multiplied
by the number
X that was displayed in the readout
Segments:X from step 5. For instance, if the old
32, and the readout said:
you could enter
64 into the field, to be sure to
be able to render the entire frame in one segment.
- Click the OK button.
- You will now see a dialog that asks: "Should this value
become the new default?" Yes/No. You must
click the Yes button, or the new value will not
be stored anywhere and will only persist during this session of
LightWave until you quit LightWave Layout.
- The readout below the Segment Memory Limit
button should now read:
- Quit LightWave to actually save the change to the config file.
You may also simply locate and edit the line
32000000 in your config file directly in a text editor. Simply
change the leading integer from 32 to whatever you desire (followed
by six zeros) and save the config file. Make sure your text editor
keeps the file as a plain text file and doesn’t add any file
extension to the config’s filename.
Here is a sample Render Threads entry from the config file:
This is the number of concurrent threads (strings of commands)
to execute during rendering. A setting of 0 in the config file corresponds
to a setting of Automatic in the Render Globals panel and allows
Layout/ScreamerNet lwsn to use as many threads as the Mac supports
so a 12-Core/24-Thread Mac Pro would use 24 render threads. In the
Activity Monitor it will show more threads than that since additional
threads are used for support functions, but the heavy rendering
will be limited to 24 threads.
In general you’ll get the best results by using the automatic
setting and running one ScreamerNet lwsn node on each Mac. This
way you can run the minimum number of nodes using the maximum number
of threads on each Mac. In some cases though, if your particular
scene uses primarily single-threaded processes or plugins then you
may get better results running multiple nodes per Mac set to use
fewer than the full number of threads, such as 2 ScreamerNet lwsn
nodes, each set to 12 threads or 4 nodes each set to 6 threads.
One thing to keep in mind though is that running multiple instances
of lwsn means you’ll be using multiple times as much memory
as a single instance. So if memory is an issue you may still want
to run single instances per Mac. Another reason you may want to
set it to use less than the maximum number of threads on your Mac
is if you want to render in the background while still using the
same Mac to do other work. In that case you may want to limit the
render threads so that your Mac still has plenty of horsepower available
for your other work.
Since the Multithreading setting is stored in the config file,
if you wish to change it, be sure to check/set the RenderThreads
setting in LightWave (or directly in the config file with a text
editor) prior to launching ScreamerNet lwsn.
Here’s a step-by-step example of how to set the RenderThreads
setting with LightWave Layout:
- Launch LightWave Layout.
- Open Render->Options->Render Globals
- Click on the Render tab.
- Set the Multithreading pop-up menu to Automatic
or a specific number of threads, as desired.
- Quit LightWave Layout, to have it write the change to the config
You may also locate and edit the
in your config file directly in a text editor. Simply change the
number to 0 for automatic or 1, 2, 3, 4, 8, 12, 16, 24, 32 or 64
as desired and save the config file. Make sure your text editor
keeps the file as a plain text file and doesn’t add any file
extension to the config’s filename, or it will not load properly.
[Next: Command Line Parameters]