This tutorial is designed to tech you how to use the texture editor to make and apply custom textures. I will start with the assumption that you've never used texture editor maps before. If you think I'm going too slow, please feel free to skip through the first few examples -- you can always come back.
The texture editor is used to generate and work with procedural textures. The map is never converted to an image map. These textures remain mathematically defined, with very high precision. This means that if you make a small test rendering that you like, you can scale it up to print resolution without any pixellizing of the surface. It also means that at any point in the design process, you can change some of the parameter values without needing to regenerate the texture map.
Another benefit to procedural textures lies in the fact that you can animate any number of parameters independantly, and render that animated texture at any resolution. (The number of special effects you can create this way is unlimited.)
Two dimensional maps use what's called the UV coordinate system of the individual objects to perform their mapping. This coordinate system will produce seams where surfaces meet, because each surface has its own UV system. (ie: a UV map on a cube will not wrap around the edges and continue onto the next face.)
Three dimensional maps use the object's local XYZ coordinate system for their mapping. This means that the maps can be considered solid and pass through the objects regardless of where the edges lie. They will continue around edges.
The first type is the basic, or pattern map. These maps will only create a basic pattern for you to begin working with.
The other type is the modifier map. Modifier maps can be used to modify basic maps, or other modifier maps. They may be stacked as many layers deep as you need to acheive the effect you want.
They are very easy to learn to use, so let's get started!
Select 'files' from under the texture preview window.
Choose 'cube,' and press confirm. In a second or two you will see a cube appear in the texture preview.
Now, to browse the maps that are available, click the 'maps' button on the left-hand side. You are presented with a very long list of maps.
Go ahead and click once on some of them and watch the preview window. If the map you've chosen is a basic pattern map, you will see it displayed. If it's not, you will see a description of how it's used. Those descriptions will make more sense soon.
Once you've browsed the list for a little while, double click on the map called, '2d_value_u.' This map shows you a fade along the U axis of the surface. If you're ever confused as to which way the U and V axes lie on a model, you can check it this way.
When you've double clicked, the map will appear in your workspace, and disappear from the preview. Now, to look at it you need to select it explicitly. You do that by placing the cursor inside the blue bar at the top of it and clicking with the left mouse button while holding down the 'shift' key. To explicitly deselect it, hold down 'shift', and press the left mouse button.
Now, you need to insert it into a texture so that you can apply it to your cube. Select the 'textures' button on the left.
The most basic texture is the diffuse texture. Double click it, and it will come into your work space. If it covers your map, just drag it down the page from by clicking in the turquoise bar and sliding it down. If you want to move it to the other column, press the arrow button in the turquoise bar.
Now, there are a few things that you will notice that look different about these two boxes. The bars are different colors, and they have different symbols in the left hand corners. These symbols represent a plug and a socket of two different types. The round one is map plug, and the triangular one is a texture plug.
To plug the map into this texture, you need to select its plug, and then select the socket of the parameter where you wish it to go. Click on the map plug in the 2d_value_u map, and plug it into the diffuse_value parameter. Now, you'll see what your final texture looks like in the preview window. Let's apply it to your cube and render it.
Select 'general' from the left column. Now you see the tags of your model, and some things that you can do with them. You should select 'cube.' You will notice that when you select it, the current texture (pure white) is displayed in the preview. This helps you to be sure which tag you're applying your texture to, and which texture you're replacing. Now, select 'put texture on tag.' That's it. It's applied to your cube.
Now, to render it, you can select 'render window' on the right hand side of the interface. This will render the scene from camera 2. To stop the rendering process, press "!" just like in the main interface.
There you go! You've applied and rendered a custom-made texture. Go ahead and close the render window to make more room for the rest of your work.
First, go ahead and delete the texture that you made a minute ago. Select the 'menu' button from the texture bar and choose 'remove'
Select 'maps' and find the 2d_value_checker map. This will be our new pattern map.
Now, select 2d_value_transform_map. This will be the modifier.
Now, plug the checker map into the value_map parameter of the transform_map.
Shift-click in the blue bar of 2d_value_transform_map to turn it active.
Slide the sliders. What could be easier?
Now, let's say that you want the squares to remain square instead of stretching into rectangles. Click the arrow on the right hand side of the scale_v parameter. It will turn into a simple value parameter. You can now click in the box with the scale_v value, and type 'scale_u' By typing that, you are telling it to read the value from scale_u and insert it into scale_v. When those two are the same, the map will remain square when you slide the scale_u slider. The ability to define relationships between different parameters is very powerful.
At this point, we can still change the basic way this map looks. Find '2d_value_brick' in the list. Click on it once to see a preview of it. Now, while you can see the preview of the bricks, click the socket symbol of the value_map parameter. This is shortcut to select a map and plug it into a parameter. You don't need it to be in your workspace to plug it in.
When it's plugged in, you see that this map has some parameters to control it. To make sure that you can see the results clearly, set scale_u to 1 and slide the brick_width and brick_blur parameters to see their effects.
How are you doing? Feel good so far? Now you're going to do something a little more useful, but don't remove the map you just made.
Double-click color_from_value in the maps list. As the name implies, it is used to create a color map from a value map.
Now, select the plug from the corner of the 2d_value_transform_map from the last tutorial and plug it into the value_map parameter of the color_from_value map.
Then, turn it active. (Shift click in the blue bar.) At this point, it still looks like a value map. If, however, you slide the RGB sliders from color_A and color_B, you will see a BIG difference. Now, it's in color. Notice also, that you can also still slide the slider from 2d_value_transform_map, and from 2d_vale_brick itself. You have MANY parameters to edit now to customize this brick texture.
If you'd like to apply and render it, go ahead. Select 'diffuse' from the textures list, and plug this map into the 'diffuse_color' parameter. Apply it to an object from the general menu and render it if you'd like.
The steps for this are very simple: we start with a checker map. We then take the squares that are white, and make them into horizontal stripes. We make the black squares vertical stripes, and the result looks like fabric.
Reset the texture editor, and select a plane top preview on.
select the 2d_value_checker map.
Now we need to create the horizontal stripes. We do this with the value_stripe_map. Pull it up and plug 2d_value_v into the stripe_map parameter.
Then, change the stripe number to 6, just for an example.
Bring in another value_stripe_map and plug 2d_value_u into it to make vertical stripes.
To combine all of these parts together you need to say, "If the checker value is less than 0.5, make the stripes vertical. Otherwise, make them horizontal."
We do that with a value_condition. Pull it up.
Now, you see three parameters. value_map is for the map to be evaluated. threshold is the separating value. value_map1 and value_map2 are the lower and upper maps to substitute. By default, these maps are just the values zero and one.
Plug 2d_value_checker into the value_map parameter of value_condition. Plug the stripe map from 2d_value_u into value_map1, and plug the stripe map from 2d_value_v into value_map2.
Now go ahead and slide the two strip_num sliders. Don't you wish that they worked together? You can set it up so that the number of stripes in each direction remains the same when you change one slider. We already did this before, with the transform_map in Tutorial #2. Click on the arrow next to stripe_num1 and turn it into a value. Type 'stripe_num' into that number field, and you will have linked them together. When you slide the stripe_num slider, both values will change.
Now, you probably want the ability to scale this texture down. You learned this in Tutorial #2 as well, but let's just do it one more time. After this, I'll assume that you know how to do it. Select 2d_value_transform_map from the list, and plug the value_condition map into its value_map parameter. Now, link scale_v to scale_u so that it remains square and reduces the number of parameters the you need to adjust.
Now, before you save this texture, you will probably want to make it look a little nicer. You can get rid of the parameters that are not adjustable by collapsing them. To the far left of each parameter, you'll see an empty box. If you click in the box, you select that parameter to collapse. Go ahead and set the following parameters to collapse: value_map, value_map3, threshold, value_map1, value_map2, stripe_map, stripe_num1, stripe_map1. None of these parameters have any values that you really need to change.
There are two symbols in the upper right hand corner of the texture. The square one on the left is used to expand a collapsed texture, and the other one is used to collapse a texture. Select the collapse symbol, and watch your new texture collapse.
You'l notice that the scale_u parameter name doesn't make much sense without a corresponding scale_v visible. You can rename it to 'scale' by selecting rename from the scale_u parameter menu. You find this menu by clicking in the parameter name.
Now, you've got a map that you can actually use for future projects and adjust when you need. Congratulations!
Go ahead and save it by selecting 'save as' from the menu for this map. Give it whatever name you like, and look at the list of saved maps when you're finished. It should be right there for you.
Set your preview to 'plane,' if it isn't that way already.
Since we need to link two unrelated map types together, we will need to actually start by laying the groundwork for a combined texture. We will make a texture that contains both a bump texture and a diffuse texture.
Select the 'textures' menu, and double-click the bump texture. Now, click once in diffuse, and connect it to the bump map using the triangular socket in the upper left corner of the bump texture.
Now, we need to make a parameter that will hold the value map to convert. Select 'add parameter' from the menu of the texture. Let's name it 'map'
For the value_map that 'map' will represent, select 2d_value_brick, and plug it into the map parameter.
To convert a 2d value map into a bump map, you will use 2d_bump_from_height. Select it, and plug into the bump_map parameter. It has a height_map parameter, which you want to be your brick value map. Click in the height_map parameter and type 'map' You will then see a 3d representation of your bricks.
Now, you need to add color to them. Select color_from_value from the maps list and plug it into diffuse_color. For the new value_map parameter, type 'map' At this point, your map still looks black and white until you slide the RGB sliders in color_A and color_B. Make the bricks red, and the mortar white with the sliders. (For red, R=1, G=0, B=0. For white, all three equal one.)
To take a look at the effect that this gives, select 'light' from under the preview window, and move the light around. You'll see the texture responding as if this surface was actually 3d.
This map still doesn't look quite right -- it's too even. I would probably only use it if I would scale it down very small. To correct the evennes, we can add chaos. Select 2d_value_add_chaos from the list, and bring it onto your workspace. Select 2d_value_brick from the list, and plug it into the value_map parameter of add_chaos. Make this map active. (Shift-click in the bar.) You will see a value map that is not very regular.
Slide the chaos slider and take a look at the effect that it gives you. (I like a chaos amount of 0.02, and a chaos scale of .02 as well., but feel free choose whatever values you like.)
To replace the original brick map, just plug this map into the map parameter using the round plug in the corner of it. You will notice that the preview and interface are very slow. You have a certain amount of control over this using the 'loop size' slider in the options menu. A lower value will increase the performance of the interface, but slow down rendering, while a high value will make the interface very slow. There is only so much that you can do to when you've made a texture this complex. Processors still have a limited speed. This is one of the most complex maps that you will make in this editor. I made it difficult to be sure that you had some experience with all of these concepts when you strike out on your own, but it is usually never necessary to make maps this tough yourself. HELPHELPHELPHELPHELPHELPHELPHELPHELPHELPHELPHELPHELPHELPHELPHELPHELP
In this example, you'll make your own spiral transformation that you can apply to any map you like. Click on 2d_value_concentric once to see a preview of it while I explain how this concept works.
What you see is a circular value fade from zero in the center to one at the corners. You are familiar with the rotation parameter in 2d_value_transform. What we want to do is say, "Multiply the rotation value by 2d_value_concentric to make the texture rotate more as it moves away from the center."
How do we do that? It's very simple.
Bring in 2d_value_transform_map. Plug value_multiply into the rotation parameter. (We do this so that we have control over the amount of spiral that we get.) Now, plug 2d_value_concentric into the value_A parameter. Click on the arrow on the right hand side of the value_B parameter to turn it into a slider.
Plug a 2d_value_checker map into the value_map parameter so we have something to look at.
Now, turn the map active and slide the value_B slider. Pretty cool, huh?
Let's just clean it up, and save it so that it's ready to use later. Collapse the rotation and value_A parameters. Change the name value_B to spiral_amount. That's it! Go ahead and save it, and remember that you can plug any 2d value map that you'd like into the value_map parameter. This makes it a very useful general map that you have just added to your library of tools.
To bring in an image, you must first use the converter to create a gig map from the original image.
To just apply you image to all sides of a cube, select 'cube' from the files menu. Select your image from the images menu. Be sure that, in this case, that you select 'image as color map.'
Now, load a diffuse texture and plug the color map into diffuse_color.
First, let's make a bottle, and make a preview object from it.
Go into the main 3DGO interface and create a ff rotation in the shape of a bottle. In order to know how it will appear in the preview, change to page size to a square shape (The same number of pixels horizontally and vertically.) Size up your bottle until it basically fills the camera 2 window. When you can see the surface from the angle that you like, select 'render texted' from the render window. Give it the name 'bottle.' Go back into the texture editor when you're done.
Now, select 'bottle' from the files menu. Your bottle will show up in the preview window.
If you pull up your color image, and shift-click to set it active, you can see why you need to do a projection -- the image is stretched out in some places, and shrunk in others. This is because of the way that the UV surface is created. Because of this effect, we need to project our image in a constant fashion. For that we will use a projection map.
Load in 2d_color_transform_map. Plug color_add into the color_map parameter. You do this because you need to add two maps together -- the image map and the background map. Plug color_multiply_by_value into color_A, and color_B. Now, you have two pairs of color and value maps. Plug 2d_value_mask into the first value map. Type '1-value_map' into the second value map. Now, when the first value map is zero, the second will be one, and vice versa. This means that what is outside the mask is background, while inside the mask is image. Plug your image map into the first color map. Click the arrow to the right of the second color map to turn it to sliders. (You could also plug in another map.) Now you have a separate image map and packground parameter for your cylindrical projection, and hopefully you've gotten an idea of how to use these value maps a little better.