Essential LightWave 3D- P15

Chia sẻ: Cong Thanh | Ngày: | Loại File: PDF | Số trang:30

lượt xem

Essential LightWave 3D- P15

Mô tả tài liệu
  Download Vui lòng tải xuống để xem tài liệu đầy đủ

Essential LightWave 3D- P15: What you have in your hands is, quite simply, a collection of tools and techniques that many professional LightWave artists use every single day doing what we do in our various fields. The tools and techniques explored in this book are essential to creating the caliber of imagery that you see on film and television and in print and video games.

Chủ đề:

Nội dung Text: Essential LightWave 3D- P15

  1. Chapter 16 · · · · · · · · · · · · · · · · · · · · · · · Note Figure 16-16 Some have had great success with using limits to restrict how far a bone will bend in a given angular direction. However, without the ability to “cushion” these limits, the resulting motion of an item as it reaches its limit is often sharp and inorganic. So I tend to shy away from using limits whenever possible, opting instead for well-planned models and cleanly executed animation. Number of Axes Solved If you take a look at your own arm or leg, you’ll find that it’s built much the same way When you have two or more joints in an IK as the above illustration. Your bicep and chain operating in 2D space, things tend to thigh can swing back and forth, and up and work quite well. But in three-dimensional down (two axes: heading and pitch), while space, the level of complexity of the calcula- your forearm and calf move only around one tions that IK must figure out rises axis of the elbow and knee, respectively. dramatically. If you want things to work I’ve found that referencing real life in dependably, you’re going to have to curb building riggings helps more than nearly your demands on the IK solver. Figure 16-17 408
  2. · · · · · · · · · · · · · · · Layout 3: Character Animation Figure 16-18 anything else in making character setups Rotation Order that do what you’d expect them to do. Character riggings are complex things. While the desire to use IK on shoulder Riggings use a lot of heavy-duty math that or hip joints in order to solve for all three we animators take for granted when we’re axes (heading, pitch, and bank) is tempting, doing our jobs. Usually, we don’t care how I find that often (though not always) this something works, so long as it does. makes for a loose, “swively,” hard-to-con- But, if you’re curious about the more trol arm or leg. Most often, character complex details that make for a good, riggers will leave the bank axis to be con- dependable character rigging, this section trolled manually by the animator using FK. and the next one will fill you in on a lot of This lets you precisely control the position the stuff that goes on behind the scenes. of the elbow or knee joint just by rotating the bicep or thigh. So, the rule of thumb for good, solid IK Note chains in character riggings is: The topmost The “Rotation Order” and “Joint Compensa- item can use IK to solve for a maximum of tion and Muscle Flexing” sections are mainly for the technical directors and the heavy- two rotation axes, and the child item in a duty math-oriented folks who really want to character IK chain should use IK for only one understand why things happen and why cer- axis. tain decisions are made in the crafting of riggings. If this isn’t your cup of tea, don’t worry (there won’t be a quiz on this later); Note just skip to the section called “Flipping.” I don’t recommend using standard IK on a bone chain consisting of more than two LightWave has a fixed order in which it cal- joints (such as for a character’s tail). It cre- ates too many opportunities for the complex culates the rotation of an item: math to give you something you neither 1) Heading expect nor want. IK Booster is the tool for the job if you have something like a tail, 2) Pitch tentacle, whip, or rope you need to animate. 3) Bank 409
  3. Chapter 16 · · · · · · · · · · · · · · · · · · · · · · · You can think of this rotation order as if your object (“Arrow” in Figure 16-19) were parented to a hierarchical series of null objects, each null handling one rotation axis. Rotating one null will cause all of its chil- dren to rotate right along with it. Using this logic, I’ve set up a scene in which we’ve got two arrows as children of a Figure 16-19 hierarchical series of nulls. Figure 16-20 Figure 16-21 In Figure 16-21, notice I’ve selected both its rotation is being controlled by a system arrow objects and rotated them: H=20, that solves heading first, then pitch, then P=40, B=60. bank, the order in which the rotations were If an object is rotated H=20, it would applied must be reversed. (LightWave does make sense that to reset its applicable rota- this automatically when you simply reset an tion to H=0, its parent object would need to item’s rotation to 0, 0, 0 — but if you have a be rotated H=–20 (0 = n + [–1 · n]). hierarchical system creating Steadycam-like When you want to “unwind” an object, “floating head” movement, then rotation reset its applicable rotation to 0, 0, 0. When order becomes very important.) 410
  4. · · · · · · · · · · · · · · · Layout 3: Character Animation Figure 16-22 I’ve left the arrow objects at H=20, P=40, In each viewport, the left-hand arrow is B=60, and I’ve rotated the parent nulls rotated 0, 0, 0. The right-hand arrow is labeled Heading by –20, Pitch by –40, and rotated 0, –90, 0. The bank axis is a child of Bank by –60. The only difference between the pitch axis, and so when pitch is rotated the two hierarchies is the order in which the +/– 90°, the bank axis swings into exactly rotations are applied. The arrow on the the same plane as the heading axis. In the right applies bank first, then pitch, then top viewports of Figure 16-23, you see two heading, essentially reversing the rotation concentric circles, representing the heading order applied by LightWave. (larger) and the bank (smaller), around the Among other things, rotation order is right-hand arrow. The right-hand arrow is in responsible for the phenomenon known as a condition where rotating in heading and “gimbal lock.” bank produce the same applicable results. This is gimbal lock. Figure 16-23 411
  5. Chapter 16 · · · · · · · · · · · · · · · · · · · · · · · Now, if you feel you’re having a hard At the bottom of the Bone | Properties win- time wrapping your mind around this prob- dow, LightWave has a set of Muscle Flexing lem, don’t feel bad; you’re not alone. Even and Joint Compensation settings for each the best IK solving engines have a difficult bone. These help LightWave preserve the time with this. volume of the character’s joints as bones When the rotation axis that is recorded bend and the object’s mesh (or “skin”) second (pitch) nears/exceeds +/– 90°, IK flexes. can start to have problems. As the pitch angle nears/exceeds +/– 90°, the item can instantly “spin” around to face the opposite direction. Often, this will happen suddenly, over the course of a single frame. This is Figure 16-24 called flipping. Here, you see the difference between the Note character’s hand when Muscle Flexing and Joint Compensation are active for the bones There are as many ways of setting up a character rig as there are people to do the of the fingers, and when they are not. setups. Everyone will find his own sets of The important thing to know about Mus- rules that work for him. cle Flexing and Joint Compensation is that Over the course of your career, you will hear many opinions as far as the “best” way these functions only work with the bones’ of doing things. In my experience, there is pitch axis! no “best way.” There are only ways that work more easily for the ways in which your mind solves problems. Try what sounds interesting, keep it if it works for you, and always keep your mind open to finding new and better ways of working! Joint Compensation and Muscle Flexing Note This section on joint compensation and mus- cle flexing gets into some pretty heavy-duty LightWave and mathematical concepts. If you’re just starting out, or if you have little desire to get into the “hard-core” aspects of character rigging, please feel free to skip this section, moving on to the next section, called “Flipping.” Figure 16-25 412
  6. · · · · · · · · · · · · · · · Layout 3: Character Animation Okay, so what if you want to use Muscle to +/– 90°, you essentially “swap” that Flexing and Joint Compensation with a item’s heading and pitch axes. bone that is only supposed to rotate in heading, as with the forearm? Note LightWave allows you to set/record the pivot rotation for an item as a way of helping to combat gimbal lock. A character’s thigh points more or less straight downward, meaning that by default its rotation is nearly P=–90 right from the start. By using Setup | Modify | Orientation | Record Pivot Rotation (the hot key for this is ; don’t forget to use uppercase), you can tell LightWave to store that item’s cur- rent rotation as the rotation setting for that item’s pivot. The result of the Record Pivot Rotation tool is that the value of the item’s previous rota- tion is stored as the pivot’s rotation. Because the item’s pivot now assumes the previous rotation information, the item itself now lies along that particular set of angles when it is set to H=0, P=0, B=0. So, the item’s rota- Figure 16-26 tion is then set to 0, 0, 0, and a keyframe is created to hold the change in rotation data. Under Modify | Rotate | Rotate Pivot, you In short, using Record Pivot Rotation means that a bone can still look like it’s can manually change the angle that pointing straight up or straight down (P=+/– LightWave Layout thinks of as that particu- 90°), but it will animate from the perception lar item’s H=0, P=0, B=0. If you change that that direction is H=0, P=0, B=0. the Bank setting of an item’s pivot rotation Figure 16-27 413
  7. Chapter 16 · · · · · · · · · · · · · · · · · · · · · · · Note Flipping In changing the rotation of an item’s pivot, IK relies on a heavy-duty set of calcula- you must do so on that item’s rest pose, the tions. Even the best IK solvers still have frame where your character exists without any changes to his default rigging position issues when things get really complicated. whatsoever. The biggest problem with even the best IK is flipping, where a joint will spin 180° over the course of one frame. Note Foresight and planning in both your rig- You can also use this technique of altering ging and animation, coupled with a strong the Bank setting of an item’s pivot rotation IK solver such as LightWave’s, will usually to help control IK instabilities, which happen keep flipping to a minimum. most often when an item using IK to solve I find that I can avoid most flipping by: for both heading and pitch approaches or exceeds +/– 90° in its pitch axis. If you notice that your character requires a • Keeping the goal object at a distance of at least one-third the length of the bicep or greater range of movement in the pitch axis thigh away from the bicep or thigh’s point of of an item that uses IK for both heading and pitch, and you’re getting headaches from rotation (the shoulder or hip, respectively). the IK misbehaving, you can set the item’s pivot rotation for its bank axis to +/– 90°, so • Keeping the bicep or thigh from near- ing/exceeding +/– 90° in the pitch axis. then the greater range of movement occurs on the heading axis, which now falls in the same plane that used to be pitch! • Keeping the goal object well away from the area behind the bicep or thigh as that bone would lie in its rest pose. • Not trying to have my character assume a pose that would be painful to do in real life. Figure 16-28 414
  8. · · · · · · · · · · · · · · · Layout 3: Character Animation Figure 16-29 Figure 16-30 Note and predictably through many productions. I find that if I’m having problems with flip- It’s always best to learn the rules well ping, I’m usually trying to put the character before you start seeing what happens by into a pose that my own joints would com- breaking them. plain about. If you find you absolutely, positively have to have a particular, “painful” pose, you can • IK is only dependable when solving rotations for a maximum of two items within save a lot of time by making a “special-pur- an IK chain. pose” rigging that can more easily move through that pose. • On any item controlled by IK, let IK solve for a maximum of two axes. • In a chain of two items, the child item should only use IK to solve for one of its “Standard” IK Rules axes. These rules are more like guidelines. They can be bent and broken as you see fit to suit • Always give your two-item IK chain a little “suggestion” in knowing which direc- the needs of your particular IK setup. tion it should bend by pre-bending those However, that being said, these rules items. have kept my characters moving smoothly 415
  9. Chapter 16 · · · · · · · · · · · · · · · · · · · · · · · IK Booster As stated earlier, IK Booster is as much of Make sure that your null is selected and an advancement to the art of character ani- then go to the Setup tab. mation as IK itself was back in the early 1. Click Add | Bone. ’90s. 2. Further down on the Setup tab is the What is IK Booster? It’s a whole lot of Detail section. Click on the Bone Split things all wrapped up in a nice, neat little tool. A window will pop up asking for package. But with respect to character rig- the number of new bones. ging, it’s best to think of it as something that can be used to add even more ease, 3. Enter 5 for the number of bones and power, functionality, and stability to the IK leave the Fracture Mode at Collinear. systems we’ve been talking about already. Then click OK. Your existing bone will IK Booster enables us to overcome be broken into a hierarchal chain con- many of the limitations imposed by stan- sisting of five bones. dard IK. For example, in the standard IK Activate the IK Booster tool by clicking on rules, I said that it’s best not to use IK on a Modify | Tools | IK BoostTool or chain consisting of more than two joints. ( + ). Then, right-click on the But with IK Booster, we are no longer null that is the root for the chain of bones bound by this rule. Let’s take a look at how we just created. A pop-up window will this works. appear. Click the Apply IK Booster option. Applying IK Booster After clicking on Apply IK_Booster as shown in Figure 16-32, you’ll notice a few IK Booster can be applied to any object that changes to the appearance of your object. has bones set up in a hierarchy. So long as you have IK BoostTool active, Start with a fresh scene, and add a null you’ll see a control icon for your currently (as described earlier in this chapter). We’re selected item within your IK going to create a chain of five bones. We Booster-enabled object(s). You’ll also see could do this by adding a bone and then add- handles that default to the tips of all the ing four more child bones, but there’s an bones within the “IK-boosted” object. easier way. Figure 16-31 416
  10. · · · · · · · · · · · · · · · Layout 3: Character Animation Figure 16-32 Figure 16-33 Note That’s it! That’s all you need to do to apply IK Booster is a custom object function IK Booster and start animating this chain of applied to the object itself. To remove it from bones far more reliably than IK alone would an object, you’ll need to open the Object let you. (Read on!) Properties for that particular object, and remove the IK_Booster custom object under the Geometry tab. 417
  11. Chapter 16 · · · · · · · · · · · · · · · · · · · · · · · Long Chain Dependability You probably noticed that when you dragged your IK-boosted chain around, you With IK Booster, you don’t have to assign dragged the whole thing around, root and any goal objects or tell LightWave to use IK all. If you want to have the root stay in for any rotation axes; you just grab any of place, make sure you have the root bone (or the handles and move them around! the object itself) selected, right-click on the IK Booster handles “long chains” of hun- item’s control, and check ikstop. This dreds of bones with speed and reliability. If causes the IK movements of all child bones you’ve got a whip, tentacle, or tail you need to have no effect on any items higher up the to animate, IK Booster lets you confidently IK-boosted chain. use as many bones as you need to get the smoothest deformations possible. Figure 16-34 Figure 16-35 418
  12. · · · · · · · · · · · · · · · Layout 3: Character Animation IK Booster and Movement appear beside its control. The top is head- ing (green), then pitch (red), then bank IK Booster is a mode of movement unto (blue). itself. Selecting Modify | Translate | Move or Modify | Rotate | Rotate or Modify | Transform | Size (or Stretch — or any IK Booster and Keyframes other tool) will deactivate IK BoostTool. IK Booster creates its own keyframes Movement within the IK Booster sys- whenever you move or rotate an item in its tem isn’t the same as you may have gotten chain (regardless of your Auto Key Create used to thus far in LightWave; the handles settings). And because IK Booster pushes are different, and you can essentially move beyond LightWave’s normal way of work- and rotate without having to change tools. ing, the usual ways of creating and deleting You’ve already seen how you can click keyframes (by pressing Enter and Delete) and drag a handle to move the IK-boosted don’t apply when you have the IK BoostTool chain. If you need to rotate an item, select active. it, then click and drag on the numbers that Figure 16-36 Figure 16-37 419
  13. Chapter 16 · · · · · · · · · · · · · · · · · · · · · · · When you have IK Booster active (and the Right-clicking on the IK Booster Track Dope Track is inactive — see Chapter 15, opens up the right-click menu for that par- “Layout 2: Animation Basics”), a darkened ticular frame. It is from this right-click area appears above the timeline at the bot- menu that you can choose to delete a tom of Layout’s screen. This is the IK keyframe or create one arbitrarily (without Booster Track. There’s a lot of power having to move or rotate an item). packed within that little track. (Remember that the action you choose is The display at the left of the IK Booster applied to the Items Affected choice at the Track tells you what items within the left of the IKB track!) IK-boosted chain will be affected by what Now, what if you had a whole lot of you’re doing with the chain. In this case, all frames you wanted to delete at once? the parents and children of the selected Right-click drag-select an area within the item will have keyframes created whenever IK Booster Track to select a range of I move a handle. (Clicking on this display frames. You can then choose Delete from cycles you through the different modes — the right-click menu that opens when you you can choose to affect only the current release the right mouse button. item, only the selected item’s children, only its parents, both that item’s parents and children, or all items within the IKB chain.) Figure 16-38 420
  14. · · · · · · · · · · · · · · · Layout 3: Character Animation Note Most of those who’ve used LightWave for any length of time have grown fond of the Display Options | Show Motion Paths setting that lets you see a visual representation of an item’s motion, frames, and keyframes within the 3D space of its viewports. Figure 16-39 When you have IK Booster active, if you turn off LightWave’s Show Motion Paths, you’ll more clearly see IK Booster’s “onionskin” dots that represent the selected handle’s position on sur- rounding frames that fade out the farther a frame is from the current one. Pose and Motion Saving current motion by choosing Motion Roll- and Loading back. This is very handy when you want to quickly compare two motions without When you have IK Booster applied to a character rigging (even if you are using none of the other IK Booster features), you can save and load poses and motions for some or all of your rigging! Clicking on the IKB Menu button on the right side of the IK Booster Track (which, as mentioned earlier, is visible when the Dope Track is inac- tive) brings up a menu in which you can choose to save and load the motion of your entire rigging. From the IKB Menu | Motions menu, you can also choose to copy the motion of your entire rigging, storing it to be swapped with the Figure 16-40 421
  15. Chapter 16 · · · · · · · · · · · · · · · · · · · · · · · having to bother going through the extra step of saving and loading the different motions. Right-clicking on the control for any item in an IKB chain also brings up a menu that you can use to save and load both motions and/or poses for that item and its children in the chain. (Be sure to right-click on the control, not the numbers. Right-clicking on the numbers will open a different set of menus that allow you to lock and/or limit motion on the clicked-upon num- ber’s axis.) Figure 16-41 Note Quaternion Rotations Using this item-based way of saving/loading poses and motions, you can quickly load If you followed the information in the sec- complex shapes onto, say, your character’s tion on rotation order in the first part of this hands (clenched fists, martial-arts hand chapter on inverse kinematics and the prob- shapes, etc.). Being able to load complex poses onto parts of your characters means lems with flipping that can occur because of you can really take your time to get those gimbal lock, you may find it interesting to complex poses perfect, knowing that you’ll know that LightWave 8’s IK Booster now only have to create those poses once! allows for a new kind of angular mathemat- It’s a good idea, though, to put the name of the item you had selected when you cre- ics that can help with the problem of gimbal ated that pose in the name of the pose lock: quaternion rotations. and/or motion file you create. IK Booster will You activate quaternion rotation for an let you load a pose or motion onto a differ- ent item in your hierarchy than the one you item within an IK Booster chain by select- had selected to save its motion and the ing Options | Quaternion from its motion of its children, which can create controller’s right-click menu. some unpredictable results. Figure 16-42 422
  16. · · · · · · · · · · · · · · · Layout 3: Character Animation To you, the animator, you won’t notice IKB Track on the right-hand side of this much more than a little “Q” appearing center mark moves all the keyframes to the inside the controller icon, and that certain right of the center mark (for the currently problem poses for your rigging may not be selected Affected Items choice) by the dis- such a problem anymore. (Quaternion rota- tance dragged. (The little triangles in the tion only helps in dealing with the issues of IKB Track to the right of frame 15 show the gimbal lock; it is not a “magic bullet.”) start and end positions of my drag.) In Figure 16-43, because Child is the Keyframe Move Mode currently selected Affected Items choice (displayed on the left-hand side of the IKB IK Booster also gives you the ability to Track), only the selected item and its child quickly move your keyframes about without item(s) will have their keyframes moved. ever having to leave Layout’s main window. When you’re done moving keyframes in relation to that particular center mark, sim- Note ply click on the center mark and it will General Options | Show Keys in Slider turns disappear. on and off LightWave’s representation of keyframes for the current item as light, verti- cal lines in the background of the frame Note slider at the bottom of Layout’s window. Using IK Booster’s Move mode with the par- ent or child Affected Items choice is a great way to quickly add the “whip-like” action In Figure 16-43, I’m starting off with known in character animation as the “suc- keyframes on frames 0, 10, 20, and 30 for all cessive breaking of the joints” after you have the items in the IKB chain. Clicking on the made sure your character hits the key poses you want. IKB Track on frame 15 sets the center mark of the Move mode. Dragging in the Figure 16-43 423
  17. Chapter 16 · · · · · · · · · · · · · · · · · · · · · · · Newbie Sensory Overload I can imagine that if you're new to IK and/or kinematics — we all had to pick up this IK Booster, all the information in this chap- information somewhere on our journeys. ter may seem a bit overwhelming. Don't Your greatest asset, throughout your worry. In time, you’ll find yourself talking entire life, will be your ability to find the about IK, FK, and IKB as if they were the solutions you seek yourself. most natural things on earth. The important Every question or problem can be bro- thing is not to be overwhelmed by the tools ken down into ever more simple bits that and options available. you can more easily master. You may not at first completely under- If you find yourself feeling stuck, take a stand why things are done a certain way, but step back to where you do feel confident you will find that once you've gone through about what you know. Seek out the the process, a lot more of it will make sense resources that can help you understand the in retrospect. smaller component parts of what you are And once you start actually using a rig- seeking to learn (books, online resources, ging you’ve made, you’ll experience a and exploring functional examples where whole lot of “Ah, now I see why we did these elements are used well). that.” Knowing you can find the way to get So, remember not to worry. None of us yourself to where you want to be is one of came into this world already knowing how the most powerful realizations you can to pontificate on the intricacies of inverse come to in a lifetime. 424
  18. Chapter 17 Layout 4: Special FX When people in the industry talk about pro- the details” and make your work read with duction value, they are referring to whether a high production value. the work looks like it was done “profession- In this chapter, we go over some of Lay- ally.” Is each and every part of its process out’s special effects that can be used to brought up to the highest level appropriate greatly increase the level of professionalism for the story? that your work exudes. “Low budget” does not have to look low budget. Just because you’re filmmaking on a Note shoestring doesn’t mean it has to look that Some adjectives used to describe a high way! There are hundreds, if not thousands, production value are: lush, luscious, juicy, of simple, little things you can do to “kiss deep, rich, polished, slick, and tasty. Glow Effect Glow Effect is something I use in almost Note every single one of my renders. Most of the A way of looking at using Glow Effect is like time it is handled so subtly you wouldn’t imagining the way light bounces around know it was there; it’s a general soft, inside a practical camera’s exposure cham- “atmospheric” sort of thing that is hard to ber. If there’s too much light coming in on a certain spot (like a pinpoint of sunlight on a put one’s finger on. Glow Effect is this art- chrome bumper), that light “bleeds” out, ist’s first step in making something look exposing the film around it as well as the “not CG.” actual spot of film where the light really Glow Effect isn’t something to be falls. Lens flares (explained later in this chapter) restricted to “recreations of reality.” Glow simulate the way light scatters on the defects Effect cranks up the cool factor on flying of a lens. (Those nifty “star-thingies” around logos, web graphics, and all kinds of lights and whatnot were first considered design-oriented applications. It can even be flaws.) Together, lens flares and Glow Effect can increase the level of “realism” in your used to imitate volumetric lighting. renders. They have a multiplicative effect on one another, so plan on spending some time testing and tweaking to get things right. 425
  19. Chapter 17 · · · · · · · · · · · · · · · · · · · · · · · Note While Glow Effect is very cool, it takes exponen- tially longer as the image size and the pixel dis- tance covered by the effect increase. Figure 17-1: Using Glow Effect. The only difference between the two lines of text in Figure 17-1 is that the bottom one uses Glow Effect. Glow Effect Basics 1. Load Objects\Chapter17\Glow_ 01.lwo. Figure 17-3 3. Glow Effect is a two-part process. It must be activated both on the Surface Editor | Advanced tab (a percentage that acts as a “multiplier” for the global settings — and need not be restricted to 100% as its maximum) and on the Effects | Processing tab, where Figure 17-2 Enable Glow must be active and the global Intensity and Glow Radius val- 2. A quick render (with the cam- ues must be set (see Figure 17-4). era’s Antialiasing level set to Enhanced Low in the Camera Prop- erties window) shows us what we’ve got to start with. (See Figure 17-3.) 426
  20. · · · · · · · · · · · · · · · · · · · Layout 4: Special FX Figure 17-4 Note Remember that the Glow Radius value is in pixels. This value rep- resents the number of pixels the glow will extend when the Cam- era | Properties | Resolution Multiplier is set to 100%. If the Glow Radius is 16 pixels, and you change the camera’s Resolution Multiplier to 50%, the Glow Radius will be “scaled” to affect only 8 pixels for that ren- der. (Change the Resolution Mul- tiplier to 400%, and the Glow Radius will affect 64 pixels!) This results in you being able to see the exact effect of the glow when Figure 17-5: As you can see, while Glow Intensity for individual surfaces can be set above 100%, it may not always be a good you’re rendering at “test” resolu- idea. (The bottom version, with Intensity set at 300%, looks tions, without having to go in pretty crummy to me.) and change your Glow Radius setting. However, if you manually change the Width and Height values for your camera’s resolu- tion, leaving the Resolution Mul- tiplier at 100% regardless of whatever size image you are rendering, your Glow Radius will only affect the number of pixels you have set in its input field. 427
Đồng bộ tài khoản