Difference between revisions of "Arcane University:Hiding Texture Seams with Blended Decals"

The Beyond Skyrim Wiki — Hosted by UESP
Jump to: navigation, search
(Gallery)
(update)
Line 4: Line 4:
 
3D models are UV unwrapped into two dimensions in order for textures to be applied to them. At the seams where these models are unwrapped, there will also be seams in the texture that are plainly visible in-game. There is, however, a way to mask these seams by creating a blended transition between the two surrounding textures. This tutorial will show how to do this using decals.
 
3D models are UV unwrapped into two dimensions in order for textures to be applied to them. At the seams where these models are unwrapped, there will also be seams in the texture that are plainly visible in-game. There is, however, a way to mask these seams by creating a blended transition between the two surrounding textures. This tutorial will show how to do this using decals.
  
* Have your mesh UV unwrapped and textured. Observe that there are seams.
+
One your mesh is UV unwrapped and textured, select the faces comprising the area where a blended transition should happen. Often this will be a "skirt", i.e. a strip of faces running along the seam. The skirt mesh might cover only one of the materials on one side of the seam, or it can cover the seam and thus parts of both materials. In other cases where one of the textures is only on a small amount of geometry (like the end cap of a wooden beam), the blending zone may cover all of this texture's faces.
* Select the faces comprising the area where a blended transition should happen.
+
 
** Often this will be a "skirt", i.e. a strip of faces running along the seam. The skirt mesh might cover only one of the materials on one side of the seam, or it can cover the seam and thus parts of both materials.
+
Duplicate these faces (shift+D in blender) and break into a new mesh (P, selection). If the mesh covers only one of the materials (either as a skirt mesh or as fully duplicated geometry), UV it so it is a continuation of the ''other'' material. If it's a skirt mesh that overlaps both materials, then the UV doesn't matter.
** In other cases where one of the textures is only on a small amount of geometry (like the end cap of a wooden beam), the blending zone may cover all of this texture's faces.
+
 
* Duplicate these faces (shift+D in blender) and break into a new mesh (P, selection). If the mesh covers only one of the materials (either as a skirt mesh or as fully duplicated geometry), UV it so it is a continuation of the ''other'' material. If it's a skirt mesh that overlaps both materials, then the UV doesn't matter.
+
Add a vertex color attribute the new mesh, if it doesn't already have one. In the alpha channel, paint all the outer vertices black. These will become the more transparent vertices. The vertices with high alpha values (i.e. more white) will be more opaque.
* Add two vertex color layers on the new mesh.
+
 
* In the second vertex color layer that you created, paint all the outer vertices black.
+
On a skirt mesh that straddles two materials, this will be the vertices on both outer edges straddling the strip of faces. In this case, be sure there are intermediate vertices that are white, or the whole thing will be invisible. If the mesh covers all the geometry of one of the textures, then only the edge going over the seam needs to be painted black.
** On a skirt mesh that covers only one of the materials, this will be all the vertices along the edge that isn't the seam. On a skirt mesh that covers the seam and parts of both materials, this will be the vertices on both outer edges straddling the strip of faces.
+
 
** If the mesh covers all the geometry of one of the textures, then there will be only one edge that needs to be painted black, namely the seam.
+
Add the following flags to the shader property, in addition to the usual shader flags.
* Apply the following properties on the blending mesh (in order of appearance in Blender 2.79)
+
* Decal
** cast shadows
+
* Dynamic_Decal
** decal
+
* Vertex_Alpha
** dynamic decal
+
* Vertex_Colors
** own emit
+
 
** receive shadows
+
In Nifskope, add a NiAlphaProperty to the Trishape with vertex alpha. Turn "Enable Blending" on and "Enable Testing" off.
** remappable textures
+
** specular
+
** vertex alpha
+
** z buffer test
+
** env map light fade
+
** vertex colors
+
** z buffer write
+
* In nifskope, apply a NiAlphaProperty in your blending node. Set "Enable Blending" and unset "Enable Testing".
+
* The result will be a semi-blended decal, and no seams.
+
  
 
== Gallery ==
 
== Gallery ==

Revision as of 19:22, 18 September 2023

< Arcane University:3D Art
Tutorial for the specific case of texturing end caps of wooden beams. The recommendation to set the threshold to 64 can be disregarded.

3D models are UV unwrapped into two dimensions in order for textures to be applied to them. At the seams where these models are unwrapped, there will also be seams in the texture that are plainly visible in-game. There is, however, a way to mask these seams by creating a blended transition between the two surrounding textures. This tutorial will show how to do this using decals.

One your mesh is UV unwrapped and textured, select the faces comprising the area where a blended transition should happen. Often this will be a "skirt", i.e. a strip of faces running along the seam. The skirt mesh might cover only one of the materials on one side of the seam, or it can cover the seam and thus parts of both materials. In other cases where one of the textures is only on a small amount of geometry (like the end cap of a wooden beam), the blending zone may cover all of this texture's faces.

Duplicate these faces (shift+D in blender) and break into a new mesh (P, selection). If the mesh covers only one of the materials (either as a skirt mesh or as fully duplicated geometry), UV it so it is a continuation of the other material. If it's a skirt mesh that overlaps both materials, then the UV doesn't matter.

Add a vertex color attribute the new mesh, if it doesn't already have one. In the alpha channel, paint all the outer vertices black. These will become the more transparent vertices. The vertices with high alpha values (i.e. more white) will be more opaque.

On a skirt mesh that straddles two materials, this will be the vertices on both outer edges straddling the strip of faces. In this case, be sure there are intermediate vertices that are white, or the whole thing will be invisible. If the mesh covers all the geometry of one of the textures, then only the edge going over the seam needs to be painted black.

Add the following flags to the shader property, in addition to the usual shader flags.

  • Decal
  • Dynamic_Decal
  • Vertex_Alpha
  • Vertex_Colors

In Nifskope, add a NiAlphaProperty to the Trishape with vertex alpha. Turn "Enable Blending" on and "Enable Testing" off.

Gallery