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

This can be used to invert the standard depth test. When set to Inverted, the object will only appear when occluded, and will be hidden otherwise.

This has no effect if No Depth Test is enabled.

../../_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)

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

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.

Note that in Godot 4.5 onwards, stencil buffer-based outlines are available using the Outline stencil mode. This can be used as an alternative to Grow for outlines.

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

Scales the object being rendered towards the camera to avoid clipping into things like walls. This is intended to be used for objects that are fixed with respect to the camera like player arms, tools, etc. Lighting and shadows will continue to work correctly when this setting is adjusted, but screen-space effects like SSAO and SSR may break with lower scales. Therefore, try to keep this setting as close to 1.0 as possible.

Use FOV Override

Overrides the Camera3D's field of view angle (in degrees).

Nota

This behaves as if the field of view is set on a Camera3D with Camera3D.keep_aspect set to Camera3D.KEEP_HEIGHT. Additionally, it may not look correct on a non-perspective camera where the field of view setting is ignored.

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.

Keep in mind enabling proximity fade or distance fade with Pixel Alpha mode enables alpha blending. Alpha blending is more GPU-intensive and can cause transparency sorting issues. Alpha blending also disables many material features such as the ability to cast shadows.

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).

Pixel Alpha mode: The actual transparency of a pixel of the object changes with distance to the camera. This is the most effect, but forces the material into the transparency pipeline (which leads, for example, to no shadows).

../../_images/standart_material_distance_fade_pixel_alpha_mode.webp

Pixel Dither mode: What this does is sort of approximate the transparency by only having a fraction of the pixels rendered.

../../_images/standart_material_distance_fade_pixel_dither_mode.webp

Object Dither mode: Like the previous mode, but the calculated transparency is the same across the entire object's surface.

../../_images/standart_material_distance_fade_object_dither_mode.webp

Stencil

Since Godot 4.5, Godot allows materials to make use of the stencil buffer. This feature is commonly used to create outlines and X-ray effects, which can be useful to highlight objects, especially behind walls.

The Outline and X-Ray modes assign a preconfigured stencil material in the material's Next Pass property. The Custom mode can be used for advanced effects.

../../_images/material_stencil.webp

Materials that write to the stencil buffer are always drawn in the transparent pass, so they are subject to the usual transparency limitations.

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.

Stencil outlines render similarly to the Grow property, but won't look identical in every scenario, especially when intersections with opaque surfaces are involved.

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).

Objects are sorted by an opaque/transparent queue, then render_priority, with higher priority being drawn later. Transparent objects are also sorted by depth.

Depth testing overrules priority. Priority alone cannot force opaque objects to be drawn over each other.

Siguiente pasada

Setting next_pass on a material will cause an object to be rendered again with that next material.

Materials are sorted by an opaque/transparent queue, then render_priority, with higher priority being drawn later.

../../_images/next_pass.webp

Depth will test equal between both materials unless the grow setting or other vertex transformations are used. Multiple transparent passes should use render_priority to ensure correct ordering.