1. Trang chủ
  2. » Công Nghệ Thông Tin

LightWave 3D 8 Texturing phần 9 pdf

51 273 0

Đang tải... (xem toàn văn)

Tài liệu hạn chế xem trước, để xem đầy đủ mời bạn chọn Tải xuống

THÔNG TIN TÀI LIỆU

Thông tin cơ bản

Tiêu đề LightWave 3D 8 Texturing Phần 9
Trường học LightWave University
Chuyên ngành 3D Animation
Thể loại bài viết
Năm xuất bản 2023
Thành phố Hanoi
Định dạng
Số trang 51
Dung lượng 3,97 MB

Các công cụ chuyển đổi và chỉnh sửa cho tài liệu này

Nội dung

Specular Shading uses the specu-lar shading values as an input, so that the areas with higher values of specularity bloom, while Diffuse Shading uses the Diffuse channel’s shading.. Thes

Trang 1

Chapter 18 · · · ·

Part 6

Corona

The Corona filter produces the same

type of effect as the Bloom filter,

except that it gives you more control

over the look of the effect by offering

more options

The Input Channel drop-down

list allows you to specify a particular

internal render buffer that the effect

will be applied to, while the Input

Threshold value determines the

threshold level of that input after

which to apply the effect

This is the biggest difference

between the Corona filter and the

Bloom filter, since Bloom is applied to pixels in all the buffers This basically

allows you to apply the effect to only one particular aspect of the surface,

such as its specularity or its reflectivity

Clicking on Input Channel gives

you a rather long list of internal

buff-ers from which to choose

Color uses the actual raw hue of

the pixels to determine which areas

are affected by the effect, so that the

brighter colors will bloom Alpha uses

the brightness values of the render’s

alpha

Specular Shading uses the

specu-lar shading values as an input, so that

the areas with higher values of

specularity bloom, while Diffuse

Shading uses the Diffuse channel’s

shading

These two shading options are different from the Specularity and

Dif-fuse input types in that the shading values vary across the surface, from 0%

to 100%, while the Specularity and Diffuse options take their input values

directly from the values assigned in the Surface Editor and are therefore

uniform across the surface

Essentially, this means that when using Specular Shading or Diffuse

Shading (which are influenced by the lighting in scene), the bloom effect will

appear where there are brighter spots of specular or diffuse shading on any

particular area of a surface, while using Specularity or Diffuse will apply the

effect to any surface that has a specularity or diffuse value in the Surface

Figure 18-9

Figure 18-10

Trang 2

· · · Image Filters in LightWaveEffects Processing

Geometry uses the normal angles of the object’s surface to trigger theeffect This is an incidence-based (Fresnel) effect, where an Input Thresholdvalue of 100% places the blooming on areas that face the camera directly.Inverse Geometry is the opposite, whereby the normals that are perpendic-ular to the camera (in other words the edges) trigger the blooming effectwhen using an Input Threshold value of 100%

The following image shows the Geometry option on the left and theInverse Geometry option on the right

Special Buffer uses the Special Buffers feature in the Surface Editor asthe input for the effect This is useful for applying the effect to specific sur-faces only For more information on using the Special Buffers feature, refer

to Chapter 5

Mirror and Reflectivity use reflection information from the surface asthe input Although similar to the Specular Shading versus the Specularityinput options we looked at a moment ago, the Mirror and Reflectivityoptions differ in that Mirror uses the flat reflection value assigned to thesurface in the Surface Editor, while Reflectivity uses the reflection shadinginformation

The Shadow option uses shadows on the surface to trigger the effect,while Shading uses the actual light on the surface as the input So the InputThreshold value determines how brightly lit an area of the surface must bebefore it blooms

Depth applies the effect ing to the z-depth buffer, using thevalues of 0% to 100% to representthe transition from black to white inthe buffer Velocity uses movement ofthe object as a trigger

accord-Luminance and Transparency usethe appropriate values set in the Sur-face Editor as the input for the effect

You can mask the blooming effectusing one of these buffers as well, byselecting it from the Threshold Maskdrop-down list

393

Figure 18-11

Figure 18-12

Trang 3

Chapter 18 · · · ·

Part 6

This buffer now acts like an alpha channel for the effect The mask can

also be inverted

The Effect drop-down list gives

you three different blending modes

for the effect

The Additive mode creates an

effect that looks extremely hot

(white), where blooming pixels are

closely grouped This is useful for effects like heated metal This mode

cre-ates an effect that is very strong in the middle and much less so on the

edges

Normal (the default) is similar to, although not quite as strong as, the

Additive mode, since the effect at the center and the edges tends to grow

more evenly, as opposed to being concentrated in the middle only

Maximum takes the maximum of contributive pixels, creating a strong

bloom effect where the blobs of light on the surface actually tend to merge

where they meet one another (most noticeable when the Size value is set

fairly high)

Figure 18-14 shows each of the different modes, with all other settings

the same for each From left to right we have Normal, Additive, and

Maximum

The Falloff drop-down list allows you to select an option for how the

bloom effect falls off (at its edges) Refer to the little preview window to see

how the different Falloff options work You can achieve some really bizarre

effects by playing around with this setting

The Linear falloff type simply has a

straight falloff in the bloom effect, from solid

white in the middle to fading away

com-pletely at the edges

Smooth produces a slightly tighter effect,

with the falloff occurring sooner from the

middle, while Center Bias creates an even

tighter falloff from the middle Figure 18-16

shows the Smooth falloff on the left and the

Center Bias falloff on the right As you can

Trang 4

· · · Image Filters in LightWaveEffects Processing

Solid Box causes the blooms to appear square and Ring forms halos oflight instead of blooming spots In Figure 18-17 the Solid Box falloff isshown on the left and the Ring falloff on the right

Just as we have in the Bloom filter, the Strength value is the strength ofthe Corona pixel compared to the source pixel and the Size value is theradius in pixels of the brush at a 640 x 480 resolution If the resolution is dif-ferent, the brush is adjusted so that the effect always looks the same.Use the Edit Texture option to add color and modulation to the effectusing a texture, which can be a procedural texture, an image, or a gradient.Clicking on this button opens a Texture Editor just like we find in the Sur-face Editor, where you can create layers of textures

395

Figure 18-16:

Smooth and Center Bias falloff

Figure 18-17:

Solid Box and Ring falloff

Figure 18-18

Trang 5

Chapter 18 · · · ·

Part 6

When using gradients with the Corona filter, you’ll find some unusual

input parameters that are only found when using them with this particular

filter

The Previous Layer, Depth,

Dis-tance to Center, and LW_Corona Input

Channel options allow you to alter the

way in which the Corona effect is

applied to the surface

When the Texture Only option is

active (checked) and there is also a

tex-ture color, the effect uses the value of

the texture only

The Corona filter will be added to

your alpha channel when the

Contrib-ute to Alpha option is selected Use the

Save Effect to File option to save just

the corona effect to a separate image

file (or image sequence) when

render-ing, and select an appropriate file

format in which LightWave should save the images

And that’s it for the Corona filter

Since it offers so many more controlsthan the Bloom filter, you will probablyfind that it can take a little longer to set

up, but the results often have a greatereffect than using Bloom Use Bloomwhen you need a quick and easy overall effect, and Corona when you need

to limit the effect to certain aspects of the surface

Soften Reflections

This filter creates soft-looking reflections by simply blurring them

some-what It is a faster rendering option than using the Reflection Blurring

option in the Surface Editor,

which greatly impacts

render-ing times

Take a look at Figure

18-21 The logo in the

back-ground has Soften Reflections

applied to it (using the filter in

conjunction with Special

Buffers, discussed in a

moment), while the logo in the

foreground does not have the

Figure 18-19

Figure 18-20

Trang 6

· · · Image Filters in LightWaveEffects Processing

filter applied to it Notice how the reflections in the front logo are sharp,while the reflections in the back logo are softened by the filter

The filter is simple to control,since it only has a few adjustableoptions

The Softness value controls thestrength of the effect, while theBlending mode determines how theeffect is applied to the surface

The Replace mode (the default) replaces the original rendered tions with the blurred pass, while Average calculates an average percentagebetween the original render and the blurred pass to create a more subtleeffect Maximum takes the maximum of the replace result and the originalvalue to create a slightly lighter effect to avoid any dark halo around thereflection

reflec-Alpha uses the alpha channel of the surface to blend the effect, whileLumaBlend blends according to the intensity of the actual reflection

You can use the Scale By Surface Buffer option to use the effect of thefilter together with surfaces using the Special Buffers feature in the SurfaceEditor This limits the effect so that it only affects surfaces using SpecialBuffers For more information on using this feature, refer to Chapter 5

397

Figure 18-22

Trang 7

render-Sasquatch is a very vast and powerful plug-in, and to really discuss it indepth would require an entire book, but we’ll take a cursory look at its useshere.

Figure 19-1

Trang 8

· · · Creating Hair and Fur with Worley Labs’ SasquatchEffects Processing

NOTE: LightWave ships with a limited version of this plug-in, called Saslite For the purposes of this chapter, we will be looking at the full version of the plug-in, as it contains all of the Saslite options as well as

a host of other controls for creating great-looking hair.

Adding the Plug-in to Your Scene

Once you have installed the plug-in,Sasquatch works in Layout as a displace-ment on your model, and as a pixel filter forthe rendering stage To assign it to a partic-ular layer in your scene, you simply openthe Object Properties window (press p) andassign it to the Add Displacement list underyour Deform tab

To open the plug-in’s control panel,double-click on the Sasquatch name in thelist The initial panel that opens can be quitedaunting at first!

Be warned that this is just one of ninesuch panels Sasquatch, like G2, comes with

a superbly written manual, so there is noneed for me to go into every one of theseoptions here

Sasquatch Features at a Glance

Let’s look at the shading options of the hair

The Shading panel in Sasquatch contains a number of settings thatyou’ll find familiar, since they are very similar to the surface attributes that

we deal with in the Surface Editor

399

Figure 19-2

Figure 19-3

Trang 9

Chapter 19 · · · ·

Part 6

The Diffuse, Specular, and Glossiness settings work much the same as

their standard surfacing counterparts in the Surface Editor Use the Diffuse

setting to brighten or darken the hair, and use the Specular and Glossiness

values to determine how shiny it is Taking the latter two values up very

high will give the hair a wet look The Specular Tinting option works like

the Color Highlights option we have in the Surface Editor — it tints the

specular highlights with the color of the surface

The remaining controls on the Shading panel give us options for

con-trolling how light affects the hair

You can place hair on the model using a number of different options You

can apply hair to the entire model, you can apply it to a certain surface, you

can attach it to guide chains (splines) that you model, or you can use weight

maps or alpha images to determine where it appears as well as how it looks,

in terms of density, coarseness, etc Using weight maps is probably the most

interactive way of controlling short- to medium-length hair, and is my

favor-ite way of using Sasquatch

Simply create a weight map in Modeler for whichever attribute you

want to control, such as Density, Coarseness, Length, etc., and use high

weight values to specify higher values of that attribute or lower weight

val-ues for lower valval-ues of the attribute

Density also acts as a method of actually determining where the hair

will appear For example, if you were

creating a weight map for Density,

you would make the areas where you

want a lot of hair a very bright

orange in the weight map, and where

you didn’t want any hair at all you

could leave those areas green, or

even make them blue

Once you use a weight map

within Sasquatch, you can determine

how those values are then taken into

Figure 19-4

Trang 10

· · · Creating Hair and Fur with Worley Labs’ SasquatchEffects Processing

To give the hair color, the Color panel offers a number of controls for us

to play with

You can set basic color options here, as well as determine how the colorchanges along each strand of hair and how the color is randomized throughthe hair, so that it is not simply a single, unchanging color (which looks veryunnatural)

You can also apply mapping to your hair in the Mapping panel

This allows you to use either an image or a vertex color map to colorthe hair Very handy indeed! Sasquatch comes with a number of demo filesthat demonstrate each of these options

Apart from shading options and mapping options, Sasquatch offers avast array of styling tools and dynamics tools as well While the plug-in cantake some time to fully master, it is easy to get started, and since it providessuch a great hair solution for LightWave, I highly recommend it to anyonewho is serious about character work, since hair is such an important part ofthat facet of 3D

Visit Worley Labs’ site at www.worley.com for more information aboutSasquatch, as well as demo files, a gallery, and tutorials

401

Figure 19-6

Figure 19-7

Trang 12

Part 7

Quick Tutorials

Trang 13

This section of the book runs through some brief tutorials designed for

beginning to intermediate users who need a few pointers for creating basictextures and shading All the models and scene files for the tutorials are onthe companion CD-ROM

At the end of each chapter I have summarized some basic tips for thoseparticular types of surfaces for quick reference

For all the texture painting in this book, I used Adobe Photoshop CS Ichose to use Photoshop since it is the most widely used painting package,

although if you are using another package, I am sure that you will find that

all the Photoshop tools have an equivalent option in your chosen package,

since I don’t really use any of the fancy tools unique to Photoshop in these

tutorials

Always build all your different texture layers in a single PSD file, and

arrange your layers logically, preferably using layer sets This is because it

makes the process of copying details between the different textures for ferent surface attributes much simpler

dif-Chapter 11 has a small section on good file habits that I think is worth

reviewing before moving on to the tutorials

· · · ·

Trang 14

Chapter 20

Metal Surfaces

Metal surfaces can be one of the trickier types of surfaces to get right This

is because people often neglect to set up adequate environments for theirmetals Most of the realism for metal lies in the reflections, so it is essential

to give your metals something to reflect; placing them in a featureless blackvoid and then pumping up their reflection is not going to do anything at all

Of course there are many kinds of metals that we encounter and mayhave to create at some point, and each requires a different approach and dif-ferent detailing

Generally, in LightWave, you should set up your metal with relativelylow Diffuse, a medium to high Specularity, a low Glossiness (unless it has acoating, like car paint), and a medium to high Reflection Depending on thetype of metal, reflections often look more realistic when blurred, especially

if the metal is slightly older and worn

The first two tutorials in this chapter are very basic ones, involvingmostly shading (as opposed to actual texture creation) I have designedthem to demonstrate to you how to work with your environments, and toset up the basic shading parameters for a few different types of metal Thethird tutorial is not a step-by-step tutorial, but rather a rough guide to paint-ing rusty metal textures

Metal Tutorial 1: Car Paint and Chrome Shading

Cars are very popular things to create in CG — I am sure you have seenloads of 3D cars before, and possibly even made a few yourself So let’s take

a look at setting up basic car paint For this tutorial we’ll be working with alovely Mini model created by a talented fellow South African artist, BrendonGoosen Thanks for the model, Brendon!

1 Open up Layout Load the 7.1-Mini.lws scene from the companionCD-ROM

405

Trang 15

The scene already has an

environ-ment added to it in the form of an HDR

image loaded into Image World This

ensures that the metal and glass of the

vehicle will have something to reflect

Let’s start with the car paint

There are two different colors of paint

currently applied to the car — a green

and a light cream color I chose these

two colors because they are classic

col-ors for these cars, but by all means go

ahead and change the color if you so

wish

2 Open the Surface Editor and select

the “car paint green” surface Set up

the surface values as follows:

RGB: 13, 36, 6 (this should be applied already)

Diffuse: 80% (This lower value prevents the surface from becoming

oversaturated when we apply reflections to it.)

Specularity: 100%

Glossiness: 80%

Reflection: Leave at 0% for now, as we will use a gradient for this later

3 Leave all the other values as they are, as shown in Figure 20-3

Chapter 20 · · · ·

Part 7Figure 20-1

Figure 20-2

Trang 16

4 Go to the Advanced tab and give the Color

Highlights a value of 70% This is to preventthe surface from becoming overly brightwhen we add reflection to it, since it tints thespecularity as well as the reflections on thesurface

5 Go back to the Basic tab now, and click on

the “T” button for Reflection to open up itsTexture Editor Change the default layer to agradient layer by clicking on the Layer Typepull-down list and selecting Gradient

6 Change the Input Parameter of the gradient

to Incidence Angle This gradient will allow

us to control the amount of reflectivity based

on the angle at which we view the paintedcar surface Varying the reflectivity helps tocreate a sense of realism, since having a con-stant value of reflectivity across the entiresurface is overwhelming and tends to look really CG

7 Select the top key on the gradient ramp that is automatically createdwhen you create a gradient layer Change its Value to 45%

8 Now create a new key at the bottom of the gradient at 90.0 (you cantweak this with the Parameter value to be sure) Change the Value ofthis key to 5.0%

This gradient nowmakes the surface 5%

reflective in areas that aredirectly facing the viewer(in other words, the areasthat are directly perpendic-ular to our line of vision),and gradually increases to

a value of 45% reflectivity

on areas of the surface thatslope out of our line ofvision, this being 90º

We are now finishedwith setting up the basicparameters of the greenpaint However, the paintstill doesn’t look quiteright yet

407

· · · Metal SurfacesQuick Tutorials

Figure 20-3

Figure 20-4

Trang 17

9 Go to the Shaders tab and load the BRDF

shader

10 Double-click on the shader’s name to open

its panel Set up the Layer 1 tab with the

This creates a fairly strong yet broad

specu-lar highlight on the surface This sort of

highlight is suitable for a dull metal

Now we need to create

another specular layer on top of

this one to create the effect of a

coating on the surface that has

dif-ferent specular properties

11 Go to the Layer 2 tab Set up the

values on this tab as follows:

Specular Reflection 2: Regular

Color: 255, 255, 255

Specular: 150%

Glossiness: 80%

This creates a two-layer effect in

the specularity of the surface The

first layer we created was suitable

for metal, while the second layer

acts like a lacquer that has been

applied to the metal, giving it a

nice shine and coating

The preview pane in your

Surface Editor should now be

showing a rather reflective,

shiny-coated-looking material

Now it is time to create the

cream colored paint Since we

have already set up a good-looking paint for

the green, all we need to do is copy those

settings into this surface and change the

Trang 18

12 Select the green car paint surface,

right-click on it, and select Copy Selectthe cream car paint surface, right-click,and select Paste Then change the creampaint surface RGB values to 240, 238, 198

13 Check the Double Sided option for the

cream paint; otherwise we’ll be able to seethrough the roof of the car!

Now let’s set up the chrome surface

Chrome is highly reflective, and for the poses of this tutorial, we’ll be making it lookbrand spanking new The chrome surface isapplied to the bumper, the front grill, themirrors, and all the metal trim on the vehi-cle’s body

pur-14 Select the chrome surface in the Surface

Editor list and set up the basic parameters

Specularity: 80% (Specularity is generallyunnecessary when using a lot of reflection,but I usually assign a value out of habit, andfrankly it can’t hurt to have a bit of

specularity anyway.)Glossiness: 60%

Reflection: Leave at 0% for now, as we willalso be creating a gradient here again

Leave all the other values as they are

15 Go to the Advanced tab and give the Color

Highlights a value of 30% Once again, this

is to prevent the surface from becomingoverly bright when we add reflection to it

16 Go back to the Basic panel, and open the

Texture Editor for the Reflection attribute

by clicking the “T” button Change thedefault layer created to a gradient layer bychanging the Layer Type from Image to Gradient Once again, this will

409

· · · Metal SurfacesQuick Tutorials

Figure 20-9

Figure 20-10

Trang 19

be an incidence-based gradient, so select Incidence Angle as the Input

Parameter for the gradient

17 Select the top key that

has been created on the

gradient ramp, and

change its Value to 60%

Create a key at the

bot-tom of the gradient ramp

now, at 90.0, and change

that key’s Value to 20%

18 Now render! As you can

see, I had already set up

the surfaces for the other

parts of the car Feel free

to experiment with the

model, set up your own

surface ideas, and make

something really cool out

of it

Of course this car looks very, very new with perfect chrome reflections

and such, so it doesn’t have much realism at all, but this was just a simple

tutorial to demonstrate shading with reflections to get metallic surfaces

started

Later on in this chapter we’ll be looking at rusty metal, so I would

rec-ommend that you have some fun with this car and rust it up a whole lot once

you’re more comfortable with the techniques

Chapter 20 · · · ·

Part 7

Figure 20-11

Figure 20-12

Trang 20

Metal Tutorial 2: Desert Eagle Pistol

Now that you are comfortable with basic metal shading, let’s move ontosomething a little more involved — creating metal textures and applyingthem to your model

The model we will be using is a Desert Eagle pistol, also modeled byBrendon Goosen Unlike the previous tutorial, where we made a nice, new-looking surface, we’ll be scratching this surface up and learning how tomake mottled, noisy reflections and specularity for steel

1 Open Modeler and load the 7.1-desert_eagle.lwo model from the panion CD-ROM

com-2 Go to your Top view viewport where you can see the pistol from above.Zoom in so that the pistol fills the viewport rather snuggly, and then take

a screen shot of it by pressing Prt Sc (on a PC) Close Modeler

411

· · · Metal SurfacesQuick Tutorials

Figure 20-13

Trang 21

3 Now go into your favorite paint application Create a new file, which

should automatically be the size of your screen (your current screen

res-olution in pixels) When the new document has been created, simply

paste the image from your computer’s clipboard into the document

4 Now crop this image so the pistol fills the image on all sides Basically,

find the topmost and lowest points of the model, and the farthest right

and farthest left parts, and crop the image to that, so that there is no

sur-rounding space around the pistol This is so that when we finish creating

the textures, we can use the Automatic Sizing option to perfectly fit the

Chapter 20 · · · ·

Part 7Figure 20-14

Figure 20-15

Trang 22

5 Before you do anything else, resize this image up so that we have moreroom to work Size the image up to a minimum of 2000 pixels wide Ifyou cropped your image to the pistol size correctly, you should have asize that is close to 2000 x 1050 pixels.

6 If your paint program has the option, lock the layer with the screen shot.This is to avoid accidentally painting onto it In Adobe Photoshop youlock a layer by clicking on the tiny little lock icon in the Layers panelwhere it says “Lock.”

7 Create a new layer on top of the layer with the screen shot Paint theentire area of the pistol with the RGB color 37, 42, 45 This is a darkgray-blue color

What really helps me position details when I am painting textures is tocreate a copy of the screen shot (or UV map shot) and place it above what I

am doing so that I can see all the contours of the model, as shown in Figure20-18

413

· · · Metal SurfacesQuick Tutorials

Figure 20-16

Figure 20-17

Trang 23

I copy the layer with the screen shot and increase its contrast until it is

pure black and white

I then change the blending mode of this layer to Screen This makes all

the black areas of the layer transparent I keep this layer on top of all the

other layers in my Photoshop file, on a low opacity, so that I can always see

what shapes I am painting onto

8 Now comes the detailing part Take your paintbrush, set it to black, and

on a medium to low opacity with a soft edge, paint darker areas on the

Chapter 20 · · · ·

Part 7Figure 20-18

Figure 20-19

Trang 24

gun surface, especially following the contours of the different pieces thatmake up the gun Don’t overdo it though; just build up the darker tonescarefully and subtly Then use a white paintbrush, also on a low opacitywith a soft edge, and gently build up a few lighter areas here and there.Figure 20-20 shows the areas that I darkened and lightened — pleasenote that I have brightened the image solely to make it clearer to you what Ihave done, and that my texture is not mysteriously a whole lot lighter thanyours.

This is simply to create some color variation If you look at the contours

of the model, you’ll see that I darkened areas at the edges of pieces and thearea around the plastic grip, as these are areas that often tend to becomeworn or gather grime Steel tends to become blackish in areas from the oilfrom people’s fingers over a long period of time So these darker areas cre-ate that effect The lighter areas simply offset the darker areas here andthere, solely for the purpose of variation

The important thing is to do this carefully Don’t go and simply paint bigsplotches of dark and light tones Build up your tonal variations subtly andcautiously

9 Create a new layer Fill this layer with

the same color that you initially paintedthe gun Now create some noise InAdobe Photoshop you can do this bygoing to Filter>Noise>Add Noise Setthe Amount to 100%, leave the Distribu-tion on Gaussian, and make sure thatthe noise is Monochromatic

415

· · · Metal SurfacesQuick Tutorials

Figure 20-20

Figure 20-21

Trang 25

10 Now add Motion Blur to the noise Go to

Filter>Blur>Motion Blur, set the Distance

to 250 pixels, and leave the Angle at 0

Your layer should now look like Figure

20-23 I have cropped my layer to the shape

of the pistol, although it isn’t strictly

neces-sary I have also increased the contrast in this

image so that the detail is clearer for you to

see

11 Change the Blending Mode of this layer to Darken Doing this now

blends the brushed layer with the layer beneath it, so that it just adds a

hint of detail to the color map so far

12 Time for some scratches Create a new layer and set the color of your

paintbrush to a light gray, around 140, 140, 140 Make your paintbrush

size 1 pixel Now paint some scratches around the barrel, the tip of the

muzzle, and around the trigger These are areas that are likely to become

scratched since they come into contact the most with other things such

as the owner’s hand and the holster You can paint the scratches fairly

roughly, in a criss-crossing pattern

Figure 20-24 shows a close-up of the scratches I created around the

Ngày đăng: 13/08/2014, 21:20

TỪ KHÓA LIÊN QUAN