|
Level Optimization
This technique is one highly valued by myself. Optimization will improve level performance online, as well as off, and should be considered high priority after finishing a level, or even, after finishing an individual room. The Basics Open D3Edit and your level or room. (For sake of repetition, I will only refer to your level or room as the level from now on.) Under the file menu, there should be a 'verify mine' selection. Open it. A dialog has appeared. It should display a series of error counts, as well as the status of the BOA Vis-Table, terrain occlusion and terrain volume lighting. You'll notice along the bottom of this window the message: "Note: Check the system's clipboard for detailed error info, as well as texture counts for this mine." This is the key to basic optimization, and everybody should know how to do this. If you didn't know how to do this, I see why you are reading this. Subsequently, this is where the Clipboard viewer (CV) comes into play. When you opened that dialog, the location of every error had been copied to the clipboard. Open the CV and you will see a varying amount of information, depending on several factors. If there is a lot of information, are in for some work. ***Note: if you don't have a Clipboard Viewer, open a text editor and paste the data into a new document. General Error Location Before I will tell you how to and what errors to correct, let me tell you how to find each problem in your level using the information you gathered in the CV. Bad Normal, Degenerative Face, Duplicate Face Example Error Message (can be any of the listed errors): Room 1 Face 142 has a bad or low precision normal. Select World View Window. Under 'Room' in the main menu, click 'Select Room by Number'. Type in '1'. Under 'Room' in the main menu, click 'Select face by number'. Enter 142. Open Current Room view without accidentally selecting a face. You now have the befowled face selected. Concave Face, T-Joints Example Error Message: Room 12 Face 290 is concave at vertex 1. Select room and face using above procedure. In Current room view, zoom to face 290. In the lower left portion of D3 there is a display of information. In this example, it would currently read R: 12/15 F: 290/294 P: -1/1 E: 0/4 V(idx): 0/4 (7/8). This is less compicated than it looks. In plain english, it says you are in room 12 of 15 rooms in the level, you have face 290 selected of 294 there, you do not have a portal face selected (-1 is equivalent to none; 0 is not used because 0 is a face) you have edge 0 selected, and vertex 0 selected. Type 'v' once with your keyboad. You will see the V(idx): display move to 1/4. You have just selected the vert where the face is concave. If you are looking for a T-Joint, press 'E' to cycle edges till you find the one where the error message describes. Error Priorities / Degenerative Faces Depending on what errors you have in your level you should approach optimization in different ways. Check the verify mine dialog to see if you have any duplicate vertices. If you have done a lot of bending and lathing, there will most likely be a lot of these. If you have more than 20 duplicate verts, it is imperitive that you remove all duplicate vertices first. To do this, select the 'World view' window, and under 'File' in the main menu, select remove extra vertices. The reason I say with such urgency to remove the verts first under this condition is that removing the verts may cause. Degenerate Faces This phrase should bring chills down any Descent 3 level maker. The degenerative face is caused when a group of duplicate face verts are removed, and a face with only two verts is created. These very severe errors will have major impacts on editing: while they exist, the BOA Vis-Table cannot be computed. Therefore it is absolutely necessary that you rid your level of them ASAP. When you locate the degenerative face, which should appear as a yellow line in your current room view, DELETE it. TIP #1 If you have as many bad normals as you have degenerative faces, your in luck, actually. A degenerative face is a type of bad normal, and deleting one will, in addition to getting rid of the degenerative face, also gets rid of a bad normal. Neutralizing Concave Faces This one is really easy. Select the concave face. You will immediately notice that the face is concave, being that it looks like this:
To remedy this problem, mark the enclosed vert and a vert not connected to the enclosed vert by an edge, and click the split face button. ( Neutralizing Non-Planar Faces If you have read the D3Edit Readme you know what a non-planar face is. If you don't, I have no sympathy. To eliminate a non-planar face, select it, pick two verts not connected by an edge, and you're done. TIP #2 The T-Joint is closely related to the Bad Shell, so eliminating T-Joints may eliminate some bad shells. Mismatched Portals, Bad Portals Sorry, but the only way to solve this problem is to delete the problematic room and build a bridge. Frequently Asked Questions Q: When I try to fix a bad/mismatched portal by deleting a room, D3Edit crashes. Can I avoid this, and if so, how? A: This is a bug in D3Edit. There is a better chance that you will succeed in deleting a room in wireframe view than in the textured/textured w/outline views. Q: Should I combine as many faces as possible to lower face count? A: Yes. Always yes. Q: Should I combine as many rooms as possible? A: This you should definately not do. Properties such as fog and wind are room-sensitive, and will overflow into the combined room when you combine the two rooms. Q: I can't get rid of this one bad shell, and there are no other errors! What should i do? A: These types of situations vary with each case, so each one is like a riddle to be solved. The solution is sometimes pleasing to come by. All errors can be fixed, one way or another. |