]> de.git.xonotic.org Git - xonotic/netradiant.git/blob - docs/manual/Q3Rad_Manual/ch06/pg6_1.htm
transfer from internal tree r5311 branches/1.4-gpl
[xonotic/netradiant.git] / docs / manual / Q3Rad_Manual / ch06 / pg6_1.htm
1 <html>\r
2 <head>\r
3 <title>Q3Radiant Editor Manual: Page 5.1</title>\r
4 <link rel = "stylesheet" type = "text/css" href = "../styles/q3rad.css">\r
5 </head>\r
6 <body>\r
7 <h1 class = "MsoTitle">Q3Radiant Editor Manual</h1>\r
8 <hr>\r
9 <h1><a name = "tools3">Tools 3: Working with Curve Patches</a></h1>\r
10 \r
11 <div class = "subheading">Escape (ESC)</div>\r
12 \r
13 This is the all-purpose deselect key. Use it to back out of\r
14 operations you don't want to complete or to stop working on a patch\r
15 or group of patches.\r
16 \r
17 <h2><a name = "curvemen">Curve Menu Commands</a></h2>\r
18 \r
19 The next set of commands comes from the Curve Menu. Some are\r
20 duplicated on the Patch Tool Bar.\r
21 \r
22 <p><div class = "subheading">Cylinder</div>\r
23 \r
24 <div class = "menu">(Menu: Curve &gt; Cylinder)</div>\r
25 This creates the simplest cylinder. Cylinders are always drawn\r
26 with their open ends facing up and down. It does not matter which\r
27 map view is open when the cylinder is created.\r
28 \r
29 <p><strong>More Cylinders:</strong>\r
30 \r
31 <div class = "menu">(Menu: Curve &gt; More Cylinders)</div>\r
32 \r
33 <ul><strong>Dense Cylinder</strong>\r
34 \r
35 <br>This is a cylinder with a set of extra rows. It allows a\r
36 180-degree bend into a half donut (half torus).\r
37 \r
38 <p><strong>Very Dense Cylinder</strong>\r
39 \r
40 <br>This is a cylinder with two extra sets of rows. This allows a\r
41 bend into a full donut (torus).\r
42 \r
43 <p><strong>Square Cylinder</strong>\r
44 \r
45 <br>This is a cylinder whose columns have been adjusted so that a\r
46 square, with flat sides, is formed.\r
47 </ul>\r
48 \r
49 <p><div class = "subheading">End Cap</div>\r
50 \r
51 <div class = "menu">(Menu: Curve &gt; Endcap)</div>\r
52 This is a half cylinder.\r
53 \r
54 <p><div class = "subheading">Bevel</div>\r
55 \r
56 <div class = "menu">(Menu: Curve &gt; Bevel)</div>\r
57 This is a quarter cylinder\r
58 \r
59 <p><strong>More End caps, Bevels:</strong>\r
60 \r
61 <div class = "menu">(Menu: Curve &gt; More End caps, Bevels)</div>\r
62 \r
63 <p><strong>Square Endcap</strong>\r
64 \r
65 <br>This is an endcap without the backside removed.\r
66 \r
67 <p><strong>Square Bevel</strong>\r
68 \r
69 <br>This is a bevel with squared off back faces\r
70 \r
71 <p><div class = "subheading">Cone</div>\r
72 \r
73 <div class = "menu">(Menu: Curve &gt; Cone)</div>\r
74 \r
75 A cone is a cylinder with control points drawn together and\r
76 welded at one end to form a point.\r
77 \r
78 <p><div class = "subheading">Sphere</div>\r
79 \r
80 <div class = "menu">(Not implemented)</div>\r
81 \r
82 <div class = "tip"><b>Design Note:</b> A curve patch sphere can be constructed from\r
83 a cone. Start with a cubic brush. Convert into a cone. Go into edit\r
84 vertexes mode and grab the control point at the peak of the\r
85 cone. Pull it downward to half the height of the cone. Clone\r
86 the resulting piece and flip it upside down.</div>\r
87 \r
88 <p><div class = "subheading">Simple Patch Mesh&hellip;</div>\r
89 \r
90 <div class = "menu">(Menu: Curve &gt; Simple Patch Mesh&hellip;)</div>\r
91 \r
92 The patch mesh is the basic building block use to create all\r
93 curves. All the curve primitives are deformations of this\r
94 item. For this to work, you must first create a brush of the\r
95 dimension desired for the patch. Selecting this opens a Patch\r
96 dialogue window. This lets you select the vertical (rows) and\r
97 horizontal (columns) complexity of the patch. The more complexity\r
98 means being able to perform more deformations on the patch. It also\r
99 means adding a greater number of triangles that must be\r
100 rendered.\r
101 \r
102 <p><div class = "subheading">Insert</div>\r
103 \r
104 <div class = "menu">(Menu: Curve &gt; Insert)</div>\r
105 Adding control points increases the complexity of a mesh. This\r
106 action does not increase the physical size of a mesh. Additions are\r
107 usually done before manipulating the patch mesh.\r
108 \r
109 <ul><strong>Insert (2) Columns</strong>\r
110 <br>This adds two columns of control points to the left edge of a\r
111 patch.\r
112 \r
113 <br><strong>Add (2) Columns</strong>\r
114 \r
115 <br>This adds two columns of control points to the right edge of a\r
116 patch.\r
117 \r
118 <br><strong>Insert (2) Rows</strong>\r
119 \r
120 <br>This adds two rows of control points to the lower edge of a\r
121 patch.\r
122 \r
123 <br><strong>Add (2) Rows</strong>\r
124 <br>This adds two rows of control points to the upper edge of a\r
125 patch.\r
126 </ul>\r
127 \r
128 <p><div class = "subheading">Delete</div>\r
129 \r
130 <div class = "menu">(Menu: Curve &gt; Delete)</div>\r
131 \r
132 Deleting control points reduces the complexity of a patch mesh.\r
133 Be warned that the features created by the removed points are also\r
134 removed. It does not make the mesh a less complex version of the\r
135 former design. Deletions also change the dimensions of the mesh,\r
136 removing the area created by the deleted control points. A mesh\r
137 cannot be reduced smaller than a 3 column by 3 row complexity.\r
138 \r
139 <ul><strong>First (2) Columns</strong>\r
140 \r
141 <br>This removes two columns of control points from the left edge of\r
142 a patch.\r
143 \r
144 <br><strong>Last (2) Columns</strong>\r
145 \r
146 <br>This removes two columns of control points from the right edge\r
147 of a patch.\r
148 \r
149 <br><strong>First (2) Rows</strong>\r
150 \r
151 <br>This removes two rows of control points from the lower edge of a\r
152 patch.\r
153 \r
154 <br><strong>Last (2) Rows </strong>\r
155 \r
156 <br>This removes two rows of control points from the upper edge of a\r
157 patch.\r
158 </ul>\r
159 \r
160 <p><div class = "subheading">Matrix</div>\r
161 \r
162 <div class = "menu">(Menu: Curve &gt; Matrix)</div>\r
163 \r
164 This has nothing to do with Neo and Trinity. It's the patch mesh\r
165 taken as a whole.\r
166 \r
167 <p><strong>Invert</strong>\r
168 \r
169 <div class = "menu">(Menu: Curve &gt; Matrix &gt; Invert)\r
170 \r
171 <br>(Shortcut: CTRL + I)</div>\r
172 \r
173 This command inverts the normals of the patch mesh. The normals\r
174 control the direction of facing for the texture skin and the\r
175 clipping surfaces.\r
176 \r
177 <p><strong>Re-disperse</strong>\r
178 \r
179 <div class = "menu">(Menu: Curve &gt; Matrix &gt; Re-disperse)</div>\r
180 This is used on a selected patch. When rows or columns are\r
181 inserted or added to a patch, the dimensions of the patch are not\r
182 changed. The distances between the new additions and the old points\r
183 are not the same. This command averages out the distance between\r
184 the points. It does not change the size of the patch. <b>\r
185 WARNING!</b> Only apply this BEFORE adjusting the patch. Otherwise,\r
186 you may lose your work on it. With some patches, selecting this\r
187 command will destroy the patch itself.\r
188 \r
189 \r
190 <ul><strong>Cols</strong>\r
191 \r
192 <div class = "menu">(Menu:\r
193 Curve &gt; Matrix &gt; Re-disperse &gt; Cols)\r
194 \r
195 <br>(Shortcut: SHIFT + CTRL + E)</div>\r
196 \r
197 The distance between columns is averaged and evened out.\r
198 \r
199 <p><strong>Rows</strong>\r
200 \r
201 <div class = "menu">(Menu:\r
202 Curve &gt; Matrix &gt; Re-disperse &gt; Rows)\r
203 \r
204 <br>(Shortcut: CTRL + E)</div>\r
205 The distance between rows is averaged and evened out.</ul>\r
206 \r
207 <p><strong>Transpose</strong>\r
208 \r
209 <div class = "menu">(Menu: Curve &gt; Transpose)\r
210 \r
211 <br>(Shortcut: SHIFT + CTRL + M)</div>\r
212 \r
213 (Function undetermined)\r
214 \r
215 <p><div class = "subheading">Cap</div>\r
216 \r
217 <div class = "menu">(Menu: Curve &gt; Cap)</div>\r
218 \r
219 This command adds "cap" patches to the ends of the patch. The\r
220 original brush and the caps are linked together as a func_group\r
221 entity. A Patch Tool Bar button duplicates this command. The type\r
222 of cap depends on the selected patch:\r
223 \r
224 <p><table>\r
225 <tr valign = "top">\r
226 <td rowspan = 9><img src = "../Q3Rad_Manual_files/image032.png" width = 229 height = 147></td>\r
227         <td>\r
228 <b>\r
229 Cylinder</b></td>\r
230 <td width = 70%>The ends of the cylinder are sealed with circular patches.</td>\r
231 </tr>\r
232 <tr valign = "top">\r
233 <td><b>Square\r
234 Cylinder</b></td>\r
235 <td width = 70%>The ends of the cylinder are sealed with square patches.</td>\r
236 </tr>\r
237 <tr valign = "top">\r
238 <td><b>\r
239 Cone</b></td>\r
240 <td width = 70%>Both ends are capped (open and point). You will want to discard the\r
241 cap on the point end.</td>\r
242 </tr>\r
243 <tr valign = "top">\r
244 <td><b>\r
245 Bevel</b></td>\r
246 <td width = 70%>If you select to cap a bevel, a dialogue window pops up.\r
247 A normal bevel cap covers the space between the curve and the\r
248 center.</td>\r
249 </tr>\r
250 <tr valign = "top">\r
251 <td><b>Inverted\r
252 Bevel</b></td>\r
253 <td width = 70%>An inverted bevel covers the space between the curve and the outer\r
254 corner.</td>\r
255 </tr>\r
256 <tr valign = "top">\r
257 <td><b>\r
258 Endcap</b></td>\r
259 <td width = 70%>If you select to cap an endcap, the same dialogue window pops\r
260 up.</td>\r
261 </tr>\r
262 <tr valign = "top">\r
263 <td><b>Patch\r
264 Mesh</b></td>\r
265 <td width = 70%>The bevel/endcap window will pop up. Results will vary depending on\r
266 the manipulations done to the mesh.</td>\r
267 </tr>\r
268 <tr valign = "top">\r
269 <td><b>Square\r
270 Bevel</b></td>\r
271 <td width = 70%>Capped in the same manner as a cylinder</td>\r
272 </tr>\r
273 <tr valign = "top">\r
274 <td><b>Square End Cap</b></td>\r
275 <td width = 70%>Capped\r
276 in the same manner as a cylinder</td>\r
277 </tr>\r
278 </table>\r
279 \r
280 <p><strong>Cycle Cap Texture</strong>\r
281 \r
282 <div class = "menu">(Shortcut: CTRL + SHIFT + N)</div>\r
283 \r
284 Press this repeatedly until the texture on the cap patch looks\r
285 correct.\r
286 \r
287 <p><div class = "subheading">Overlay</div>\r
288 \r
289 <div class = "menu">(Menu: Curve &gt; Overlay)</div>\r
290 \r
291 Overlay turns the grid of control points on for the selected\r
292 patches and leaves them on until the Clear command is selected. By\r
293 having the control points on a curve patch be visible, it is easier\r
294 for the designer to align the vertices of adjacent solid geometry\r
295 brushes.\r
296 \r
297 <ul><strong>Set</strong>\r
298 \r
299 <div class = "menu">(Menu: Curve &gt; Overlay &gt; Set)\r
300 \r
301 <br>(Shortcut: Y)</div>\r
302 \r
303 This is the command to turn on the control points in a selected\r
304 patch.\r
305 \r
306 <p><strong>Clear</strong>\r
307 \r
308 <div class = "menu">(Menu:\r
309 Curve &gt; Overlay &gt; Clear)\r
310 \r
311 <br>(Shortcut: ALT + Y)</div>\r
312 \r
313 This is the command to turn off all control points in all\r
314 patches.</ul>\r
315 \r
316 <p><div class = "subheading">Thicken</div>\r
317 \r
318 <div class = "menu">(Menu: Curve &gt; Thicken)\r
319 \r
320 <br>(Shortcut: CTRL + T)</div>\r
321 \r
322 If you think about it conceptually, Thicken transforms a curve\r
323 patch into a three-dimensional object. It does this by duplicating\r
324 the selected curve and moving it a distance away from the copied\r
325 curve, and, if the "seams" checkbox is checked, it will cover the\r
326 space between the original and the copy with patches. The distance\r
327 between original and copy is selected in a pop-up dialogue window.\r
328 The direction is determined by the facing of the curve's normals\r
329 (the textured side). The duplicated curve appears on the opposite\r
330 side of the textured face. The resulting object depends on the\r
331 nature of the curve primitive being thickened. The following\r
332 are some examples:\r
333 \r
334 <p><table>\r
335 <tr>\r
336 <td><b>\r
337 Cylinder</b></td>\r
338 <td width = 90%>A pipe is created. Checking "seams" caps the ends.</td>\r
339 </tr>\r
340 <tr>\r
341 <td><b>Bevel</b></td>\r
342 <td width = 90%>A matching bevel is created. Checking "seams" creates a bent square\r
343 tube.</td>\r
344 </tr>\r
345 <tr>\r
346 <td><b>Endcap</b></td>\r
347 <td width = 90%>A matching endcap is created. Checking "seams" creates an\r
348 arch.*</td>\r
349 </tr>\r
350 <tr valign = "top">\r
351 <td><b>Patch\r
352 Mesh</b></td>\r
353 <td width = 90%>A mesh that echoes the shape of the selected patch is created, but\r
354 with XY dimensions smaller or larger by the measure of the\r
355 thickness (smaller if the normals are on the concave side; larger\r
356 if on the convex side).</td>\r
357 </tr>\r
358 </table>\r
359 \r
360 <p>* Thickening an Endcap is not the best way to create this shape.\r
361 Bending a square cylinder will produce better results.\r
362 \r
363 \r
364 \r
365 <h2>Patch Tool Bar</h2>\r
366 <img src = "../Q3Rad_Manual_files/image034.png" width = 205 height = 22>\r
367 <br>The patch tool part is turned on in the Preferences. Each\r
368 of these buttons enables or disables a curve editing feature, or\r
369 initiates a process on a selected curve patch.\r
370 \r
371 <p><div class = "subheading">Don't Select Curved Brushes</div>\r
372 \r
373 This button toggles the ability to select or not select curve\r
374 patches in the map. If turned on (depressed), the user will not be\r
375 able to individually select curve patches. Group selections\r
376 will still include any curve patches within their boundaries.\r
377 \r
378 \r
379 \r
380 <p><div class = "subheading">Show Patch Bounding Box</div>\r
381 \r
382 This button toggles the display of the bounding box that defines\r
383 the limits of the patch. On (button depressed) shows the bounding\r
384 box.\r
385 \r
386 \r
387 \r
388 <p><div class = "subheading">Show Patches as Wireframe</div>\r
389 \r
390 This button toggles the display of patches between a fully\r
391 textured mesh (off) and a wireframe-only mode (on). The wireframe\r
392 mode makes it easier to see the deformations of the mesh and allows\r
393 the user to see some control points that may be hidden by the\r
394 texture when it is mapped on the mesh. It can also be a\r
395 performance-enhancer for the editor (by setting the view to\r
396 wireframe until you need to see the brush textured).\r
397 \r
398 \r
399 \r
400 <p><div class = "tip"><b>Design Tip:</b> When manipulating the control points on a\r
401 patch mesh, using wire frame allows you to best see both the\r
402 control points and the deformations.</div>\r
403 \r
404 \r
405 \r
406 <p><div class = "subheading">Patch Bend Mode</div>\r
407 \r
408 If a curve patch is selected, this button initiates a multi-step\r
409 bending procedure. There are tutorials available on several\r
410 sites that address the fine points of bending a patch, whether it\r
411 is a cylinder or a simple flat mesh. The ESC key will exit the\r
412 procedure at any point. The following are just the steps:\r
413 \r
414 \r
415 \r
416 <ul><li>Select the patch (and only the patch).\r
417 \r
418 <li>Press the Patch Bend Mode button. This brings up an instruction\r
419 window that says:\r
420 </ul>\r
421 \r
422 \r
423 <div class = "menu">"Use TAB to cycle through available bend axis.\r
424 \r
425 <br>Press ENTER when the desired one is highlighted"</div>\r
426 \r
427 \r
428 \r
429 <p>This highlights (turns pink) a row or column of patch control\r
430 points. One of these control points will likely be the axis for\r
431 your bend. Pressing ENTER locks in your choice and advances to the\r
432 next step.\r
433 \r
434 \r
435 \r
436 <ul><li>A second instruction window message appears:</ul>\r
437 \r
438 \r
439 \r
440 <div class = "menu">"Use TAB to cycle through available rotation axis.\r
441 \r
442 <br>This will LOCK around that point. You may also\r
443 \r
444 <br>use Shift + Middle Click to select an arbitrary\r
445 \r
446 <br>point. Press ENTER when the desired one is\r
447 \r
448 <br>highlighted."</div>\r
449 \r
450 \r
451 \r
452 <p>This highlights the specific control point around which the\r
453 patch will bend. Pressing ENTER locks in your choice and advances\r
454 to the next step. You can also choose the control point by\r
455 SHIFT + middle mouse button clicking on the map window. The\r
456 click need not be within the bounds of the patch.\r
457 \r
458 \r
459 \r
460 <ul><li>A third instruction window message appears:</ul>\r
461 \r
462 \r
463 \r
464 <div class = "menu">"Use TAB to choose which side to bend. Press\r
465 \r
466 <br>ENTER when the desired one is highlighted."</div>\r
467 \r
468 \r
469 \r
470 <p>This highlights the side or end of the patch (relative to the\r
471 bend point) around which the patch will bend. Pressing ENTER\r
472 locks in your choice and advances to the next step.\r
473 \r
474 \r
475 \r
476 <ul><li>A fourth instruction window message appears:</ul>\r
477 \r
478 \r
479 \r
480 <div class = "menu">"Use the MOUSE to bend the patch. It uses the\r
481 \r
482 <br>same ui rules as Free Rotation. Press ENTER to\r
483 \r
484 <br>accept the bend, press ESC to abandon it and exit\r
485 \r
486 <br>Bend mode."</div>\r
487 \r
488 \r
489 \r
490 <p>Clicking and holding the Left mouse button on the map window and\r
491 dragging it around will cause the patch to bend. Pressing ENTER or\r
492 ESC at this point will accept any changes that you have made.\r
493 \r
494 \r
495 \r
496 <p><div class = "subheading">Redisperse Patch Points</div>\r
497 \r
498 This is used on a selected patch. When rows or columns are\r
499 inserted or added to a patch, the dimensions of the whole patch are\r
500 not automatically adjusted. The distances between the new additions\r
501 and the old points are not the same. This command averages out the\r
502 distance between the points.\r
503 \r
504 \r
505 \r
506 <p><b>WARNING:</b> Only apply this BEFORE making adjustments to the\r
507 patch, otherwise you may lose your work on it. With some\r
508 patches, the patch itself will be destroyed.\r
509 \r
510 \r
511 \r
512 <p><div class = "subheading">CAP (put caps on the current patch)</div>\r
513 This is used on a selected patch.\r
514 \r
515 \r
516 \r
517 <p><div class = "tip"><strong>Design Notes:</strong>\r
518 \r
519 <ul><b>Endcaps:</b> Don't cap endcaps with this tool. Make a\r
520 pair of opposing bevel caps that match the arch of the endcap\r
521 \r
522 <br><b>Messed Up Texturing:</b> If an inverted bevel endcap covers\r
523 something other than an arc of a perfect circle, it is likely that\r
524 the texture won't appear right when you apply the CAP function to\r
525 the texture. Press SHIFT + CTRL + P a few times until it looks\r
526 right.</ul>\r
527 </div>\r
528 \r
529 <p><strong>Weld Equal Patch Points (welds equal patch points during\r
530 moves)</strong>\r
531 \r
532 <br>(Patch Control Bar only) This feature, when selected (button\r
533 pressed in) causes control points to weld together if they are\r
534 moved to the same coordinates. Undo will undo the move and the\r
535 weld.\r
536 \r
537 \r
538 \r
539 <p><strong>Drill Down (selects drill down rows and columns)</strong>\r
540 \r
541 <br>When this is toggled on (depressed), clicking on a control point\r
542 in a 2D Map view selects all the control points in the row or\r
543 column beneath it.\r
544 \r
545 \r
546 \r
547  \r
548 \r
549 <h2><a name = "patchmove">Moving Patches</a></h2>\r
550 \r
551 <div class = "subheading">Moving Selected Curve Patch</div>\r
552 \r
553 These keys move the curve patch around the map in discrete map\r
554 grid increments.\r
555 \r
556 <ul><strong>Move Selection Down</strong>\r
557 \r
558 <div class = "menu">(Shortcut: Keypad MINUS)</div>\r
559 \r
560 Each press moves the selected map component down along the\r
561 Z-axis by one grid position (at current grid setting). Not affected\r
562 by current 2D-map view.\r
563 \r
564 <p><strong>Move Selection Up</strong>\r
565 \r
566 <div class = "menu">(Shortcut: Keypad PLUS)</div>\r
567 \r
568 Each press moves the selected map component up along the Z-axis\r
569 by one grid position (at current grid setting). Not affected by\r
570 current 2D-map view.</ul>\r
571 \r
572 <p><div class = "subheading">Nudging the Curve Patch</div>\r
573 \r
574 These keys move the curve patch around the map in discrete map\r
575 grid increments. The movement is in terms of the selected window,\r
576 not in terms of XYZ coordinates.\r
577 \r
578 <ul><strong>Nudge Down</strong>\r
579 \r
580 <div class = "menu">(Shortcut: ALT + DOWN ARROW)</div>\r
581 Each press moves the selected map component "down" the map view\r
582 by one grid position (at the current grid setting). The movement is\r
583 relative to the selected map view, not XYZ coordinates.\r
584 \r
585 \r
586 \r
587 <p><strong>Nudge Up</strong>\r
588 \r
589 <div class = "menu">(Shortcut: ALT + UP ARROW)</div>\r
590 \r
591 Each press moves the selected map component "up" the map view by\r
592 one grid position (at the current grid setting). The movement is\r
593 relative to the selected map view, not XYZ coordinates.\r
594 \r
595 <p><strong>Nudge Left</strong>\r
596 \r
597 <div class = "menu">(Shortcut: ALT + LEFT ARROW)</div>\r
598 \r
599 Each press moves the selected map component "left" the map view\r
600 by one grid position (at the current grid setting). The movement is\r
601 relative to the selected map view, not XYZ coordinates.\r
602 \r
603 <p><strong>Nudge Right</strong>\r
604 \r
605 <div class = "menu">(Shortcut: ALT + RIGHT ARROW)</div>\r
606 \r
607 Each press moves the selected map component "right" the map view\r
608 by one grid position (at the current grid setting). The movement is\r
609 relative to the selected map view, not XYZ coordinates.</ul>\r
610 \r
611 <p><div class = "subheading">Snap Selection To Grid</div>\r
612 \r
613 <div class = "menu">(Shortcut: CTRL + G)</div>\r
614 \r
615 If you are using the map grid to keep curve patches in\r
616 alignment, this is a great tool. Rotated curve patches and curve\r
617 patches that have had their vertices tweaked can have vertices that\r
618 no longer lie on map grid intersections. This snaps the vertices to\r
619 align with the grid. Be warned that snapping to large grids\r
620 may be hazardous to the health of your curve patch (Snap and it's\r
621 gone! But that's what UNDO is for).\r
622 <p align = "center"><a href = "../ch05/pg5_1.htm">Back</a> | <a href = "../index.htm">Home</a> | <a href = "../ch07/pg7_1.htm">Next</a>\r
623 </body>\r
624 </html>