Texturing in DarkRadiant: Difference between revisions
m Added Paste Natural |
|||
Line 46: | Line 46: | ||
[http://img183.imageshack.us/img183/1673/complexpatchnaturalik5.jpg http://img183.imageshack.us/img183/1673/complexpatchnaturalik5.th.jpg] | [http://img183.imageshack.us/img183/1673/complexpatchnaturalik5.jpg http://img183.imageshack.us/img183/1673/complexpatchnaturalik5.th.jpg] | ||
What happened: the patch is virtually straightened out by the algorithm before the texture is projected. It's ensured that the patch is virtually sharing the same plane as the brush face with the vertex distances being preserved (so that no stretching occurs). This is also working with patches that are perpendicular to the brush face. Just experiment a bit and it will be easy to see how it works. (This is the most sophisticated texturing method, it was quite some headache to set it up, believe me) :) | What happened is the following: the patch is virtually straightened out by the algorithm before the texture is projected. It's ensured that the patch is virtually sharing the same plane as the brush face with the vertex distances being preserved (so that no stretching occurs). This is also working with patches that are perpendicular to the brush face. Just experiment a bit and it will be easy to see how it works. (This is the most sophisticated texturing method, it was quite some headache to set it up, believe me) :) | ||
The command is available via '''Shift-MMB''' and Menu > Edit > Paste Shader (Natural) | The command is available via '''Shift-MMB''' and Menu > Edit > Paste Shader (Natural) |
Revision as of 22:34, 29 March 2007
In DarkRadiant there are quite some texturing tools available. In order to yield the best results, it's of course useful to know how these tools work, which is what this document is trying to cover.
Brushes vs. Patches
There are some texturing commands that work differently for brushes and patches, because of the way these primitives store their texture information. So beware that using the same command on a brush doesn't always yield the same result when used on patches, although DarkRadiant tries to do its best. Read here to gain some insight about how patches and brushes are technically textured.
Natural
Natural for one works differently for patches as for brushes. Basically it tries to apply an undistorted texture with the default scale on the target. This is of course more easily accomplished for brushes (because their textures are always undistorted) than for patches.
Texture Copy & Paste
These are the most powerful texturing tools in DarkRadiant. There are several of them available, all can be accessed via the Middle Mouse Button (MMB):
- MMB: Copy Texture to Clipboard
- Ctrl-MMB: Project Texture from Clipboard onto Target
- Shift-MMB: Paste Texture Natural (undistorted and seamless) onto Target
- Alt-MMB: Copy Texture Coordinates (Patches only, must have same dimensions)
See below for a short introduction of these copy & paste operations.
Copy Texture
This command is available via the MMB (click into the cam view) or the Menu > Edit > Copy Shader. When using the MMB to select a texture, the shader of the clicked object is loaded into the ShaderClipboard. Once you picked your texture the name of the texture appears in the status bar and it's highlighted in the Media and the Texture Browser.
Paste Texture (Projected)
This is useful to texture patch caps or brush faces that are adjacent to each other. It can be accessed via Ctrl-MMB and the Menu > Edit > Paste Shader command. Let's have a look at the following example:
The left shot shows two brushes and a patch that has been created with the "cap selection" command. The rightmost brush is considered the "source" brush, so we copy its shader by middle-clicking it. The shader is now in the clipboard.
Now hold down the Ctrl modifier and click on the other three objects with the middle mouse button. The texture is pasted onto the target objects so that the transition between the objects is seamless - technically spoken this is a projection. Imagine that you project the texture using a video projector, it's more or less the same mechanism.
Note: It's important to note that this only works from brushes to patches, as only brush faces can be used to project textures. Patches have no uniform scale and rotation and can't be used to retrieve a plane to project the objects onto.
Paste Texture (Natural)
Sometimes it's not enough to project a texture from a brush face onto other objects, if the targets are bent and their normals are not facing into a similar direction as the source face normal does. The screenshot should illustrate the problem:
This is the starting situation: We have a brush at the right (the "source brush") and the target patch on the left, which is heavily bent and it's definitely not lying in the same plane as the brush face. Let's try and project (Ctrl-MMB) the shader from the brush face to the patch:
As easily observable, the patch texture is distorted because of the projection. Some patch areas are nearly perpendicular to the brush face we're copying from and therefore the projection does not work. A small section of the source texture is projected onto a large section of the patch, hence the ugly stretching.
The Paste Natural command (Shift-MMB) was written to address this issue (just Shift-MMB onto the target, assuming that you still have the source shader from the face in the ShaderClipboard):
What happened is the following: the patch is virtually straightened out by the algorithm before the texture is projected. It's ensured that the patch is virtually sharing the same plane as the brush face with the vertex distances being preserved (so that no stretching occurs). This is also working with patches that are perpendicular to the brush face. Just experiment a bit and it will be easy to see how it works. (This is the most sophisticated texturing method, it was quite some headache to set it up, believe me) :)
The command is available via Shift-MMB and Menu > Edit > Paste Shader (Natural)