Relieve de mapa

From Valve Developer Community
< Es
Jump to navigation Jump to search
English (en)Español (es)Français (fr)Português do Brasil (pt-br)中文 (zh)Translate (Translate)


A material's albedo(en) (left) compared to its bump map.
The above material in-game.

Las texturas de relieve de mapa, también llamado por su nombre en inglés bump maps, se utilizan para simular detalles tridimensionales en una superficie plana, manipulando su iluminación.

Note.pngNota:Los objetos estáticos con relieve no pueden recibir manipulaciones de iluminación, excepto en Counter-Strike: Global Offensive.
Note.pngNota:Los relieves no se pueden usar en texturas adhesivas, excepto en Counter-Strike: Global Offensive. Para que esto funcione, la superficie sobre la que esté esa textura adhesiva debe estar también con un relieve de mapa.

Formato

Cada píxel de un relieve contiene las coordenadas (x, y, z) que definen un vector(en) normal(en)izado.

A causa de esto cada canal de color del relieve tiene una misión:

Rojo
Iluminación horizontal (eje X)
  • 0 = izquierda
  • 128 = frente
  • 255 = derecha
Verde
Iluminación vertical (eje Y)
  • 0 = arriba
  • 128 = frente
  • 255 = abajo
Azul
Altura (eje Z).
  • 0 = frente de «entrada» de la textura para el espectador. Este valor es «erróneo». Todo lo que esté por debajo de 128 significa que esta fuera de la vista del jugador, lo cual no es posible.
  • 128 = profundidad máxima para recibir luz dinámica. No debe estar por debajo de 128.
  • 255 = frente de «salida» de la textura para el espectador.
Note.pngNota:Un relieve de mapa plano debería ser del orden de [128, 128, 255]. dev/flat_normal es un relieve de mapa plano presente en todos los juegos.

Los tres canales representan un vector normal para cada píxel que representa la dirección en la que apunta en un espacio 3D. Esto permite generar sombras y luces sobre superficies planas o detallar más un modelo 3D.

El recurso del relieve de mapa es poco útil en superficies realmente planas, como una capa de cemento o metal, pero incluso en una superficie de cemento suave se puede aplicar la profundidad suficiente para hacer que merezca la pena.

Normalmap.gif

Creación

Un relieve de mapa debe renderizarse en un espacio tangente y usar direcciones de vector X+ Y- Z+.

Note.pngNota:Básicamente, hay dos conjuntos de normas para los mapas normales: DirectX(en) y OpenGL(en). La interpretación del canal verde esta opuesta entre ellos. Source(en) usa la anterior interpretación. Por lo tanto, el canal verde debe invertirse, según el software utilizado para su creación.

Programas

Relieves de mapa creados en distintos programas.

Varios programas pueden automatizar la creación de relieves de mapa, ya sea por análisis de imagen o geometría 3D.

2D
Photoshop o Paint Shop Pro(en)
Substance Designer
GIMP(en)
nDo
Filter Forge
3D
XSI(en)
ZBrush(en)
Lightwave(en)
3ds Max(en)
Maya(en)
Blender(en)
NVIDIA Melody
Cinema 4D
NormalMapper(en)
xNormal
Otros
NormalMap Online: Una web para generar relieves de mapa en línea.
SSBump Generator 5.3: A pesar del nombre, sirve para generar relieves de mapa, no solo sombras(en).
Substance B2M3: Llamado anteriormente BitMap2Material.
InsaneBump: Creado específicamente para ser una alternativa gratis a «CrazyBump» (puede ser incompatible con antivirus)

Conversión

En VTFEdit(en)

Al convertir tu textura:

  1. Elige tu formato de imagen. Los formatos sin comprimir, como BGR888, tienen mayor calidad que los comprimidos como DXT1, pero ocupan mucho más.
  2. Marca la casilla «Normal map» en la lista de etiquetas de textura tras completar la importación.
Tip.pngConsejo:VTFEdit puede editar y generar automáticamente relieves de mapa. Véase la parte inferior derecha de la pantalla de importación.

En Vtex(en)

  1. Guarda tu mapa normal como TGA(en). Ponle un nombre que acabe en _normal. El _normal al final del nombre afectará a cómo lo convierte Vtex(en). Con el ejemplo de la pared de ladrillos, llamaremos al archivo pared_ladrillos_normal.tga.
  2. Añade nocompress 1 y normal 1 a <archivo de la textura>.txt en la misma carpeta que está la textura y compila.

Implementación

Véase $bumpmap.

Véase también