Attention: Here be dragons

This is the latest (unstable) version of this documentation, which may document features not available in or compatible with released stable versions of Godot.

Material estándar 3D y material ORM 3D

Introducción

StandardMaterial3D and ORMMaterial3D (Occlusion, Roughness, Metallic) are default 3D materials that aim to provide most of the features artists look for in a material, without the need for writing shader code. However, they can be converted to shader code if additional functionality is needed.

Este tutorial explica los parámetros presentes en ambos materiales.

There are 4 ways to add these materials to an object. A material can be added in the Material property of the mesh. It can be added in the Material property of the node using the mesh (such as a MeshInstance3D node), the Material Override property of the node using the mesh, and the Material Overlay.

../../_images/add_material.webp

Si se añade un material a la propia malla, cada vez que se utilice esa malla tendrá ese material. Si añade un material al nodo usando la malla, el material sólo será usado por ese nodo, también anulará la propiedad de material de la malla. Si se añade un material en la propiedad Material Override del nodo, sólo será usado por ese nodo. También anulará la propiedad material regular del nodo y la propiedad material de la malla.

La propiedad Material Overlay permite renderizar un material sobre el que actualmente se está utilizando en el malla. Por ejemplo, esto se puede utilizar para aplicar un efecto de escudo transparente en una malla.

BaseMaterial 3D settings

StandardMaterial3D tiene muchas configuraciones que determinan el aspecto de un material. Todas ellas se encuentran en la categoría BaseMaterial3D

../../_images/spatial_material1.webp

Los materiales ORM son casi exactamente iguales con una diferencia: en lugar de configuraciones y texturas separadas para oclusión, rugosidad y metalizado, hay una única textura ORM. Los diferentes canales de color de esa textura se utilizan para cada parámetro. Programas como Substance Painter y Armor Paint te darán la opción de exportar en este formato; para estos dos programas, es con el ajuste preestablecido de exportación para Unreal Engine, que también utiliza texturas ORM.

Transparencia

De manera predeterminada, los materiales en Godot son opacos. Esto permite renderizarlos rápidamente, pero significa que no se puede ver a través del material incluso si se usa una textura transparente en la propiedad Albedo > Textura (o se establece Albedo > Color en un color transparente).

Para poder ver a través de un material, este debe ser transparente. Godot ofrece varios modos de transparencia:

  • Deshabilitado: El material es opaco. Es el modo más rápido de renderizar y admite todas las funciones de renderizado.

  • Alpha: El material es transparente. Las áreas semi-transparentes se dibujan mediante Alpha-blending. Esta función es lenta de renderizar, pero permite una transparencia parcial (también conocida como translucidez). Los materiales que utilizan Alpha-blending tampoco pueden proyectar sombras y no son visibles en los reflejos del espacio de la pantalla.

    • Alpha es una buena opción para efectos de partículas y efectos visuales.

  • Alpha Scissor: El material es transparente. Las áreas semi-transparentes cuya opacidad esté por debajo del Alpha Scissor Threshold no se dibujan (por encima de esta opacidad, se dibujan como opacas). Esto es más rápido de renderizar que usar el modo Alpha y no presenta problemas de ordenación de transparencia. La desventaja es que esto resulta en una transparencia de "todo o nada", sin valores intermedios posibles. Los materiales que utilizan la Alpha Scissor pueden proyectar sombras.

    • Alpha Scissor es ideal para follaje y cercas, ya que estos tienen bordes duros y requieren un orden correcto para lucir bien.

  • Alpha Hash: El material es transparente. Las áreas semitransparentes se dibujan mediante tramado (dithering). Esta también es una transparencia de "todo o nada", pero el tramado ayuda a representar áreas parcialmente opacas con precisión limitada, dependiendo de la resolución de la ventana gráfica. Los materiales que utilizan Alpha Hash pueden proyectar sombras.

    • Alpha Hash es adecuado para cabellos de apariencia realista, aunque el cabello estilizado puede funcionar mejor con modo Alpha Scissor.

  • Depth Pre-Pass Esto renderiza primero los píxeles completamente opacos del objeto mediante el pipeline de opacidad, y luego renderiza el resto mediante Alpha-Blending. Esto permite que la ordenación por transparencia sea en su mayoría correcta (aunque no completamente, ya que las regiones parcialmente transparentes aún pueden presentar una clasificación incorrecta). Los materiales que utilizan Depth Pre-Pass pueden proyectar sombras.

Nota

Godot forzará automáticamente que el material sea transparente con Alpha Blending si se cumple alguna de estas condiciones:

  • Establecer el modo de transparencia a Alpha (como se describe aquí).

  • Establecer un modo de fusión distinto del predeterminado Mezcla

  • Enabling Refraction, Proximity Fade, or Distance Fade.

Comparación entre Alpha Blending (izquierda) y Alpha Scissor (derecha):

../../_images/spatial_material12.png

Advertencia

La transparencia Alpha-Blended tiene varias limitaciones:

  • Los materiales Alpha-Blended son significativamente más lentos de renderizar, especialmente si se superponen.

  • Los materiales con Alpha-Blending pueden presentar problemas de ordenación cuando superficies transparentes se superponen. Esto significa que las superficies pueden renderizarse en un orden incorrecto, y las superficies traseras parecen estar delante de las que están más cerca de la cámara.

  • Los materiales con Alpha-blending no proyectan sombras, pero pueden recibirlas.

  • Alpha-blended materials don't appear in any reflections (other than reflection probes).

  • Los reflejos en el espacio de pantalla y los reflejos nítidos del SDFGI no aparecen en materiales con mezcla alfa. Cuando el SDFGI está habilitado, se utilizan reflejos aproximados como alternativa, independientemente de la irregularidad del material.

Antes de usar el modo de transparencia Alpha, considera si otro modo de transparencia es más adecuado a tus necesidades.

Alpha Antialiasing (Suavizado de alpha)

Nota

Esta propiedad solo es visible si el modo de transparencia es Alpha Scissor o Alpha Hash.

Mientras los materiales Alpha Scissor y Alpha Hash son más rápidos de renderizar que materiales Alpha-blended, exhiben borders duros entre regiones opacas y transparentes. Aunque es posible usar técnicas de post-procesado (antialiasing techniques) como FXAA y TAA, esto no es siempre deseable, pues estas técnicas tienden a hacer que el resultado final se vea borroso o muestre "ghosting".

Hay 3 modos de antialiasing por alpha disponibles:

  • Desactivado: Sin antialiasing alpha. Los bordes de los materiales transparentes aparecerán con aliasing a menos que se utilice una solución de antialiasing basada en el post-processing.

  • Alpha Edge Blend: Da como resultado una transición suave entre áreas opacas y transparentes. También conocido como “alfa a cobertura”.

  • Alpha Edge Clip: Da como resultado una transición definida, pero aún con suavizado de bordes, entre áreas opacas y transparentes. También conocido como “alfa a cobertura + alfa a uno”.

When the alpha antialiasing mode is set to Alpha Edge Blend or Alpha Edge Clip, a new Alpha Antialiasing Edge property becomes visible below in the inspector. This property controls the threshold below which pixels should be made transparent. While you've already defined an alpha scissor threshold (when using Alpha Scissor only), this additional threshold is used to smoothly transition between opaque and transparent pixels. Alpha Antialiasing Edge must always be set to a value that is strictly below the alpha scissor threshold. The default of 0.3 is a sensible value with an alpha scissor of threshold of 0.5, but remember to adjust this alpha antialiasing edge when modifying the alpha scissor threshold.

Si notas que el efecto de suavizado de bordes por alfa no es lo suficientemente evidente, intenta aumentar Alpha Antialiasing Edge, asegurándote de que siga estando por debajo del Alpha Scissor Threshold (si el material utiliza Alpha Scissor). Por otro lado, si observas que la apariencia de la textura cambia visiblemente al acercar la cámara al material, prueba disminuyendo Alpha Antialiasing Edge While.

Importante

Para obtener mejores resultados, MSAA 3D debe configurarse al menos en 2× en la Configuración del Proyecto al usar el suavizado de bordes por alfa. Esto se debe a que esta función depende de alpha to coverage, que es una característica proporcionada por MSAA.

Sin MSAA, se aplica un patrón de tramado fijo en los bordes del material, lo cual no es muy efectivo para suavizar los bordes (aunque aún puede ayudar un poco).

Blend Mode (Modo de mezcla)

Controla el modo de mezcla para el material. Hay que tener en cuenta que cualquier otro modo que no sea Mix obliga al objeto a pasar por el pipeline transparente.

  • Mix: Modo de mezcla por defecto, alpha controla cuánto es visible el objeto.

  • Add: Aditivo. El color final del objeto se suma al color de la pantalla, ideal para efectos como destellos o fuego.

  • Subtract: The final color of the object is subtracted from the color of the screen.

  • Multiply: The final color of the object is multiplied with the color of the screen.

  • Premultiplied Alpha: The color of the object is expected to have already been multiplied by the alpha. This behaves like Add when the alpha is 0.0 (fully transparent) and like Mix when the alpha is 1.0 (opaque).

../../_images/spatial_material8.png

Cull Mode (Modo de Sacrificio)

Determina qué lado del objeto no se dibuja cuando se procesan las backfaces:

  • Back: La parte posterior del objeto no es dibujada cuando no es visible (por defecto).

  • Front: La parte frontal del objeto no es dibujada cuando no es visible.

  • Disabled: Utilizado para objetos de doble cara (no se realiza ningún proceso de culling).

Nota

Por defecto, Blender tiene la opción de culling (ocultación de caras posteriores) desactivada en los materiales y exportará los materiales para que coincidan con cómo se renderizan en Blender. Esto significa que los materiales en Godot tendrán su modo de culling establecido en Disabled. Esto puede disminuir el rendimiento ya que las caras posteriores se renderizarán incluso cuando estén siendo ocultadas por otras caras. Para resolver esto, habilita Backface Culling (ocultación de caras posteriores) en la pestaña de Materiales de Blender y luego exporta la escena nuevamente a glTF.

Modo de Dibujo Profundo

Especifica cuándo se debe realizar el renderizado de profundidad.

  • Opaque Only (predeterminado): Sólo se dibuja la profundidad en objetos opacos.

  • Always: El dibujo de profundidad se realiza tanto para objetos opacos como transparentes.

  • Never: No se realiza el dibujado de profundidad (no confundir con la opción No Depth Test explicada más abajo).

  • Depth Pre-Pass: En el caso de los objetos transparentes, primero se hace un pase opaco con las partes opacas y luego se dibuja la transparencia por encima. Esta opción se puede utilizar con césped transparente o follaje de árboles.

../../_images/material_depth_draw.png

Sin prueba de profundidad

Para que los objetos cercanos aparezcan sobre objetos lejanos, se realiza una prueba de profundidad. Deshabilitarlo tiene como resultado que los objetos aparezcan por encima (o por debajo) de todo lo demás.

Desactivar esto tiene más sentido para dibujar indicadores en el espacio del mundo (world space), y funciona muy bien con la propiedad "Render Priority" de Material (ver abajo).

../../_images/spatial_material3.png

Depth Test

Esto puede utilizarse para invertir la prueba de profundidad (depth test) estándar. Cuando se configura como Inverted, el objeto solo aparecerá cuando esté ocluido y permanecerá oculto en caso contrario.

Esto no tiene ningún efecto si la opción No Depth Test (Sin prueba de profundidad) está activada.

../../_images/material_depth_test.webp

Sombreado

Shading Mode (Modo de sombreado)

Los materiales admiten tres modos de sombreado: Por píxel, Por vértice y Sin sombreado.

Tres esferas que muestran los modos Por píxel, Por vértice y Sin sombreado.

El modo de sombreado Per-Pixel (Por pixel) calcula la iluminación por cada pixel, y es una buena opción para la mayoría de los casos de uso. Sin embargo, en algunos casos podrías querer mejorar el rendimiento usando otra técnica de sombreado.

El modo de sombreado Per-Vertex (Por vértice), frecuentemente denominado "Vertex Shading" o "Vertex Lighting", calcula la iluminación para cada vértice y luego interpola el resultado para cada pixel de los poligonos formados por ese vértice.

On low-end or mobile devices, using per-vertex lighting can considerably increase rendering performance. When rendering several layers of transparency, such as when using particle systems, using per-vertex shading can improve performance, especially when the camera is close to particles.

También puedes utilizar la iluminación por vértice (Per-Vertex) para lograr un aspecto retro.

Dos cubos con textura de ladrillo, uno sombreado y otro sin sombrear.

Textura de AmbientCG

El modo de sombreado Unshaded (sin sombreado) no calcula ninguna forma de iluminación. En vez de eso, el color del Albedo es devuelto directamente. Las luces no afectan al material en absoluto, y materiales sin sombreado tenderán a aparecer considerablemente más brillantes que materiales con sombreado.

Renderizar sin sombreado es útil para ciertos efectos visuales. Si el rendimiento máximo es necesario, también se puede usar para renderizar particulas, o para dispositivos lentos o móviles.

Diffuse Mode (Modo difuso)

Specifies the algorithm used by diffuse scattering of light when hitting the object. The default is Burley. Other modes are also available:

  • Burley: Modo predeterminado, el algoritmo difuso original de Disney Principled PBS.

  • Lambert: No se ve afectado por la rugosidad.

  • Lambert Wrap: Extiende Lambert para cubrir más de 90 grados cuando la rugosidad es mayor. Funciona muy bien para el cabello y simula la dispersión a bajo costo de la superficie. Esta implementación es para conservar energía.

  • Toon: Proporciona un acabado duro para la iluminación, con alisado afectado por la rugosidad. Se recomienda desactivar la influencia del cielo en la configuración de la luz ambiental del entorno o desactivar la luz ambiental en el material StandardMaterial3D para lograr un mejor efecto.

../../_images/spatial_material6.webp

Specular Mode (Modo Especular)

Especifica cómo se renderizará el specular blob. El specular blob representa la forma de una fuente de luz reflejada en el objeto.

  • SchlickGGX: El blob más común usado por los motores PBR 3D hoy en día.

  • Toon: Crea un blob toon, que cambia de tamaño dependiendo de la rugosidad.

  • Disabled: A veces, el reflejo molesta. ¡Desaparece!

../../_images/spatial_material7.webp

Disable Ambient Light (Desactivar Luz Ambiental)

Hace que el objeto no reciba ningún tipo de luz ambiental.

Disable Fog (Desactivar niebla)

Hace que el objeto no se vea afectado por niebla de profundidad ni volumétrica. Esto es útil para partículas u otros materiales aditivos que de otra forma mostrarían la forma de la malla (Incluso en lugares en los que seria invisible sin las niebla).

Disable Specular Occlusion (Desactivar oclusión especular)

Hace que el objeto no vea sus reflexiones reducidas cuando normalmente estaría ocluído.

Vertex Color (Color de los Vértices)

Esta opción permite elegir lo que se hace por defecto con el coloreado de los vértices que provienen de su aplicación de modelado 3D. Por defecto, se ignoran.

../../_images/spatial_material4.webp

Use as Albedo (Usar como Albedo)

Esta opción hace que el color de los vértices se utilice como color del albedo.

Is sRGB (Es sRGB)

La mayoría del software de modelado 3D probablemente exportarán los colores de vértice como sRGB, por lo que activar esta opción ayudará a que se vean correctamente.

Albedo

Albedo es el color base del material, sobre lo que trabaja todo lo demás. Cuando se establece en Unshaded, este es el único color que es visible. En versiones anteriores de Godot, este canal se llamaba Diffuse. El cambio de nombre se produjo principalmente porque, en PBR (Physically Based Rendering), este color afecta a muchos más cálculos que sólo la ruta de iluminación difusa.

El color y la textura del albedo se pueden utilizar juntos a medida que se multiplican.

El Alpha channel en el color y la textura del albedo también se utiliza para la transparencia del objeto. Si se utiliza un color o una textura con alpha channel (canal alfa), asegúrate de habilitar la transparencia o alpha scissoring para que funcione.

Metallic (Metálico)

Godot utiliza un modelo metálico en lugar de otros conocidos por su simplicidad. Este parámetro define qué tan reflectantes son los materiales. Cuanto más reflectante es, menos es afectado por la luz difusa/ambiental y mayor es el reflejo. Este modelo se llama "energy-conserving" (conservador de energía).

El parámetro Specular (Especular) es sólo una cantidad general para la reflectividad (a diferencia de Metallic, éste no conserva energía, así que simplemente déjalo en 0.5 y no lo toques a menos que lo necesites).

El mínimo de reflectividad interna es de 0.04, por lo que (al igual que en la vida real) es imposible hacer un material completamente antirreflectante.

../../_images/spatial_material13.png

Roughnes (Rugosidad)

Roughness (rugosidad) afecta principalmente a la forma en que se produce el reflejo. Un valor de 0 lo convierte en un espejo perfecto, mientras que un valor de 1 difumina completamente el reflejo (simulando una microsuperficie natural). Los tipos más comunes de materiales se pueden lograr con la combinación correcta de Metallic y Roughness.

../../_images/spatial_material14.png

Emission (Emisión)

Emission especifica cuánta luz es emitida por el material (Ten en cuenta que esto no incluye la luz que rodea a la geometría a menos que se utilice VoxelGI o SDFGI). Este valor se añade a la imagen final resultante y no se ve afectado por otra iluminación en la escena.

../../_images/spatial_material15.png

Normal map (Mapa de normales)

El mapeo de normales (normal mapping) permite establecer una textura que representa detalles más precisos. Esto no modifica la geometría, sólo el ángulo de incidencia de la luz. En Godot, sólo los canales rojo (red) y verde (green) se utilizan para mapas de normales, con el fin de lograr una mayor compatibilidad.

../../_images/spatial_material16.png

Nota

Godot requiere que el mapa de normales (normal map) utilice las coordenadas X+, Y+ y Z+. Esto se conoce como estilo OpenGL. Si has importado un material creado para ser utilizado con otro motor, es posible que esté en estilo DirectX, en cuyo caso el mapa de normales necesita ser convertido para que su eje Y esté invertido.

Más información sobre mapas de normales (incluyendo la tabla de orden de coordenadas para motores populares) se puede encontrar aquí.

Bent normal map (Mapa de normales doblado)

Un mapa de normales doblado describe la dirección promedio de la luz ambiental. A diferencia de un mapa de normales común, esto se usa para mejorar la manera en que un material reacciona a la luz sin añadir detalle de superficie.

Esto es logrado de dos maneras:

  • La iluminación indirecta difusa es alterada para hacerla aproximarse más a la iluminación global.

  • Si la oclusión especular está habilitada, se calcula usando los normales doblados y la oclusión ambiental en vez de sólo a partir de la luz ambiental. Esto incluye oclusión ambiental en espacio de pantalla (SSAO, Screen-Space Ambient Occlusion) y otras fuentes de oclusión ambiental.

../../_images/spatial_material_bentnormals.webp

Godot únicamente utiliza los canales rojo y verde de un mapa de normales doblado para ofrecer una mejor compresión y una compatibilidad más amplia.

al crear un mapa de normales doblado, en Godot hay 3 requerimientos para que funcione correctamente:

  • Una distribución de cosenos de rayos ha de ser usada al precalcular (baking).

  • La textura debe ser creada en espacio tangencial.

  • Godot requiere que el mapa de normales doblado (bent normal map) utilice las coordenadas X+, Y+ y Z+. Esto se conoce como estilo OpenGL. Si has importado un material creado para ser utilizado con otro motor, es posible que esté en estilo DirectX, en cuyo caso el mapa de normales necesita ser convertido para que su eje Y esté invertido. Esto se puede lograr yendo al panel "Importar", y bajo la sección "Proceso > Reasignación de Canal" ajustando el canal Verde a Inverted Green (Verde Invertido).

Nota

Un mapa de normales doblado es diferente de un mapa de normales regular. Los dos NO son intercambiables.

Rim

Algunos tejidos tienen micropelículas que hacen que la luz se disperse a su alrededor. Godot emula esto con el parámetro Rim. A diferencia de otras implementaciones de iluminación de bordes que sólo utilizan el canal de emisión, éste en realidad tiene en cuenta la luz (si no hay luz, no hay borde). Esto hace que el efecto sea mucho más creíble.

../../_images/spatial_material17.png

El tamaño del Rim depende de Roughness, y hay un parámetro especial para especificar cómo debe ser coloreado. Si Tint es 0, el color de la luz se utiliza para el Rim. Si tint es 1, entonces se utiliza el albedo del material. El uso de valores intermedios generalmente funciona mejor.

Clearcoat

El parámetro Clearcoat se utiliza principalmente para añadir una pasada secundaria de recubrimiento transparente al material. Esto es común en la pintura de automóviles y juguetes. En la práctica, es un blob especular más pequeño añadido sobre el material existente.

../../_images/clearcoat_comparison.png

Anisotropy (Anisotropía)

Esto cambia la forma del specular blob y lo alinea con el espacio tangencial. "Anisotropy" (anisotropía) se utiliza comúnmente con cabello, o para hacer que materiales como el aluminio pulido sean más realistas. Funciona especialmente bien cuando se combina con flowmaps.

../../_images/spatial_material18.png

Ambient Occlusion (Oclusión Ambiental)

Es posible especificar un mapa de oclusión ambiental bakeado. Este mapa afecta la cantidad de luz ambiental que llega a cada superficie del objeto (no afecta la luz directa por defecto). Si bien es posible utilizar la oclusión ambiental en el espacio de la pantalla (SSAO) para generar Ambient Occlusion, nada superará la calidad de un mapa de AO bien bakeado. Se recomienda prebakear Ambient Occlusion siempre que sea posible.

../../_images/spatial_material19.png

Height (Altura)

Establecer un mapa de profundidad en un material genera una búsqueda "Ray-marched" para emular el desplazamiento adecuado de las cavidades a lo largo de la dirección de la vista. Esto solo crea una ilusión de profundidad, y NO añade geometría adicional — Si necesitas un objeto Shape3D utilizado para colisiones físicas (como un terreno), véase HeightMapShape3D. Puede que no funcione para objetos complejos pero produce un efecto de profundidad realista para texturas. Para obtener mejores resultados, se debe utilizar Height junto con un mapa de normales (Normal Map).

../../_images/spatial_material20.png

Subsurface Scatter (Dispersión Subsuperficial)

Esto solo está disponible en el renderizador Forward+, no en los renderizadores Mobile o Compatibility.

Este efecto emula la luz que penetra la superficie de un objeto, se dispersa y luego sale. Es útil para hacer pieles realistas, mármol, líquidos de colores, etc.

../../_images/spatial_material21.png

Iluminación trasera

Controla cuánta luz del lado iluminado (visible a la luz) se transfiere al lado oscuro (lado opuesto a la luz). Esto funciona bien para objetos delgados como hojas de árboles/plantas, césped, orejas humanas, etc.

../../_images/spatial_material22.png

Refraction (Refracción)

Cuando la refracción está activada, Godot intenta obtener información de detrás del objeto renderizado. Esto permite distorsionar la transparencia de forma similar a la refracción en la vida real.

Recuerde utilizar una textura de albedo transparente (o reducir el canal alfa del color del albedo) para hacer visible la refracción, ya que la refracción depende de la transparencia para tener un efecto visible.

La refracción también tiene en cuenta la rugosidad (Roughness) del material. Valores de rugosidad más altos harán que el objeto detrás de la refracción se vea más borroso, lo que simula un comportamiento real. Si no puedes ver detrás del objeto cuando la refracción está habilitada y la transparencia del albedo está reducida, reduce el valor Roughness (rugosidad) del material.

Se puede especificar opcionalmente un mapa de normales (Normal Map) en la propiedad Refraction/Texture para permitir distorsionar la dirección de la refracción píxel por píxel.

../../_images/spatial_material23.png

Nota

La refracción está implementada como un efecto en espacio de pantalla, y fuerza al material a ser transparente. Esto hace el efecto relativamente rápido, pero esto resulta en algunas limitaciones:

  • Podrían aparecer efectos como Transparency sorting.

  • El material refractivo no puede refractarse sobre sí mismo ni sobre otros materiales transparentes. Un material refractivo detrás de otro material transparente será invisible.

  • Los objetos fuera de pantalla no pueden aparecer en la refracción. Esto se aprecia con mayor claridad con valores altos de intensidad de refracción.

  • Los materiales opacos que se encuentren delante del material refractivo parecerán tener bordes "refractados", aunque no deberían tenerlos.

Detail (Detalle)

Godot permite usar un albedo y normal map secundarios para generar texturas detalladas, las cuales pueden ser mezcladas de muchas maneras. Combinado con UV secundario o modo triplanar, se pueden lograr muchas texturas interesantes.

../../_images/spatial_material24.png

Hay varios ajustes que controlan el uso de los detalles.

Máscara: La máscara de detalle es una imagen en blanco y negro que se utiliza para controlar dónde tiene lugar la mezcla en una textura. El blanco es para las texturas de detalle, el negro es para las texturas materiales regulares, los diferentes tonos de gris son para la mezcla parcial de las texturas materiales y las texturas de detalle.

Blend Mode: Estos cuatro modos controlan cómo se mezclan las texturas.

  • Mix (Mezclar): Combina los valores de los píxeles de ambas texturas. En negro, sólo muestra la textura del material, en blanco, sólo muestra la textura del detalle. Los valores de gris crean una mezcla suave entre los dos.

  • Add: Añade los valores de los píxeles de una textura con la otra. A diferencia del modo mix, ambas texturas se mezclan completamente en las partes blancas de una máscara y no en las partes grises. La textura original es mayormente sin cambios en el negro

  • Sub (Sustracción): resta los valores de los píxeles de una textura con la otra. La segunda textura se sustrae completamente en las partes blancas de una máscara con sólo una pequeña sustracción en las partes negras, siendo las partes grises diferentes niveles de sustracción basados en la textura exacta.

  • Mul: Multiplica los números de canal RGB de cada píxel de la textura superior por los valores del píxel correspondiente de la textura inferior.

Albedo: Aquí es donde pones una textura de albedo que quieres mezclar. Si no hay nada en esta ranura se interpretará como blanco por defecto.

Normal: Aquí es donde pones una textura de normales que quieres mezclar. Si no hay nada en esta ranura se interpretará como un mapa plano normal. Esto puede ser usado incluso si el material no tiene el mapa de normales habilitado.

UV1 y UV2

Godot soporta dos canales UV por material. Los UV secundarios son a menudo útiles para ambient occlusion o emission (baked light). Los UVs pueden ser escalados y desplazados, lo que es útil en texturas con repetición.

Triplanar (Mapeado Triplanar)

El mapeo triplanar es compatible tanto para UV1 como para UV2. Esta es una forma alternativa de obtener coordenadas de textura, a menudo llamada "Autotexture". Las texturas son muestreadas en X, Y y Z y mezcladas por la normal. El mapeo triplanar puede ser espacio de mundo o espacio de objeto.

En la imagen de abajo, puedes ver cómo todos los primitivos comparten el mismo material con el triplanar global, para que la textura pueda continuar con suavidad entre las partes.

../../_images/spatial_material25.png

World Triplanar (Triplanar global)

Al usar el mapeo triplanar, se calcula en el espacio local del objeto. Esta opción hace que se use el espacio global.

Sampling (Muestreo)

Filter (Filtro)

The filtering method for the textures used by the material. See this page for a full list of options and their description.

Repeat (Repetir)

if the textures used by the material repeat, and how they repeat. See this page for a full list of options and their description.

Shadows (Sombras)

Disable Receive Shadows

Hace que el objeto no reciba ningún tipo de sombra que de otro modo sería proyectada sobre él.

Sombra a opacidad

La iluminación modifica el alfa para que las áreas sombreadas sean opacas y las no sombreadas sean transparentes. Útil para superponer sombras a una cámara en AR.

Billboard

Modo Billboard

Activa billboard mode para materiales de dibujo. Esto controla la forma en que el objeto mira hacia la cámara:

  • Disabled: Billboard mode está desactivado.

  • Enabled: Billboard mode is enabled. The object's -Z axis will always face the camera's viewing plane.

  • Y-Billboard: The object's X axis will always be aligned with the camera's viewing plane.

  • Particle Billboard: Most suited for particle systems, because it allows specifying flipbook animation.

../../_images/spatial_material9.webp

La sección Animación de Partículas solamente es visible cuando el modo del billboard es Billboard de Particulas.

Mantiene la Escala del Billboard

Permite escalar una malla en modo cartelera.

Crece

Hace que los vértices del objeto crezcan en la dirección señalada por sus normales:

../../_images/spatial_material10.png

Esto se utiliza comúnmente para crear contornos de bajo costo. Añade una segunda pasada al material, hazlo negro y sin sombrear, invierte el desechado de caras (Cull Front), y añade algo de tamaño:

../../_images/spatial_material11.png

Nota

Para que Grow funcione como se espera, la malla debe tener caras conectadas con vértices compartidos, o «sombreado suave». Si la malla tiene caras desconectadas con vértices únicos, o «sombreado plano», la malla parecerá tener huecos al usar Grow.

Ten en cuenta que a partir de Godot 4.5, los contornos basados en el búfer de estarcido (stencil buffer) están disponibles utilizando el modo de estarcido (stencil) de contorno stencil mode. Esto puede utilizarse como alternativa al método de "Grow" para crear contornos.

Transformar

Fixed Size (Tamaño fijo)

Esto hace que el objeto renderizado tenga el mismo tamaño sin importar la distancia. Es especialmente útil para indicadores (sin prueba de profundidad y alta prioridad de renderizado) y algunos tipos de billboards.

Usar Point Size (Tamaño de punto)

This option is only effective when the geometry rendered is made of points (generally it's made of triangles when imported from 3D modeling software). If so, then those points can be resized (see below).

Point Size (Tamaño de puntos)

Cuando se dibujen puntos, hay que especificar el tamaño del punto en píxeles.

Use Particle Trails

Esto solo está disponible en los renderizadores Forward+ y Mobile, no en el renderizador Compatibility.

If true, enables parts of the shader required for GPUParticles3D trails to function. This also requires using a mesh with appropriate skinning, such as RibbonTrailMesh or TubeTrailMesh. Enabling this feature outside of materials used in GPUParticles3D meshes will break material rendering.

Usa la escala Z del clip

Escala el objeto que se está renderizando hacia la cámara para evitar que se introduzca (clipping) en elementos como paredes. Esto está pensado para objetos que están fijos respecto a la cámara, como los brazos del jugador, herramientas, etc. La iluminación y las sombras seguirán funcionando correctamente cuando se ajuste esta configuración, pero los efectos en espacio de pantalla (screen-space) como SSAO y SSR podrían fallar con escalas bajas. Por lo tanto, intenta mantener este valor lo más cerca posible de 1.0.

Usar sobreescritura de FOV (Campo de visión)

Sobreescribe el ángulo del campo de visión (en grados) de la Camera3D.

Nota

Esto se comporta como si el campo de visión estuviera configurado en una Camera3D con Camera3D.keep_aspect establecido en Camera3D.KEEP_HEIGHT. Además, es posible que no se vea correctamente en una cámara ortogonal (es decir, que no sea de perspectiva), donde se ignora el ajuste del campo de visión.

Desvanecimiento de proximidad y distancia

Godot allows materials to fade by proximity to each other as well as depending on the distance from the viewer. Proximity fade is useful for effects such as soft particles or a mass of water with a smooth blending to the shores.

../../_images/spatial_material_proxfade.gif

El desvanecimiento de la distancia es útil para haces de luz o indicadores que solo están presentes después de una distancia determinada.

Ten en cuenta que activar el desvanecimiento por proximidad (proximity fade) o el desvanecimiento por distancia (distance fade) con el modo Pixel Alpha habilita el alpha blending. El alpha blending (mezcla alfa) requiere más recursos de la GPU y puede causar problemas de ordenamiento de transparencias. Además, el alpha blending desactiva muchas funciones del material, como la capacidad de proyectar sombras.

Nota

Para ocultar un personaje cuando se acerca demasiado a la cámara, considera usar Tramado de Píxeles o mejor, Tramado de Objetos (que es incluso más rápido que Tramado de Píxeles).

Modo Pixel Alpha: La transparencia real de un píxel del objeto cambia según la distancia a la cámara. Este es el efecto más vistoso, pero obliga al material a entrar en el pipeline de transparencia (lo que provoca, por ejemplo, que no proyecte sombras).

../../_images/standart_material_distance_fade_pixel_alpha_mode.webp

Modo Pixel Dither: Lo que hace este modo es aproximar la transparencia renderizando solo una fracción de los píxeles.

../../_images/standart_material_distance_fade_pixel_dither_mode.webp

Modo Object Dither: Similar al modo anterior, pero la transparencia calculada es la misma en toda la superficie del objeto.

../../_images/standart_material_distance_fade_object_dither_mode.webp

Stencil

Desde Godot 4.5, el motor permite que los materiales hagan uso del stencil buffer (búfer de estarcido). Esta función se utiliza comúnmente para crear contornos (outlines) y efectos de rayos X, los cuales pueden ser útiles para resaltar objetos, especialmente cuando se encuentran detrás de paredes.

Los modos Outline y X-Ray asignan un material de stencil preconfigurado en la propiedad Next Pass del material. El modo Custom puede utilizarse para efectos avanzados.

../../_images/material_stencil.webp

Los materiales que escriben en el stencil buffer siempre se dibujan en el pase de transparencia, por lo que están sujetos a las limitaciones de transparencia habituales.

Nota

Like with the Grow property, for the stencil outline to work as expected, the mesh must have connected faces with shared vertices, or "smooth shading". If the mesh has disconnected faces with unique vertices, or "flat shading", the mesh will appear to have gaps when using a stencil outline.

Los contornos por stencil se renderizan de forma similar a la propiedad Grow, pero no se verán idénticos en todos los escenarios, especialmente cuando hay intersecciones con superficies opacas de por medio.

Configuración de Material

Prioridad de Renderización

El orden de renderizado de los objetos se puede cambiar, esto es útil sobre todo para los objetos transparentes (u objetos opacos que dibujan en profundidad pero no en color, como grietas en el suelo).

Los objetos se ordenan mediante una cola de opacos/transparentes y, a continuación, por su render_priority, donde la prioridad más alta se dibuja más tarde. Los objetos transparentes también se ordenan por profundidad.

La prueba de profundidad (depth testing) prevalece sobre la prioridad. La prioridad por sí sola no puede forzar que los objetos opacos se dibujen unos sobre otros.

Siguiente pasada

Configurar next_pass en un material hará que el objeto se renderice de nuevo con ese siguiente material.

Los materiales se ordenan mediante una cola de opacos/transparentes y, a continuación, por su render_priority, donde la prioridad más alta se dibuja más tarde.

../../_images/next_pass.webp

La profundidad pasará la prueba de igualdad (test equal) entre ambos materiales, a menos que se utilice el ajuste de crecimiento (grow) u otras transformaciones de vértices. Los pases transparentes múltiples deben usar render_priority para garantizar un ordenamiento correcto.