home *** CD-ROM | disk | FTP | other *** search
/ Stars of Shareware: Raytrace & Morphing / SOS-RAYTRACE.ISO / programm / texte / 3dsnet.txt < prev    next >
Encoding:
Text File  |  1994-04-24  |  41.3 KB  |  885 lines

  1.               Confessions of a Network Renderer
  2.                              or
  3.                How I Learned to Love 3D Studio
  4.                               
  5.  
  6. It was cold, dark, and wet. Not too unusual considering it
  7. was night time on the outskirts of San Francisco. I was
  8. still at work, late at night, alive with the sheer pleasure
  9. of manipulating the electronic pathways of my computer's
  10. network system. This was not unusual. What is unusual, is
  11. that late at night I lead a secret life. I am a night time
  12. network renderer.
  13.  
  14. My name is Wendel Oliver Williams. WOW.  I work for a large
  15. corporation that has a lot of  computer resources available.
  16. Late at night, I run a few batch files I've created, and all
  17. of a sudden dozens of machines in my office all start
  18. working at the same time, doing my work for me. You see,
  19. I've been working with 3D Studio and the network rendering
  20. features.  Here is my story.
  21.  
  22.  
  23.                       Networks Galore!
  24.  
  25. Before you can set up network rendering for 3D Studio, you
  26. have to know a little bit about the type of network that you
  27. have. Techno-gweeb that I am, I have several different types
  28. of  networks and I run 3D Studio on all of them. Each has
  29. its merits. Before I start spouting name brands at you
  30. however, let's start with the basics.
  31.  
  32. There are really only two types of networks. Client/Server
  33. and Peer-to-Peer.  3D Studio works with both of these types
  34. of networks. A client-server network generally has each
  35. person on the network connected to one machine called the
  36. server. The server usually has a very large hard drive, and
  37. files and programs which need to be shared by all the
  38. clients (users) on the network are stored in this one
  39. location. Clients on the network can often talk to each
  40. other and send messages back and forth, but they can't share
  41. files and programs that are on their personal hard drives
  42. with each other, without first copying the files up to the
  43. server. One client on the network can not read a file
  44. directly off another client's hard drive. If you want to do
  45. that, you can use a peer-to-peer network.
  46.  
  47. In a peer-to-peer network, you can set up a machine on the
  48. network to be both a client and a server at the same time.
  49. So if one machine on the network is set up both as a client
  50. and a server, other machines on the network can read files
  51. and programs directly off the hard drive of that computer.
  52. While this might on the surface appear to give you more
  53. freedom, it often means that there is no central location
  54. for shared files, and I have to go hunting through the
  55. various machines that are set up as servers to find what I
  56. want. Also, people have a bad (in my opinion) habit of
  57. turning off their computer before they go home or when they
  58. are out of the office. When the computer is turned off, I
  59. can't access  the information stored on that computer's hard
  60. disk.
  61.  
  62. At my office I have run 3D Studio with several networks.
  63. Novell (Client/Server), PC-NFS (Peer-to-Peer), Netware Lite
  64. (Peer-to-Peer), Workgroups for Windows (Peer-to-Peer),
  65. Lantastic (Peer-to-Peer) and PC/TCP (Client/Server). One
  66. major source of confusion is that you can have more than one
  67. network protocol running at the same time. So I can have a
  68. Client/Server network running at the same time, and over the
  69. same cables, as a peer-to-peer network, and have the best
  70. (or worst) of both worlds.
  71.  
  72.  
  73.  General Set up principles...or...How to set up a Modern 3D
  74.                            Dungeon
  75.  
  76. Getting 3D Studio set up for network rendering can and
  77. should be a fairly easy and painless procedure. If you
  78. follow the instructions in the Advanced User Guide [pages 20-
  79. 48] closely, you shouldn't have any problems. I have
  80. identified several pitfalls or traps that you can run into,
  81. however.
  82.  
  83. First the basics. There are several things you need in order
  84. to set up network rendering. The first is a copy of 3D
  85. Studio. You only need one licensed copy of 3D Studio, no
  86. matter how many machines you  plan to use for rendering. You
  87. will need to install the 3D Studio software on each machine
  88. that you are planning to use. This is not a violation of
  89. your license agreement. Remember, 3D Studio comes with a
  90. hardware lock. You need to have the hardware lock plugged
  91. into the machine in order for you to use the program. If you
  92. forget to plug this in, when you type "3DS" to start the
  93. program, 3D Studio will tell you "Sentinel Pro not Found"
  94. which means that the program couldn't find the hardware
  95. lock. In Release 3, however, you can now type "3DS SLAVE".
  96. This will start up 3D Studio and place it directly into
  97. "slave" mode, which is a state of readiness for network
  98. rendering. You do not need a hardware lock on the system to
  99. start up 3D Studio in slave mode.
  100.  
  101. Installing 3D Studio on the local hard drive of each system
  102. you are going to use can be a tedious chore. What I do is
  103. install the software on one machine, then copy it
  104. temporarily up to a file server, and then back down to each
  105. machine on the network I am planning to use. This method
  106. works, but, you need to remember that each machine will not
  107. be set up the same, and you will still need to go around to
  108. each machine and re-configure 3D Studio for that particular
  109. environment. Items that you will need to configure will be
  110. the 3DS.SET file, 3DSNET.SET file, Vibrant video
  111. configuration, and CFIG386 configuration. We'll talk about
  112. each of these in just a bit.
  113.  
  114.      [Note: Some people have experimented with trying to
  115.      save disk space by installing one copy of  3D Studio on
  116.      the Network Server, and having each of the slaves
  117.      access this copy.  By specifying  a separate 3DS.SET
  118.      file for each slave, and a few other configuration
  119.      tricks I won't tell you, you can get multiple sessions
  120.      of 3D Studio to run from one copy stored on the
  121.      network. However, you will take a very significant
  122.      performance hit when you try to utilize the program. If
  123.      you are only demonstrating that network rendering
  124.      exists, and don't actually need to render, this
  125.      approach might be justified. In any production
  126.      environment, this approach would not be recommended. A
  127.      stronger statement is needed. This approach would be
  128.      suicidal.]
  129.  
  130. The second thing you will need for network rendering is some
  131. central location, accessible to all the slave machines,
  132. where the control files for the rendering procedures will be
  133. stored. This applies to both Client/Server  and  Peer-to-
  134. Peer networks. On a Client/Server network,  those files have
  135. to be placed in a directory on the network server. Each
  136. machine that is going to be used for rendering has to be
  137. logged into the network, and have read/write access to that
  138. specific subdirectory on the file server. On a Peer-to-Peer
  139. network, these files can be placed on any machine, as long
  140. as all the slaves, and the master machine, are attached and
  141. logged into that machine, and have read/write capabilities
  142. in that subdirectory. If you do not have supervisor (read
  143. that as God-like) privileges on your network system, you
  144. will need to get the help of your network supervisor to help
  145. you prepare your network for rendering.
  146.  
  147.       [Note: Network supervisors are very strange creatures
  148.      that have very luckily found a very specific
  149.      evolutionary niche in which to exist in this complex
  150.      technological environment. Their lair or nest is often
  151.      found cluttered ceiling high with various computers and
  152.      other electronic paraphernalia which have been cracked
  153.      open and scavenged for the parts which grow inside.
  154.      They seem to exist solely on coffee and nicotine,
  155.      although recently a group of supervisors have been
  156.      noted to have given up nicotine in favor of oreo
  157.      cookies. When approaching your network supervisor, I
  158.      suggest you do this with extreme caution, and with
  159.      either cigarettes or cookies in hand. Please remember
  160.      to use extreme caution.]
  161.  
  162. One possible pitfall at this stage is not having each
  163. machine on the network looking in the same subdirectory for
  164. the control files. The control files are created
  165. automatically, so if you are directing your control files to
  166. more than one location on the net, and are not aware of
  167. this, your slave machines will not be found by the machine
  168. that is initiating the rendering process.
  169.  
  170.  
  171.  3DSNET.SET...or...The Master's Master: the 3DSNET.SET file
  172.  
  173. One of the settings in the 3DSNET.SET file tells where to
  174. find the network control files. This file needs to be
  175. configured on each workstation you have copied the 3DS
  176. program onto for network rendering. Most of the default
  177. entries in this file may be left as they are. However there
  178. are some settings that must be changed before network
  179. rendering will work properly. Let's look at some of those
  180. changes.
  181.  
  182. NET-OWNER will be a name up to 12 characters. This is the
  183. name of the person or group to whom this workstation belongs
  184. to, and is the first part of the data used to identify each
  185. machine. One person could be in control of several machines,
  186. so this name does not need to be unique.
  187.  
  188. NET-NAME is the individual name for this PC. THIS MUST BE
  189. UNIQUE. This is also the name that will display when you are
  190. choosing machines to render to, so a descriptive name might
  191. be in order. "486/33 in Office 23" probably makes more sense
  192. than "Fred's PC". This name can be up to 20 characters. [Of
  193. course names like Caligula and Spartacus have their merit
  194. too. I leave this to you, the network renderer, to make this
  195. artistic decision.]
  196.  
  197. NET-MACHINE-ID also needs to be  unique number, between 0
  198. and 9999. This number will help identify each machine to
  199. rendering control.
  200.  
  201. NET-PATH is the directory where this computer looks to find
  202. the shared files that all computers on the network are going
  203. to need access to.
  204.  
  205.      Note: The NET-PATH variable is one that can cause
  206.      confusion. Two different machines can be set up to
  207.      access the same file server, but with different drive
  208.      mappings. So for one machine M:\MMEDIA\3DSNET might be
  209.      the path to find the shared files, while on another
  210.      machine X:\3DSNET takes you to the same place on the
  211.      file server. It doesn't matter that the paths are
  212.      different for each machine, as long as they point to
  213.      the same sub-directory on the file server.
  214.      
  215.      For even further confusion, drive mapping can  be
  216.      changed at the whim of whoever is at the computer. So
  217.      if you are using someone else's computer as a slave
  218.      machine, you might come in one day and find that what
  219.      used to be on Drive F: is now on Drive H:. It is for
  220.      this reason that many people create a new login name
  221.      specifically for network rendering. Logging in under
  222.      this new name insures that all the drive mappings will
  223.      be set back to whatever you specify in the login
  224.      script, temporarily clearing out any changes that the
  225.      main user of the computer might have made during the
  226.      course of the day.
  227.  
  228. NET-LOCAL-PATH is the subdirectory on this particular
  229. machine where image files will be stored in on the hard
  230. drive, should you choose that option at rendering time.
  231.  
  232.      Note: Some confusing terminology has just been
  233.      introduced.  When 3D Studio talks about a LOCAL save
  234.      for an image file, it means saving it on the hard disk
  235.      of the machine that is doing the rendering (the slave)
  236.      NOT the machine that started the rendering process (the
  237.      master) . So if machine A is the master machine, and is
  238.      set up to render to machines B,C, and D, and you choose
  239.      to save the images to LOCAL at the time of rendering,
  240.      you will be saving images in 3 different locations, the
  241.      hard disks of machines B,C, and D.
  242.      
  243.      
  244. NET-SERVER-PATH is the subdirectory where files will be
  245. saved if you choose SERVER at the time of rendering.
  246. Remember, this is a path relative to the way the slave
  247. machine is set up, so you could have each machine saving to
  248. the same subdirectory on a file server, or to different sub
  249. directories, however you want to set it up. Usually this
  250. option is used to store all the images that are created from
  251. the multiple machines into one subdirectory.
  252.  
  253. In a Peer-to-Peer network there is no central file server as
  254. there is in a Client/Server network. If you want to save all
  255. your images to one directory you need to assign a drive
  256. mapping from each machine that points to one central
  257. location on some hard disk with plenty of room. Then use
  258. that drive mapping as the path for the NET-SERVER-PATH. All
  259. the files will be saved in this common directory. Remember,
  260. the drive mapping for each of the slaves may be different.
  261. The important thing is that they all point to the same
  262. central location on some hard disk.
  263.  
  264. 3DS.SET...or...The Master's Master's Master? This is getting
  265.                          confusing.
  266.  
  267. You will also need to configure your 3DS.SET file, VIBRANT
  268. video configuration, and CFIG386 configuration on each slave
  269. station, just like an initial installation of 3D Studio.
  270. You'll probably have to carry your hardware lock around with
  271. you to configure and test everything properly.
  272.  
  273. In the 3DS.SET file you might be adding a MAP-PATH  that
  274. points to a subdirectory on the file server or a shared
  275. drive for maps and IPAS routines that might be needed by all
  276. the machines during rendering.  In order to share resources
  277. this way, you have to be using a network protocol that has
  278. very good file sharing capabilities. In other words, if two
  279. machines make a call for the same texture map at the same
  280. time, the network software can handle that request by
  281. talking to two or more machines at the same time, with only
  282. one file. If your network does not have EXCELLENT file
  283. sharing capabilities, do not attempt this. Instead, copy the
  284. maps and routines that each machine will need onto their
  285. local hard drives. FILE SHARING ERRORS ARE ONE OF THE MOST
  286. COMMON REASONS FOR A FAILED NETWORK RENDERING PROCESS. Also
  287. in the 3DS.SET file you might need to change the location
  288. that temporary files are directed to. These should be
  289. pointed to the drive with the most free hard disk space.
  290.  
  291. You will need to configure the VIBRANT video display for the
  292. particular machine that you are on. Slave mode of 3D Studio
  293. still displays the main user interface on the computer
  294. screen, so you have the same minimum requirements for video
  295. as you would if you were using this machine as a master
  296. station. Specifically, you need a VGA card capable of
  297. running 3D Studio. You reconfigure each slave by  starting
  298. 3D Studio with the "3DS VIBCFG" command. This will take you
  299. to the Vibrant configuration screen. For more information on
  300. configuring your video display, refer to your Installation
  301. Guide [page 4 and pages 66-67]. Make sure you know the brand
  302. and make of the VGA card you are using  before starting this
  303. option. If you don't know what video card is in the slave
  304. station, a useful utility to find out this information is
  305. MSD.EXE. This diagnostic utility will tell you information
  306. about your computer's configuration, and is included in
  307. either Windows 3.1 and DOS 6.x.
  308.  
  309. If you copied your version of 3D Studio from another
  310. machine, you might also need to reconfigure your Phar Lap
  311. swap drive. The -swapdir variable tells 3D Studio where to
  312. write some temporary files that the memory manager will use
  313. when it pages out to disk. You can see where the -swapdir
  314. variable is currently pointing  by typing "CFIG386 3DS" in
  315. the 3DS3 subdirectory. The list of configured switches will
  316. be displayed on your screen. If you need to change the swap
  317. drive to point to a hard disk with more free space on it,
  318. type "CFIG386 3DS -SWAPDIR X:" where X: represents the drive
  319. letter of the hard drive you want to use. You will now see
  320. two -SWAPDIR variables in the list. This is O.K. 3D Studio
  321. will use the last one that it finds. For more information
  322. about CFIG386, refer to the installation guide [page 9 and
  323. page 108].
  324.  
  325.  
  326.    9999 rendering machines on the network, 9999 rendering
  327.   machines. If one of those machines should happen to fail,
  328.                            9998...
  329.  
  330. I've been asked, "Wendel, you have a network with hundreds
  331. of machines on it. Can you really have 3D Studio running on
  332. all those machines at the same time? The documentation says
  333. you can link up to 9999 machines." The answer is Yes and No.
  334. You can have up to 9999 machines set up on the network, but
  335. you shouldn't have them all working on the same job at the
  336. same time. The amount of network traffic going to that one
  337. little control file will freak out the network. So, if you
  338. have a thousand frame animation that you are going to
  339. render, and 100 machines on the network, you can set it up
  340. so that machines 1 through 20 render frames 1 through 200,
  341. machines 21 through 40 render frames 201 through 400, etc.
  342. Each one of these mini "network farms" would have its own
  343. subdirectories and net paths set up on the seperate machines
  344. so each set of  slaves would use a unique set of network
  345. control files. You can link up about 20 machines on a single
  346. job using a client server network, and 5 machines on a
  347. single job using a peer-to-peer network, before the amount
  348. of network traffic will start to slow down the job.
  349.  
  350. In all cases, you are going to want to minimize the amount
  351. of network traffic. By copying texture maps, IPAS routines,
  352. etc. down to the slave's local hard disk, you minimize the
  353. amount of times the computer must access the network, and
  354. consequently, minimize the chance of  a network failure.
  355. This is especially true of peer-to-peer networks. Very few
  356. peer-to-peer networks, sometimes referred to as "lite"
  357. networks, were designed to handle the amount of network
  358. traffic that 3D Studio network rendering can generate. On
  359. some of these networks, you will begin to see a noticeable
  360. performance decrease as the amount of network traffic
  361. increases. To avoid this as much as possible, limit the
  362. amount of network traffic, as noted above.
  363.  
  364.  
  365.                    Using Network Rendering
  366.  
  367. So now we've got our network set up. The first thing to do
  368. is make sure all the machines are looking in the same
  369. subdirectory on the network for the control files. Do this
  370. by going around to all the machines, and starting them in
  371. slave mode for 3D Studio (type "3DS SLAVE" at the DOS
  372. prompt).  The result is that 3D Studio starts, and
  373. immediately flashes up a dialogue box that says "Machine in
  374. SLAVE mode. Press escape to cancel"  (since we started from
  375. DOS without a hardware lock, pressing escape will take us
  376. back to DOS, not to the 3DS interface). Once all the
  377. machines are in slave mode,  go to the master machine (the
  378. one with the hardware lock) and start 3D Studio normally. To
  379. see if all the machines have been recognized by the network,
  380. follow these steps.
  381.  
  382. Select Renderer/Render View from the side menu, and pick in
  383. one of the viewports. It's O.K. if you don't have a model
  384. loaded at this time.
  385.  
  386. In the Render still image dialogue box, highlight the Net
  387. Queue button at the bottom, then select render. If your
  388. display is not set up with a set resolution and aspect
  389. ratio, you will get a warning box that says " Render
  390. width/height and aspect ratio settings are blank and...".
  391. For this test, this is O.K. Normally, you would want to set
  392. a specific height and aspect ratio for rendering.  Select
  393. Yes to continue.
  394.  
  395. Since this is the first time you will be starting the
  396. network render features, you will get a dialogue box that
  397. says "MCS does not exist, create it?" This is good. Answer
  398. Yes.
  399.  
  400. Two dialogue boxes will pop up at the same time. The one on
  401. top is the Network Queue Entry box. In this box should be
  402. the names of all the machines that are available for
  403. rendering at this time. Scroll through the list and see if
  404. all the machines you set up are there. If one or more is
  405. missing, that means that the NET-PATH variable in the
  406. 3DSNET.SET file on those machines is pointing to a different
  407. subdirectory than all the others. You can correct this, and
  408. then do these steps again to make sure it is now pointing to
  409. the right location.
  410.  
  411.  
  412.     The Slave/Master  Relationship...or...How to become a 3DS
  413.                          dominatrix
  414.  
  415. I see the glint in peoples' eyes when they talk about the
  416. Slave/Master relationship and 3D Studio. Alas, the truth of
  417. the matter is not as exciting as it would sound. Being a
  418. slave in 3D Studio simply means that a particular computer
  419. is controlled in its rendering tasks by another computer on
  420. the network. The computer that initiates the process is
  421. called the Master machine. All computers that are set up to
  422. participate in this massive rendering effort are called
  423. slave machines. The fact that the computer operator is
  424. wearing black leather chaps and a dog collar has no bearing
  425. on the terminology used.
  426.  
  427. Using network rendering is as easy as selecting the render
  428. button. One of the keys to using it effectively, however, is
  429. knowing how to select your machines. Your first choice when
  430. performing network rendering is NET QUEUE or NET ASAP.  The
  431. NET QUEUE option will place your rendering jobs into a
  432. queue, or job list, in the order that they are received.
  433. Then as machines become available for rendering, the queue
  434. will start sending out files to the various machines to get
  435. the rendering job done. Naturally, if there are machines
  436. available, and you place something in the Queue, it will
  437. begin rendering as soon as you close the dialogue box. If
  438. there are no machines available,  the job will just sit in
  439. the Queue until there are machines available, or until you
  440. decide to cancel the job entry.
  441.  
  442. NET ASAP sends a rendering job to the next available machine
  443. or series of machines on the network. This will temporarily
  444. interrupt a job that is being read from the Net Queue, but
  445. it will not interrupt another NET ASAP job. So, for example,
  446. if you have placed a 100 frame animation in the NET QUEUE,
  447. and the machines on your network are currently rendering
  448. frames 53, 54, and 55, when you send a job to NET ASAP the
  449. computers will finish the frames they are currently
  450. rendering, and begin working on the NET ASAP job. When that
  451. job is complete they will return to rendering the job that
  452. was interrupted. As a rule of thumb, you should always
  453. render to NET QUEUE, so that you can interrupt that process
  454. and then resume it should you need to.
  455.  
  456.  
  457.              Questions and Answers about Network
  458.    Rendering...or...Everything you ever wanted to know, but were
  459.                         afraid to ask
  460.  
  461. I was accosted in the elevator by a group of people wearing
  462. pocket protectors and forced to answer a series of questions
  463. about network rendering. I don't think that they were a
  464. bonafide street gang, just a group who took its networking
  465. seriously.   That's one dangerous email group.
  466.  
  467.  
  468. The first time I started the network Queue, It told me "MCS
  469. does not exist, create it?" I said yes, but what was that?
  470.  
  471. The first time you start the network rendering queue, the
  472. control files that are needed to perform the network
  473. functions do not yet exist. When you said yes, the necessary
  474. control files for network rendering were created in the
  475. directory which you have specified as your network path.
  476. Incidentally, MCS stands for MASTER CONTROL SCRIPT file.
  477.  
  478. If you ever see this message again, then something might
  479. have gone wrong (unless you are setting up an entirely new
  480. network configuration, of course). If you see this message,
  481. that means that the machine you are using does not have
  482. access to the control files that have already been set  up.
  483. This might mean that you forgot to log on to the network, or
  484. that the files have been moved or erased. If this happens,
  485. that is OK, you just have to make sure, again, that all the
  486. slave machines and the master machine are pointing to the
  487. same subdirectory on the Server as your network path.
  488. Otherwise, some of your slave machines will not be
  489. accessible to the master machine for rendering.
  490.  
  491. By the way, if you ever try to access the MCS and your
  492. machine crashes or you get an error message, it is possible
  493. that the file on the network has gotten corrupted.  It is
  494. O.K. at any time to delete all the control files that are
  495. stored on the network file server. So, just delete
  496. everything in that subdirectory on the file server and start
  497. 3DS again. when you access the network queue, it will give
  498. you the MCS does not exist message again, as if this was the
  499. first time.
  500.  
  501.  
  502. What is the difference between ANY or ALL?
  503.  
  504. Selecting the ALL switch at the bottom of the Network Queue
  505. Entry dialogue box will mark all the machines that are
  506. currently available for rendering as machines that you want
  507. to use for the project you are rendering. You can also
  508. deselect a machine that you don't want included in this
  509. list. When you select render, those selected machines will
  510. begin working on your rendering project.
  511.  
  512. Selecting <ANY> from inside the dialogue box's list window
  513. is your way of saying "Use any machine that is now available
  514. or might become available in the future for my rendering
  515. project". So if you have 5 machines in the list, and you
  516. select <ANY>, those 5 machines will begin rendering. Then,
  517. later if you place a 6th and 7th machine into slave mode,
  518. those machines will join into the rendering process already
  519. in progress, so all 7 machines will be working on the one
  520. project. (This is different from ALL. If you add machines
  521. when you selected ALL, the new machines will not begin
  522. rendering the job that is already in progress.)
  523.  
  524. You can also deselect machines from the <ANY> process. This
  525. would be saying:  "Use any machine that is now available or
  526. might become available in the future for my rendering
  527. project, except the ones I just marked".
  528.  
  529.  
  530. Why would I want to exclude a machine from my network
  531. rendering?
  532.  
  533. The most common reason would be that you know you will need
  534. that particular machine before the network job will probably
  535. be finished. If you take that particular machine out of
  536. slave mode before the job is finished, then the frame of the
  537. animation that machine was working on will not be rendered.
  538. This means you will have to figure out which frame it was,
  539. and then re-render just that one frame to complete your
  540. animation.
  541.  
  542. Another possibility is that one of the machines is much
  543. slower than the others on the list. If it might take longer
  544. for that one machine to render one frame than it does for
  545. another machine to render several, you might find yourself
  546. waiting at the end for this one slow machine to finish its
  547. single rendering when all the other machines had finished
  548. some time ago. (As a general rule of thumb, slave machines
  549. on your rendering network should be just as robust as your
  550. regular 3DS machines. This means as much RAM and hard disk
  551. space as possible. Using your secretary's 386/20 with the 40
  552. meg hard drive when they go home at night would probably not
  553. be a good idea for network rendering.)
  554.  
  555.  
  556. How do I get my master machine to render as a slave as well?
  557.  
  558. Once you initiate a network rendering job, the Network
  559. control files take over. The master machine is no longer a
  560. part of the process. So if you had selected <ANY>  as your
  561. machines that you are rendering to, putting your master
  562. machine into slave mode afterwards will make it available
  563. for the rendering process in progress.
  564.  
  565.  
  566. Can I set up network rendering to run as a background
  567. process when I'm running 3DS under windows?
  568.  
  569. You might be able to get it to work with enough fiddling,
  570. but I sure wouldn't recommend it. Even under the best of
  571. circumstances, Windows is not considered adequate for a
  572. production environment. Also, in most cases applications
  573. that are running in  a DOS window are halted when they are
  574. sent to the background. This is a setting you can change,
  575. but depending on the application, you will be taking so many
  576. resources away from Windows, or vice versa, that background
  577. "multitasking" doesn't ever really work too well with
  578. powerful applications.
  579.  
  580.  
  581. What's the difference between the "LOCAL", "SERVER", and
  582. "CUSTOM PATH" file output settings?
  583.  
  584. These are the three different ways you can tell 3DS slave
  585. machines to save files in particular locations. The first
  586. one, LOCAL, says to save the file to the local hard drive.
  587. ***WARNING-DANGER WILL ROBINSON!*** This means local to the
  588. machine that is performing the rendering. That means on the
  589. hard disk of the slave machine - NOT - the hard disk of the
  590. machine that you are working on. If you are rendering to 5
  591. slave machines, and you select LOCAL file output, you will
  592. be saving files in 5 separate locations, none of which are
  593. on the machine you are using right now (unless you select
  594. <ANY> and then throw this machine into slave mode as well).
  595.  
  596. Choosing SERVER will send files to the subdirectory listed
  597. under the SERVER-OUTPUT- PATH in the 3DSNET.SET file or the
  598. Network Parameters  (Configure) dialogue box. Usually this
  599. will be the same subdirectory on all the slave machines. For
  600. example, all the machines would have SERVER:\3DSNET\IMAGES
  601. on the file server listed as their output path. Remember,
  602. however, that you could have machines sending files to
  603. different locations with this option as well. If the
  604. settings in one 3DSNET.SET file are different from the
  605. settings in another, you will be sending files to two
  606. separate locations, even though you chose SERVER.
  607.  
  608. CUSTOM-PATH file output is just that. You type the path that
  609. you want your images to be placed in. Again, you have to
  610. remember that it is the path as the slave machine sees it.
  611. So if you type C:\PROJECT1\PICTURES as your custom path,
  612. each of your slave machines must have this path available on
  613. its hard drive, and you will be saving your files to your
  614. individual slave machines' C:\ drive, not in one central
  615. location.
  616.  
  617.  
  618. So how do I save files in one central location? And can I
  619. ever save them on the MASTER machine's hard disk?
  620.  
  621. If you are using a Client/Server network, the only central
  622. location where you can store your files is on the server
  623. itself. Choose SERVER as your output file destination. Make
  624. sure that the SERVER-OUTPUT-PATH is pointing to the same
  625. subdirectory on the server for each of your slave machines.
  626. With a Client/Server network, there is no way to save all
  627. your files centrally on the MASTER machine's hard disk.
  628.  
  629. If you are using a Peer-to-Peer network, you can save all
  630. your files in one central location on whichever machine has
  631. the most disk space, or on the master machine, or wherever
  632. you like. You will accomplish this using drive mappings and
  633. using the LOCAL option to save your files.  One of the
  634. things Peer-to-Peer networks do is link hard drives
  635. together. So you can set up a drive mapping that says the
  636. hard drive on machine A is accessible to machine B as drive
  637. letter F: (Are you confused yet? The person at machine B
  638. will be able to read files, save files, run programs, etc.
  639. directly off the hard disk of Machine A. Neat, huh?)
  640.  
  641.  Let's look at a specific example. Machine A has a directory
  642. on its C: drive called C:\PROJECT1\IMAGES. You can now go
  643. around to all the slave machines and map Drive F: equal to
  644. the C:\PROJECT1\IMAGES directory on the master machine.
  645. While you're there, change the NET-LOCAL-PATH parameter in
  646. the 3DSNET.SET file to F:\ (Yes, smart alecks, you could
  647. also use custom path to do this from the master machine, and
  648. you wouldn't need to edit the .SET file. But this change
  649. would not be permanent.) Now when you render and select the
  650. LOCAL option (or CUSTOM, if you set it up that way), each
  651. machine will save the image files to its own local F:
  652. drive...which just happens to be C:\PROJECT1\IMAGES on the
  653. master machine!
  654.  
  655.  
  656. When I render, I get an error message box that says
  657. "Warning: Render width, height and/or aspect ratio are blank
  658. and network output is selected. Depending on the....". What
  659. does that mean?
  660.  
  661. This means that in the render setup for the master machine,
  662. you didn't select a SPECIFIC resolution and aspect ratio in
  663. the DEVICE CONFIGURATION dialogue box. (You get that box by
  664. selecting Configure... from the Render Screen or
  665. Renderer\Setup\Configure from the side menus.) Not selecting
  666. a resolution means use the defaults that are set up for the
  667. video board in the machine doing the rendering. Now, you may
  668. know that this means 640x480 (or whatever) and that it will
  669. come up correctly on your machine, but other machines on the
  670. network might be set up differently. The default on another
  671. machine might be 320x200. When you tried to put these frames
  672. together into an animation, they would be a different size
  673. and aspect ratio. It just won't work. So specify a specific
  674. resolution and aspect ratio, even if the machine you are
  675. working on is already set up for the resolution that you
  676. like. It will guarantee that all the machines on the network
  677. render files in exactly the same format, resolution, and
  678. aspect ratio.
  679.  
  680.  
  681. My aspect ratio and resolution are set up properly, but the
  682. images still look different from machine to machine. What
  683. else can change?
  684.  
  685. Check the GAMMA correction values on each slave machine.
  686.  
  687.  
  688. When I try to render a Flic file using network rendering,
  689. only one of my slaves is activated. How can I split up the
  690. rendering of a Flic file over several machines?
  691.  
  692. An FLC or FLI file is only one file when it is done. Thus
  693. only one machine can be working on it at a time. If you want
  694. to use more than one machine to render a Flic file, you can
  695. do this by setting up the Render Configure options to render
  696. to sequential GIF files. You will give up to a four letter
  697. beginning for the file names, and 3DS will fill in 0000,
  698. 0001, 0002, etc. for the rest of the name on each sequential
  699. file. In other words, the file name TEST* will produce
  700. TEST0000.GIF, TEST0001.GIF, TEST0002.GIF, etc.  Once all the
  701. frames are rendered individually, you can copy them all to a
  702. single directory and compile them into a Flic file.
  703.  
  704. There are two ways to make the Flic file once you have these
  705. images, using either Animator Pro, or 3D Studio. The easiest
  706. way is to use Animator Pro. Use the NUMPIC utility in the
  707. POCO pull down menu. Choose the "LOAD PICS AS FLIC" option
  708. to make a Flic file.  If you don't have AAPRO, you can
  709. accomplish the same thing in Video Post. Start a new 3DS
  710. project, and move right into the Keyframer module. Select
  711. Renderer\Video Post from the menu, and click on the active
  712. viewport. Make sure the ADD button is highlighted, and click
  713. once in the Queue column. You should see [KF Scene] appear.
  714. Highlight the EDIT button, and then click on the words [KF
  715. Scene]. The Queue Entry dialogue box will appear. Highlight
  716. BITMAP and then click on the box just to the right of that
  717. button. A file selection box will appear. Type in the first
  718. four letters of the files you created followed by  an *,
  719. then the extension (i.e. REND*.GIF) and select OK. The
  720. bitmap name (with the *) should now appear in the box next
  721. to the BITMAP button. Select OK and in the Video Post
  722. dialogue box, select RENDER. You will now get the familiar
  723. Render dialogue box. Make sure you are configured for FLIC
  724. as your output file type and hit the RENDER button on the
  725. bottom of the screen. When finished, you will have a flic
  726. file from the original GIF files. You can now delete those
  727. GIF files. (Check to make sure it worked first, though.)
  728.  
  729. Alternatively, to render a flic over several slave stations,
  730. you can render your animation in ranges, and send each range
  731. to a specific slave. In a 500 frame animation, for example,
  732. send frames 1-100 to slave #1, frames 101-200 to slave #2,
  733. etc. Each of these entries would be a separate job in the
  734. network queue. You will then need to splice the five
  735. resulting flic files together using either Animator Pro or
  736. Video Post in 3D Studio.
  737.  
  738.  
  739. Do I need to install the entire 3D Studio and all it's
  740. support files?
  741.  
  742. No. You can delete any files that are not going to be used.
  743. This would include texture maps, materials libraries, sample
  744. meshes, project files, etc.  For the bare bones, absolute
  745. minimum 3D Studio installation, you would need these files:
  746.  
  747. 3DS.EXE
  748. 3DS.RES
  749. 3DS.SET
  750. 3DSNET.SET
  751. VG920922.RLM
  752. VIB3DS.VLM
  753. VIBRANT.RES
  754.  
  755.  
  756.  
  757.            When bad things happen to good networks
  758.  
  759. Sure this all sounds great. Of course I visited a friend of
  760. mine who was trying to get his network up and running, and
  761. over the course of the night he had pulled out most of his
  762. hair. He started out with hair that looked like Mel
  763. Gibson's, but by the end of the night he looked more like
  764. Mel Blanc. Following are some questions and answers I've
  765. heard that might help you troubleshoot when problems arise.
  766.  
  767.  
  768. What causes a machine to fail?
  769.  
  770. Assume that the network is up and running properly. I know
  771. that is a big assumption on my part, but let's just pretend,
  772. shall we? Assuming the network is up and running properly,
  773. and all the machines are in slave mode and accessing the
  774. same control files, there are really only two reasons that
  775. an individual slave or node on the network will fail during
  776. the rendering process. The first is that the slave machine
  777. asked for a resource of some type and didn't receive it, and
  778. the second is that the MCS sent a request to the slave but
  779. couldn't find that computer on the net.
  780.  
  781.  
  782. So...the slave would like a drink of water?
  783.  
  784. Yes, slaves make requests. They request files from the
  785. network, they request texture maps, they request IPAS
  786. routines, and more. All of these resources need to be
  787. available to the slave machine in order for it to render
  788. properly. This means for texture maps, you need to have a
  789. directory for your texture maps in the MAP PATH of every
  790. slave machine, not just the master machine. If you call an
  791. IPAS routine, that routine has to be in the PROCESS
  792. subdirectory, or wherever you point to it in the 3DS.SET
  793. file. In other words, everything needs to be accessible to
  794. the slave machine as if it were the only machine doing this
  795. rendering.
  796.  
  797. The other thing to be careful about is shared files. Even if
  798. you place all your MAP files in a subdirectory on your
  799. server, and all your slave machines have that directory in
  800. their map paths, they still might not be able to find the
  801. file. This is because of the limited file sharing
  802. capabilities of many networks.  If two slave machines ask
  803. for the same file at the same time, unless you have some
  804. pretty sophisticated networking software which allows
  805. simultaneous file access, one of those machines will fail at
  806. that point. Some network software can handle this scenario
  807. with no problem, some network software also requires you to
  808. load the DOS SHARE.EXE program, and some network software
  809. will just never be up to the task. They will all SAY that
  810. they can do it. Perhaps if we were sharing spreadsheets or
  811. word-processing documents we wouldn't have problems, but we
  812. are dealing with massive files that need to be handed to
  813. these slave machines with split-second timing.
  814.  
  815. Bottom line, if you have a machine that is failing, watch it
  816. as it tries to render. If it crashes when it is loading
  817. materials, or trying to load an IPAS routine, then copy all
  818. those files to the local hard disk and try again. Make sure
  819. you copy all the needed files. If it is looking for a file
  820. that it cannot find, you can watch and see just when the
  821. system fails. Chances are you missed a file that needed to
  822. be in a MAP PATH.
  823.  
  824. Another way to help diagnose why your network rendering
  825. projects might be failing is to look at the log file that is
  826. generated with each process in the Network Queue Control
  827. dialogue box. Select VIEW LOG at the bottom of this dialogue
  828. box, and then highlight the process name in the Control box.
  829. Remember, when you delete a process from the control box,
  830. you delete the log file as well. If you want to save the
  831. log, you must select the SAVE option in the VIEW LOG screen
  832. to save the log as another file, before you delete the
  833. process from the Queue Control dialogue box.
  834.  
  835.  
  836. Did someone say split-second timing...
  837.  
  838. Yes I did. It bears repeating. Network rendering requires
  839. split-second timing in order to work. This means your
  840. network software needs to be up to the task of distributing
  841. files when they are requested. If it is not, then you had
  842. better copy those files to the local machine's hard drive.
  843.  
  844. There is another point where timing is crucial. Each of the
  845. machines on your network needs to be synchronized for date
  846. and time. If one machine says it is 3 in the afternoon, and
  847. another thinks it's 10 in the morning, problems can arise
  848. (it's the same way with your co-workers). On most networks
  849. the "window" or margin of error that you can be off from one
  850. machine to the next is less than 10 seconds. However, on
  851. some of the peer-to-peer networks, like Lantastic, if any
  852. machine is more than one second out of sync,  problems may
  853. start to crop up. Most networks have a tool that will sync
  854. the date and time of your workstation to that of the server.
  855. On some networks this happens automatically whenever you
  856. login. On others there are commands that need to be run in
  857. order to accomplish this. Many users prefer to place these
  858. synchronization commands in a batch file or login script
  859. that is used to start the slave machine.
  860. This way as soon as they login to the network they are
  861. automatically re-synced to the network clock. Whatever the
  862. case on your particular network....SYNCHRONIZE! (Wow, I be
  863. hypnotized, then synchronized. )
  864.  
  865.  
  866.  
  867.                          Conclusion
  868.  
  869. This is intended to be a living document, so any feedback
  870. that I get will be included in future releases of this
  871. paper. Since I am trying to remain somewhat anonymous,
  872. please address your comments through: Brian Rudolph on
  873. Compuserve Information Service (71722,170); or:
  874.  
  875. Autodesk Inc.
  876. Product Support
  877. 2320 Marinship Way
  878. Sausalito, CA 94965
  879.  
  880.  
  881. Sincerely,
  882.  
  883. Wendel Oliver Williams
  884. WOW/BR
  885.