Advanced Maya Texturing and Lighting- P10
lượt xem 17
download
Advanced Maya Texturing and Lighting- P10: I should stress that I am self-taught. In 1994, I sat down at a spare seat of Alias PowerAnimator 5.1 and started hacking away. After several years and various trials by fire, 3D became a livelihood, a love, and an obsession. Along the way, I was fortunate enough to work with many talented artists at Buena Vista Visual Effects and Pacific Data Images. In 2000, I switched from PowerAnimator to Maya and have since logged tens of thousands of hours with the subject of this book....
Bình luận(0) Đăng nhập để gửi bình luận!
Nội dung Text: Advanced Maya Texturing and Lighting- P10
- are stored as sine and cosine values. when an object is created, or has the freeze transformations tool applied to it, its transform matrix is an identity matrix. an iden- tity matrix is one that produces no change when it is multiplied by a second transform matrix. in other words, an object with an identity matrix has no translation, rotation, or increased/decreased scale. sx 0 0 0 0 sy 0 0 0 0 sz 0 tx ty tz 1 Figure 8.11 Maya’s 4 × 4 transformation matrix Converting Camera Space to World Space as an example of camera space to world space conversion, in figure 8.12 the Xform Matrix of a polygon cube is used to convert a normal Camera vector of a sampler info utility into a world space vector. the results are illustrated by applying the result- 249 ing vector to the color of a material. ■ M at H U t i l i t i e s x tri Ma rm xfo x tri ma normalCamera output input1 outColor Figure 8.12 The Xform Matrix attribute of a polygon cube drives the color of a material. This scene is included on the CD as xform_matrix.ma. A QuickTime movie is included as xform_matrix.mov.
- the xformMatrix of the pCube1 transform node is connected to the matrix of a vectorProduct node. (pCube1 is the small gray cube in figure 8.12.) the normal- Camera of a samplerinfo node is connected to the input1 of the vectorProduct node. the vectorProduct operation value is set to Vector Matrix Product. the output of the vectorProduct node is connected directly to outColor of a surfaceshader material node, which is assigned to a second, larger polygon shape. as a result of the custom connections, the faces of the larger shape that point toward the camera render blue until pCube1 is rotated. this is a result of the normal Camera attribute existing in camera space. a normal that points directly toward the camera always has a vector of 0, 0, 1. at the same time, while pCube1 is at its rest position, its xformMatrix is an identity matrix and has no effect on the normalCam- era value. thus, the values 0, 0, 1 are passed to outColor of the surfaceshader node. when pCube1 is rotated, however, the normalCamera value is multiplied by the new xformMatrix and hence the color of the shape is affected. for instance, if pCube1 is rotated –45, –45, 0, a pale green results on the faces of the larger shape that point toward camera. the resulting math is illustrated in figure 8.13. 250 Normal Camera vector Xform Matrix Vector Matrix Product result H a r n e s s i n g t H e P ow e r o f M at H U t i l i t i e s ■ .7 0 .7 0 5 .7 –.5 0 0 0 1 1 = –5 .7 .5 1 –.5 .7 .5 0 0 0 0 1 (0 .7 .5 RGB) Figure 8.13 A matrix calculation based on pCube1’s rotation of –45, –45, 0. The matrix numbers have been rounded off for easier viewing. when representing the matrix calculation, as with figure 8.13, the extra number 1 at the right side of the normal Camera vector (and at the bottom-right corner of the Xform Matrix) is necessary for this type of math operation; however, these numbers do not change as the corresponding objects go through various transformations. 8: chapter Note: As with many custom networks, the material icon in the Hypershade window, as well as the workspace view, may not provide an accurate representation of the material. To see the correct result for the previous example, use the Render View window. Note: You can retrieve the current Xform Matrix value of a node by typing getAttr name_of_ node.xformMatrix; in the Script Editor.
- Testing a Condition the Condition utility functions like a programming If Else statement. If Else state- ments are supported by Maya expressions and are written like so: if ($test < 10){ print “This Is True”; } else { print “This Is False”; } if the $test variable is less than 10, Maya prints “this is true” on the com- mand line. the If Else statement serves as a switch of sorts, choosing one of several possible outcomes depending on the input. the function of the Condition utility, when written in the style of an If Else statement, would look like this: if (First Term Operation Second Term){ Color If True; } else { Color If False; 251 } ■ M at H U t i l i t i e s first term and second term attributes each accept a single input or value, while the Color if true and Color if false attributes accept vector values or inputs. the operation attribute has six options: equal, not equal, greater than, less than, greater or equal, and less or equal. with the Condition utility, you can apply two different textures to a single sur- face. By default, all surfaces in Maya are double-sided but only carry a single UV tex- ture space. Hence, a plane receives the same texture on the top and bottom. You can avoid this, however, with the shading network illustrated by figure 8.14. the flippednormal of a samplerinfo node is connected to firstterm of a condi- tion node. the flipped normal attribute indicates the side of the surface that is ren- derable. if the attribute’s value is 1, then the “flipped,” or secondary, side is sampled. if the value is 0, the nonflipped, or primary, side is sampled. the nonflipped side is the side that is visible when the Double sided attribute of the surface is unchecked. returning to the network, the outColor of a checker texture node is con- nected to the coloriftrue of the condition node. the outColor of a file texture node is connected to the coloriffalse attribute of the same condition node. a bitmap image of a hundred dollar bill is loaded into the file texture node. the condition’s second term is set to 1 and operation is set to equal. last, the outColor of the con- dition node is connected to the color of a blinn material node. thus, the flipped side of a primitive plane receives the Checker texture while the nonflipped side receives the file texture.
- ou r tCo lo lor tCo ou col e orIfF IfTru als e color 252 H a r n e s s i n g t H e P ow e r o f M at H U t i l i t i e s ■ outColor color Figure 8.14 A single surface receives two textures with the help of a Condition utility. This scene is included on the CD as condition_flipped.ma. Switching Outputs switch utilities provide multiple outputs from a single node. that is, they switch between different values in order to create different results among the geometry assigned to their shading network. since the application of a switch utility is unique in Maya, a step-by-step guide for a triple switch utility follows: 8: 1. Choose an rgB attribute of a material, such as Color, and click its checkered chapter Map button. Choose a triple switch from the switch Utilities section in the Utilities tab of the Create render node window. 2. assign the material to two or more surfaces. 3. open the attribute editor tab for the tripleshadingswitch node. Click the add surfaces button. all the surfaces assigned to the material appear in the list. 4. right-click the first surface name in the switch attributes list and choose Map from the shortcut menu. the Create render node window opens. Choose a texture. the texture node appears in the Hypershade window. the out Color attribute of the texture node (for example, stucco.outColor) appears in the intriple column of the switch attributes list. repeat this process for each of the remaining surfaces in the switch attributes list.
- 5. render a test. each surface picks up a different texture. an example is included as figure 8.15. 253 ■ M at H U t i l i t i e s ins [0] tO ups bjG Gro inp out rou Col ut[ Obj ps[ or 0]. 0] inst inS ha ape pe nSh inp 1].i ut[ 1].i ut[ nTr inp iple outColor output input[0].inTriple color Figure 8.15 Color is controlled by a Triple Switch utility. A simplified version of this scene is included on the CD as triple_switch.ma. although these steps apply the switch to a material, you can apply them to any node. that said, triple switches are designed for vector values and are best suited for any attribute that uses rgB colors or XYZ coordinates. single switches, on the other hand, are designed for scalar values and are best suited for such attributes as Diffuse, eccentricity, reflectivity, or Bump Value. the single switch utility automatically chooses the outalpha attribute when a texture is chosen. in this case, the outalpha of each texture connects to the input[n].insingle of the singleshadingswitch node. the n in input[n].insingle corresponds to the slot number of the switch attributes list. the first slot is 0, the second is 1, and so on. although geometry is also connected to the singleshadingswitch node, the connection lines are initially hidden. nevertheless, the instobjgroups[n] of each geometry shape node must be connected to the input[n].inshape of the singleshadingswitch node. in
- this situation, the n of the instobjgroups[n] attribute refers to the hierarchy position of an instanced attribute. (see Chapter 7 for information on attribute instancing.) in most cases, n is 0. the instobjgroups[n] convention applies equally to Double, triple, and Quad switch utilities. in addition, all the switches possess variations of the input[n].insingle input. Double switches are designed for paired or double attributes. this makes the utility well suited for controlling UVs. for example, in figure 8.16 a Cloth texture receives standard UV coordinates from a default place2dtexture node. the repeat UV values, however, are supplied by a Double switch utility. in this case, the repeatUV attributes of three additional place2dtexture nodes are connected to the input[n]. inDouble attributes of the doubleshadingswitch node. place2dtexture1 has a repeat UV value of 5, 5. place2dtexture2 has a repeat UV value of 25, 25. place2dtexture3 has a repeat UV value of 50, 50. this shading network offers the ability to adjust UVs on multiple objects without affecting the base texture or necessitating the duplication of the entire shading network. 254 H a r n e s s i n g t H e P ow e r o f M at H U t i l i t i e s ■ UV repe ut[2].in eat V tU rep ea inp atUV rep ble ou inD 1]. Dou ut[ ble 8: b inp Dou le .in t[0] chapter u inp output repeatUV Figure 8.16 Repeat UV is controlled by a Double Switch utility. A simplified version of this scene is included on the CD as double_switch.ma.
- the Quad switch utility is suited for handling a vector attribute and a single attribute simultaneously. for example, in figure 8.17 the outtriple attribute of the quadshadingswitch node is connected to the color of a blinn material node. the outsingle attribute of the quadshadingswitch node is connected the diffuse of the same blinn. to split the switch’s output in such a way, it is necessary to use the Con- nection editor. the color attributes of three additional blinn nodes are connected to the input[n].intriple attributes of the quadshadingswitch node. the diffuse attributes of the blinn nodes are also connected to the input[n].insingle attributes of the quad- shadingswitch node. each of the three blinn nodes has the outColor of a different tex- ture connected to their color and diffuse attributes. in this case, the diffuse attributes do not need to correspond with the color attributes. for instance, blinn2’s color can be connected to input[0].intriple and blinn2’s diffuse can be connected to input[4]. insingle. this ability to mix and match outputs and inputs allows for a great diversity of results. Hence, the Quad switch provides the flexibility necessary to texture crowds, flocks, and swarms. although such custom connections will function properly, they do not appear in the switch attributes list of the switch’s attribute editor tab. 255 ■ Usi ng e sot er iC U t ili t i e s a n D sCen e noDe s Figure 8.17 Three different Blinn materials are dispersed among nine spheres using a Quad Switch utility. This scene is included on the CD as quad_switch.ma. Using Esoteric Utilities and Scene Nodes several utilities and nodes fail to fit into a specific category. of these, the stencil utility provides an alternative method of blending maps together. You can repurpose optical fX and Unit Conversion utilities to fit a custom network. although scene nodes (those automatically generated by Maya) are not particularly flexible, they provide critical services in a 3D scene.
- Stenciling Color as stencil is the third texture application radio button listed in the 2D textures sec- tion of the Create Maya nodes menu (following normal and as Projection). if a tex- ture is chosen with as stencil selected, the new texture automatically receives a stencil utility and two place2dtexture nodes. the stencil utility stencils the new texture on top of the material color. for example, in figure 8.18 a red logo is applied to a wall map with this technique. although the stencil utility produces results similar to the Blend Colors utility (see Chapter 6), its methodology is fairly different. out Col def or aul lpha 256 outA tCo lor H a r n e s s i n g t H e P ow e r o f M at H U t i l i t i e s ■ k ou mas tCo lor uv Coo im rd ag e ou tUV uvFilt outUv erSize FilterS ize outUV uvCoord outUvFilterSize uvFilterSize 8: chapter Figure 8.18 A logo is applied to a wall with a Stencil utility. This scene is included as on the CD as stencil.ma. in the example shading network, a red logo bitmap is loaded into a file tex- ture named fileColor. the outColor of fileColor is connected to image of a stencil node. standard UV connections run from the first place2dtexture node to fileColor. the second place2dtexture node is connected to the stencil node with similar (albeit fewer) standard UV connections. the outUV of the stencil’s place2dtexture node is connected to the uvCoord of fileColor’s place2dtexture node. the outUvfiltersize of the stencil’s place2dtexture node is also connected to the uvfiltersize of fileColor’s place2dtexture node. normally, this minimal set of connections will cause the fileColor texture to completely overtake the blinn’s color. to avoid this, the outalpha of a second file
- texture node, named fileMask, is connected to the mask of the stencil node. the Mask attribute controls where the new texture will show over the material color. in this case, a black and white bitmap is loaded into the fileMask node. where the bitmap is white, the material color shows through; where the bitmap is black, the red logo is rendered. at this point, the material color that is revealed by the Mask attribute can be only the solid color of the material’s Color attribute. to avoid this, the outColor of a third file texture node, named filewall, is connected to the defaultColor of the stencil node. in this example, a bitmap photo of a wall is loaded into the filewall node. if file- wall was connected directly to the Color attribute of the blinn, it would not be visible. Applying Optical FX the optical fX utility (found in the glow section of the Create Maya nodes menu in the Hypershade window) is automatically created whenever light glow is applied to a directional, area, or spot light. the utility controls the look of the glow, halo, or lens flare. (for a discussion on this and other fog effects, see Chapter 2.) oddly enough, the optical fX utility can be “grafted” onto a surface. for example, in figure 8.19 the worldMatrix[0] attribute of a polygon lightbulb shape 257 node is connected to the lightworldMat of an opticalfX node. this connection ■ Usi ng e sot er iC U t ili t i e s a n D sCen e noDe s ensures that the optical effect will occur in the center of the lightbulb regardless of the lightbulb’s position. the color of the blinn node is connected to lightColor of the opticalfX node. the blinn Color attribute is set to gold, which is picked up by the opticalfX glow. (the lightbulb surface is also assigned to the blinn.) last, the ignore light attribute of the opticalfX node is checked; this informs the program that no light is present. the result is a glow that follows the lightbulb wherever it goes. Unfor- tunately, since the opticalfX node creates a post-process effect, the size of the glow will not change. You can animate the glow spread and Halo spread attributes of the opticalfX node, however, if necessary. color r lightColo Figure 8.19 An Optical FX utility is attached to a lightbulb model, thereby creating a worldMa traveling glow. A simplified version lightWorl trix[0] dMat of this scene is included on the CD as optical_bulb.ma. A QuickTime movie is included as optical_bulb.mov.
- Converting Units the Unit Conversion node, while not accessible in the Create Maya nodes menu, automatically appears in many custom networks. for example, in figure 8.20 the translateX of a cone transform node is connected to the rotateX of a sphere transform node. to view the connection, follow these steps: 1. open unit_conversion.ma file from the CD. select the sphere and cone. Choose window > Hypergraph: Connections. 2. Choose show > show auxiliary nodes from the Hypergraph Connections menu (so that the option is checked). a unit conversion node should appear between the sphere and cone transform nodes. 3. if the node fails to appear, choose show > auxiliary nodes from the Hyper- graph Connections menu. in the auxiliary nodes window, highlight the word unitConversion in the node types that are Hidden in editors field and click the remove from list button. 4. alternatively, if you MMB-drag the sphere or cone transform node into the Hypershade work area, clicking the input and output Connections button 258 reveals the unit conversion node. H a r n e s s i n g t H e P ow e r o f M at H U t i l i t i e s ■ By default, Maya calculates the translation of objects using linear working units. at the same time, Maya calculates the rotation of objects using angular work- ing units. whenever two dissimilar working units, such as linear and angular, are used in the same network, Maya must employ a Unit Conversion node to create accu- rate calculations. in the example illustrated in figure 8.20, a Unit Conversion node is automatically provided with a Conversion factor attribute set to 0.017. You can change Conversion factor to achieve an exaggerated effect. if the Conversion factor attribute is changed to 1, for example, the sphere will spin at a much greater speed when the cone is transformed. 8: Figure 8.20 chapter A Unit Conversion node converts two dissimilar units of measure. The scene is included on the CD as unit_conversion.ma. Note: You can set a scene’s working units by choosing Window > Settings/Preferences > Prefer- ences and switching to the Settings section of the Preferences window. The default Linear working unit is centimeters and the default Angular working unit is degrees.
- Note: In general, it’s best to work in inches or centimeters. On occasion, calculation errors occur if a scene is set to meter, foot, or yard Linear units. For example, a scene set to foot units can exceed the maximum unit limit of a camera clipping plane and objects will fail to fully draw in the camera view. Understanding Scene Nodes render Partition, Default light set, and light linker nodes sit the farthest down- stream in any shading network (see figure 8.21). the render Partition utility defines which shading group nodes are called upon during a render. Default Light Set Light Linker 259 ■ Usi ng e sot er iC U t ili t i e s a n D sCen e noDe s Render Partition Default Render Utility List Figure 8.21 Scene nodes in a network the Default light set utility carries a list of lights that illuminate all objects within a scene. the instobjgroups[0] attribute of each light’s transform shape node is connected automatically to the dagsetMembers[0] attribute of the defaultlightset node. if you uncheck the illuminates By Default attribute in a light’s attribute editor tab, the connection is removed until the attribute is once again checked. the message of the defaultlightset node is connected automatically to link[n]. light and shadowlink[n].shadowlight of the lightlinker utility node. the light linker utility defines the relationship between lights and objects. if a light is connected through to defaultlightset node to the link[n].light attribute, the light illuminates all shading groups connected to the lightlinker node. if a light is connected through the default- lightset node to the shadowlink[n].shadowlight attribute, then the light creates shadows for all shading groups connected to the lightlinker node. all shading group nodes are connected automatically to the lightlinker node. However, if you
- manually delete the connections, the shading group and the shading group’s materials are ignored by the lights in the scene. the light linker utility also stores broken links between lights, shadows, and surfaces. if a light link is broken through the Break light links tools, a connection is made between the message attribute of the surface shape node to the ignore[n]. objectignored of the lightlinker node. a connection is also made between the message of the light shape node and ignore[n].lightignored of the lightlinker node. if the Make light links tool is applied, the connections are removed. similar connections are made between the surface and light shape nodes’ message and the lightlinker node when the Break shadow links tool is applied. if a light is linked or unlinked in the relationship editor, the connections are identical to those made with the Make light links and Break light links tools. for more information on the relationship editor, Make light links, and Break light links, see Chapter 2. the Default render Utility list node holds a list of all render utilities in Maya. although it cannot be used for any other purpose, it will show up in custom shading 260 networks connected to each and every utility node. H a r n e s s i n g t H e P ow e r o f M at H U t i l i t i e s ■ Chapter Tutorial: Creating Eye Glow with Advanced Math Utilities in this section, you will re-create the tapetum lucidum of an eyeball. the tapetum lucidum is a highly reflective membrane behind or within the cornea of many mam- mals and is responsible for the creepy eye glow seen at night. (although a similar effect occurs when a flash photograph creates “red eye,” humans don’t possess the membrane.) You will use light info, Vector Product, and Multiply Divide utilities, as well as a ramp texture. the tapetum lucidum of the eyeball geometry will become bright red only when both the camera and the scene’s spot light are pointing directly toward it (see figure 8.22). 1. open tapetum.ma from the Chapter 8 scene folder on the CD. this file contains an eyeball model. a nUrBs disc, which sits behind the iris, is named tapetum and will provide the tapetum lucidum effect. a spot light, named flashlight, is placed near the eye. it will serve as the scene’s single light source and will figure 8: chapter into the calculations. 2. MMB-drag two light info utilities into the Hypershade work area. name the first lightInfoA and the second lightInfoB. switch over to the lights tab of the Hypershade window and MMB-drag the flashlightshape node into the work area. 3. open the Hypergraph window. MMB-drag the persp camera transform node, the flashlight transform node, and the tapetum geometry transform node into the Hypershade work area. Connect worldMatrix[0] of the camera transform node to the worldMatrix of lightinfoa. Connect the worldMatrix[0] of the tapetum geometry transform node to worldMatrix of lightinfoB.
- Figure 8.22 The tapetum lucidum of an eye is re-created with the Light Info, Vector Product, and Multiply Divide utilities. A QuickTime movie is included on the CD as tapetum.mov. 4. MMB-drag five Vector Product utilities into the work area. name the first vec- torProductA, the second vectorProductB, the third vectorProductC, the fourth 261 vectorProductD, and the fifth vectorProductE. see figure 8.23 for the place- ■ C H a P t e r t U t o r i a l : C r e at i n g e Y e g l ow w i t H a DVa n C e D M at H U t i l i t i e s ment of the nodes. vectorProductE FlashlightShape ramp Flashlight vectorProductD clampB lightInfoB vectorProductC Tapetum lightInfoA vectorProductB clampA multiplyDivide persp vectorProductA Figure 8.23 The custom shading network for the tapetum effect
- 5. Connect lightDirection of the flashlightshape node to input1 of vectorProducte. (the light Direction attribute is listed within the light Data section of the light shape node’s attribute list when the node is loaded into the Connection editor.) Connect xformMatrix of the flashlight transform node to matrix of vector- Producte. set vectorProducte’s operation to Vector Matrix Product and check normalize output. this will convert the lightDirection vector into a usable world space vector. 6. Connect xformMatrix of the tapetum transform node to matrix of vectorPro- ductC. Connect lightDirection of lightinfoB to input1 of vectorProductC. set vectorProductC’s operation to Vector Matrix Product and check normalize output. this will convert the direction of the tapetum geometry into a usable world space vector. 7. Connect xformMatrix of the persp camera transform node to matrix of vectorProducta. Connect lightDirection of lightinfoa to input1 of vector- Producta. set vectorProducta’s operation to Vector Matrix Product and check on the normalize output button. this will convert the camera direction into a 262 usable world space vector. H a r n e s s i n g t H e P ow e r o f M at H U t i l i t i e s ■ 8. Connect output of vectorProductC to input2 of vectorProductB. Connect output of vectorProducta to input1 of vectorProductB. set vectorProductB’s operation to Dot Product and check normalize output. this will calculate the angle between the tapetum geometry direction and the persp camera direction. 9. Connect output of vectorProductC to input2 of vectorProductD. Connect output of vectorProducte to input1 of vectorProductD. set vectorProductD’s operation to Dot Product and check normalize output. this will calculate the angle between the tapetum geometry direction and the flashlight light direction. 10. MMB-drag two Clamp utilities into the work area. rename them clampa and clampB. Connect outputX of vectorProductB to inputr of clampa. Connect outputX of vectorProductD to inputr of clampB. for each clamp node, set Minr to 0 and Maxr to 1. this will prevent any negative numbers from reach- 8: ing the end of the shading network. chapter 11. MMB-drag a Multiply Divide utility into the work area. Connect outputr of clampa to input1X of the multiplyDivide node. Connect outputr of clampB to input2X of the multiplyDivide node. 12. set the multiplyDivide operation to Multiply. if the flashlight points toward the eye, input2X becomes roughly 1. if the eye is “looking” at the camera, input1X also becomes 1. in this the case, the surface normals of the tapetum are pointing down the negative Z axis, whereby they are actually pointing in the same direction as the camera (you can see this if the Double sided attribute is unchecked for the surface). if the eye is “looking” away, input1X becomes roughly 0. similarly, if the light points 90 degrees away from the eye, input2X becomes 0. Hence, when the eye points toward the camera and the light points toward the eye, the multiplyDivide node outputs a large value. if either the
- camera or the light points away from the eye, the output value becomes smaller. only the angles of the light, camera, and geometry are compared. although object position is part of the Xform Matrix attribute, the position of the object does not affect the output of the Dot Product operation. in other words, the light might produce a normalized cosine of 0.5 whether it’s positioned at 0, 0, 0 or 500, 500, 500. 13. MMB-drag a ramp texture and a Blinn material into the work area. Connect the outputX of the multiplyDivide node to vCoord of the ramp node. Create two handles in the ramp color field, one red and one black. Place the black handle at a selected Position value of 0.75 and the red handle at a selected Position value of 1. the ramp should have a thin red strip at the top with the bulk of the color black. set the ramp’s interpolation attribute to smooth. Connect outColor of the ramp node to incandescence of the blinn node. assign the blinn to the tapetum geometry. 14. select the iris, cornea, and eyewhite geometry and parent them to the tapetum. the vector calculations will only be accurate if the tapetum geometry is at the top of the eye hierarchy. 263 ■ C H a P t e r t U t o r i a l : C r e at i n g e Y e g l ow w i t H a DVa n C e D M at H U t i l i t i e s 15. the custom shading network is complete! render out a few tests. no matter where the camera is, if the eye points toward it and the light points toward the eye, the tapetum lucidum will become bright red. if you get stuck, the finished scene is saved as tapetum_finished.ma in the Chapter 8 scene folder.
- Improving Textures through Custom UVs, Maps, and Sliders Although the Hypershade window provides numerous ways to prepare materials, several important techniques outside the window 265 ■ I m p rov I n g T e x T u r e s T h ro u g h C u s T o m u v s , m a p s , a n d s l I d e r s are worth a look. Preparing proper UVs for any model is a critical step in the texturing 9 process. Using the 3D Paint tool is an efficient way to prepare custom bitmaps. Maya’s support of the Photoshop PSD format allows the use of layers. At the same time, the proper use of bump and displacement maps can add realism to a render. Last, custom sliders can automate a material. Chapter Contents UV approaches for NURBS and polygon surfaces Tips and tricks for fixing UV problems Workflow for the 3D Paint tool Support of the Photoshop PSD format Intricacies of bump and displacement maps Creating custom sliders for materials
- Preparing UV Texture Space The nurBs and polygon surfaces employed in the examples featured by previous chapters carry uv texture spaces that are satisfactory for their corresponding renders. For a render to be successful, the uv texture space of a surface must avoid undue stretching, pinching, or overlapping. although the modeling steps necessary to create high-quality uvs are numerous and beyond the scope of this book, a few important concepts and techniques are worth reviewing. To display the uv texture space of a selected surface, choose Window > uv Texture editor. By default, u runs from left to right; v runs from bottom to top. In the uv Texture editor, the dark gray area in the upper-right portion of the grid repre- sents the full uv texture space. If a face sits outside this area, it will receive a repeated portion of a texture. uv manipulation of polygon, subdivision, and nurBs surfaces differs greatly. Techniques for dealing with each surface type follow. Note: UV texture space is a coordinate space that relates pixels of a texture to points on a surface. 266 UV points represent the location of a polygon’s vertices within UV texture space; you can transform UV points in the UV Texture Editor. Groups of connected UV points are known as UV shells. UVs is a loose I m p rov I n g T e x T u r e s T h ro u g h C u s T o m u v s , m a p s , a n d s l I d e r s ■ term for the current state of UV points in a particular UV texture space. Prepping NURBS Surfaces nurBs surfaces automatically receive uv texture information when they are cre- ated. 0, 0 in uv texture space occurs at the origin box of the surface. The two vertices appearing closest to the origin box are represented by a tiny u and v, indicating the u and v direction (see Figure 9.1). n ectio V Dir Origin Box UD ire cti 9: on chapter Figure 9.1 The origin box and UV vertices of a NURBS surface
- In general, nurBs surfaces are ready to texture as soon as they’re created. nevertheless, an understanding of parameterization, closed and periodic surfaces, stretching, and uv alignment will strengthen your texturing skills. Adjusting Parameterization nurBs surfaces are inherently parametric. In general terms, parameterization is the mapping of one domain to a second domain. For example, the earth, as a spherical planet, is mapped to rectangular travel maps. In terms of nurBs surfaces, parameter- ization is the method by which values are assigned to curve parameters. Curve param- eters are points along the length of a curve or surface that have unique values. as the points get farther away from the origin of the curve or surface, their values increase. The parameter range of a nurBs primitive plane is 0 to 1. The parameter range of other nurBs primitives and custom nurBs surfaces is 0 to the total number of sur- face spans, which run from edit point to edit point. ultimately, the parameter points determine the uv value of any given point on the corresponding surface. By default, nurBs surfaces automatically fill the entire uv texture space (see Figure 9.2). regard- less of the surface parameter range, the uv Texture editor always displays a normal- 267 ized uv range of 0 to 1. ■ p r e pa r I n g u v T e x T u r e s paC e Figure 9.2 (Left) A NURBS loft. (Right) The loft’s default UV texture space. You can apply parameterization in maya using two methods: uniform and chord length. The uniform method assigns parameter values to each edit point. The assignment does not take into account the length of any given span; instead, the uniform method only considers the total number of spans. Thus, if a curve has four edit points and three spans, the edit points will have the values 0, 1, 2, and 3 (see Figure 9.3). The uniform method is efficient and easy to visualize. however, its inter- polation is not as accurate as the chord length method and can lead to unpredictable texture stretching.
- Uniform 3.0 Chord length 18.18 1.0 6.21 2.7 16.88 0.4 2.36 2.0 12.09 0.0 0.0 Figure 9.3 Uniform and chord length parameter values on similar curves. These curves are included on the CD as uniform_chord.ma. Technically, chord length is the shortest linear distance between successive edit points. Chord length parameterization assigns parameter values based on these measurements. In other words, the parameter values are distributed unevenly along the curve and are not intrinsically bound to the number of edit points or spans (see 268 Figure 9.3). The parameter values are based on world units and tend to be fairly large. The chord length method is more accurate but is difficult to visualize and predict. I m p rov I n g T e x T u r e s T h ro u g h C u s T o m u v s , m a p s , a n d s l I d e r s ■ surfaces based on chord length curves can be more complex and potentially flawed. (For example, they can suffer from the addition of extra isoparms, which is known as cross-knot insertion.) By default, the Cv Curve tool creates uniform curves. however, you can create chord length curves by choosing Create > Cv Curve Tool > ❑, setting Knot spacing to Chord length, and applying the tool. To convert a chord length curve to a uniform curve, switch to the surfaces menu set, choose edit Curves > rebuild Curve > ❑, set rebuild Type to uniform, and click apply. Note: To normalize the parameter range of a curve, switch to the Surfaces menu set, choose Edit Curves > Rebuild Curve > ❑, set Parameter Range to 0 To 1, and click Apply. Note: You can observe the parameter values of uniform and chord length curves, as well as NURBS surfaces, by displaying their edit points and clicking the curve or surface isoparm. The Script Editor displays select -r curve_name.u[parameter_value]; or select -r surface_name.uv[u_parameter][v_ parameter];. 9: chapter Note: For a detailed description of open, closed, and periodic NURBS surfaces and tips and tricks for rebuilding them, see section 9.1 of the Additional_Techniques.pdf file on the CD.
CÓ THỂ BẠN MUỐN DOWNLOAD
Chịu trách nhiệm nội dung:
Nguyễn Công Hà - Giám đốc Công ty TNHH TÀI LIỆU TRỰC TUYẾN VI NA
LIÊN HỆ
Địa chỉ: P402, 54A Nơ Trang Long, Phường 14, Q.Bình Thạnh, TP.HCM
Hotline: 093 303 0098
Email: support@tailieu.vn