Ajuste de los parámetros de imagen del 3DGS
Este documento tiene tres partes: los parámetros comunes funcionan en ambos pipelines, y a continuación figuran los parámetros exclusivos de cada pipeline. Los parámetros específicos de un pipeline no se muestran en el panel Details del otro.
Parámetros comunes
Render Mode
3D Gaussian Splatting (predeterminado)
Renderiza como elipses gaussianas 2D con color y transparencia completos.
LCCComponent->SetRenderMode(ERenderMode::Splatting);
Point Cloud
Renderiza cada splat como un único punto de color, adecuado para vistas generales o escenas con limitaciones de rendimiento.
LCCComponent->SetRenderMode(ERenderMode::PointCloud);

Cambiar entre los modos de renderizado 3DGS y nube de puntos
El modo de nube de puntos admite la coloración por altura:
ElevationColorBottom— color en la altura más bajaElevationColorTop— color en la altura más alta

Coloración por altura en el modo de nube de puntos
Load Mode
Los datos se dividen en una parte principal y una parte de entorno, y LoadMode controla qué parte se renderiza:
| Modo | Descripción |
|---|---|
| Both | Renderiza la parte principal y el entorno (predeterminado) |
| OnlyMain | Renderiza solo la parte principal |
| OnlyEnvironment | Renderiza solo el entorno |
| None | No renderiza nada, los datos permanecen cargados |

Cambiar el alcance del renderizado de la parte principal y del entorno con LoadMode
Nota:
Nonesolo detiene el renderizado, y los datos siguen ocupando memoria de vídeo. Llamar aUnLoad()para liberar los recursos.
Light Mode
Unlit (predeterminado)
Usa únicamente el color de las propias gaussianas, sin interacción con las luces de la escena.
Lit
Activa la iluminación diferida para que la escena 3DGS pueda verse afectada por luces direccionales, luces puntuales y otras. Requiere información de profundidad y de normales.
LCCComponent->SetLightMode(ELightMode::Lit);

Cambiar entre los modos de luz Unlit y Lit
Mip Filter
Cuando está activado, aplica un filtro de paso bajo 2D junto con una compensación de opacidad para reducir el parpadeo a distintas escalas.
El valor predeterminado depende del formato de los datos:
| Formato | Predeterminado |
|---|---|
.lcc2 / .lcc | Activado |
.ply / .spz / .sog | Desactivado |
Los formatos de archivo único lo desactivan por defecto para conservar el aspecto nítido original de los datos. Activarlo manualmente cuando aparezca parpadeo:
LCCComponent->SetUseMipFilter(true);
Armónicos esféricos (SH)
Aportan variación de color dependiente de la vista y mejoran la fidelidad de la iluminación.
LCCComponent->SetUseShcoef(true);
Requisitos:
- El modo de renderizado es 3DGS
- Los propios datos contienen coeficientes SH
Que los datos contengan coeficientes SH depende del formato:
| Formato | Cómo se determina |
|---|---|
.lcc2 / .lcc | Se determina por el tipo de archivo de los datos: el tipo Quality contiene SH, el tipo Portable no |
.ply / .spz / .sog | No hay marcador de tipo de archivo, por lo que depende de si realmente se escribieron coeficientes SH en el archivo |
Cuando los datos no contienen coeficientes SH, este interruptor aparece desactivado en el panel Details.
SplatScale
Controla el tamaño del quad de cada splat, de 0.001 a 1.0.
Reducirlo disminuye el área de pantalla que cubre un solo splat, lo que reduce el solapamiento semitransparente y baja el coste de relleno de píxeles. Reducirlo demasiado hace que las superficies muestren huecos o parezcan notablemente delgadas. También es una de las opciones de ajuste de rendimiento; consultar Guía de rendimiento.
LCCComponent->SetSplatScale(1.0f);

Establecer la escala de los splats y el alfa global del 3DGS
Global Alpha
Cada modo de renderizado tiene su propia propiedad de alfa global, ambas de 0.0 a 1.0:
| Propiedad | Se aplica a |
|---|---|
| GlobalAlpha | 3DGS |
| GlobalAlpha_PointCloud | Nube de puntos |
LCCComponent->SetGlobalAlpha(1.0f);
LCCComponent->SetGlobalAlpha_PointCloud(1.0f);

Establecer el alfa global del modo de nube de puntos
Ajuste de color

Configurar los parámetros de saturación, contraste y tinte de LCC
Se admiten cambios en tiempo de ejecución:
| Propiedad | Rango | Descripción |
|---|---|---|
| Saturation | 0.0~2.0 | Saturación por canal |
| Contrast | 0.0~2.0 | Contraste por canal |
| Gamma | 0.0~2.0 | Corrección gamma por canal |
| Offset | -1.0~1.0 | Desplazamiento aditivo de color |
| ColorTint | LinearColor | Tinte multiplicativo |
LCCComponent->SetSaturation(FVector4(1.2, 1.2, 1.2, 1.0));
LCCComponent->SetColorTint(FLinearColor::White);

La imagen después de ajustar los parámetros de color de forma dinámica
Anti-aliasing
Con bAffectAntiAliasingMethod activado, el plugin gestiona automáticamente el método de anti-aliasing:
| Configuración | Método predeterminado |
|---|---|
| LCC1 Splat | FXAA |
| LCC2 Splat | TSR |
| LCC1 Point Cloud | MSAA |
| LCC2 Point Cloud | TSR |
Los valores predeterminados se pueden cambiar en ProjectSettings > Plugins > LCC4Unreal.
Nota: el método de anti-aliasing es un ajuste global a nivel de vista. Cuando en una misma escena existen Actors del pipeline LCC y del pipeline LCC2, cada uno establece el método de anti-aliasing según su propia configuración, por lo que el que surta efecto depende del orden de ejecución y el resultado es indeterminado. En esas escenas, configurar manualmente el método de anti-aliasing de ambos pipelines con el mismo valor.

Configurar el método de anti-aliasing predeterminado de cada pipeline de LCC
Posprocesado

Configurar las opciones de posprocesado y de tone mapping de LCC4Unreal
| Ajuste | Predeterminado | Descripción |
|---|---|---|
| Enable Post Process | Activado | Si los píxeles de LCC participan en el pipeline de posprocesado del motor |
| Apply Tonemap Inverse | Desactivado | Aplica FilmToneMapInverse durante la conversión del espacio de color para que el aspecto original de los datos se restaure después del tone mapping del motor |
Son ajustes globales situados en ProjectSettings > Plugins > LCC4Unreal > Rendering y se aplican a ambos pipelines. Todos los componentes LCC de una escena comparten el mismo modo, y no se puede establecer por Actor.
Resultado de desactivar Enable Post Process
Los dos estados se procesan de forma distinta:
| Estado | Procesamiento | Resultado |
|---|---|---|
| Activado | Aplica InverseACES a los píxeles de LCC para que entren en el pipeline de posprocesado del motor | El 3DGS recibe tone mapping, Bloom, exposición, gradación de color y otros procesos posteriores junto con los objetos normales de la escena |
| Desactivado | Guarda una instantánea antes del tone mapping y la vuelve a combinar en la imagen mediante el alfa una vez completado el tone mapping | El 3DGS conserva sus colores originales y no le afectan el tone mapping ni ninguna etapa de posprocesado posterior |
Desactivarlo resulta adecuado en los casos que requieren una reproducción estricta de los colores originales de los datos, como la verificación de color o la comparación con una imagen de referencia. El coste es que el 3DGS y los objetos normales de la escena dejan de tener un aspecto coherente, y los efectos generales de posprocesado como Bloom y la exposición no se aplican a la parte del 3DGS.
Nota: desactivar Enable Post Process requiere la salida del canal alfa en el motor; de lo contrario, el resultado de la composición es incorrecto. Activar Alpha Output en ProjectSettings > Engine > Rendering (en UE 5.4 y versiones anteriores corresponde a "Enable alpha channel support in post processing", que debe establecerse en Linear color space only y reiniciar después el editor). El plugin muestra un aviso cuando detecta que esta opción está desactivada.
Qué hace Apply Tonemap Inverse
Los colores de los datos 3DGS son colores finales que ya pasaron por un tone mapping en el momento de la captura. Pasar esos colores de nuevo por el tone mapping del motor los comprime una segunda vez, lo que suele manifestarse como menor contraste y luces altas grisáceas.
Con esta opción activada, el plugin aplica FilmToneMapInverse a los colores de LCC durante la etapa de conversión del espacio de color para cancelar el tone mapping posterior del motor, de modo que la imagen final restaura el aspecto original de los datos.
| Estado | Caso de uso |
|---|---|
| Desactivado (predeterminado) | El 3DGS y los objetos normales de la escena comparten el mismo tone mapping para lograr un aspecto general coherente |
| Activado | El 3DGS debe mostrar los colores y el contraste originales de los datos |
Esta opción se aplica a ambos pipelines y solo tiene sentido mientras Enable Post Process está activado: en cuanto se desactiva, el 3DGS ya no participa en el tone mapping, por lo que no hay nada que cancelar.
Parámetros específicos del pipeline LCC2
Depth Threshold
AlphaThreshold decide qué capa de profundidad escribe el 3DGS en el buffer de profundidad. El 3DGS está compuesto por muchas capas de splats semitransparentes, y el plugin acumula la opacidad de cerca a lejos. Cuando el valor acumulado alcanza este umbral, la profundidad actual se registra como la profundidad representativa de ese píxel.
| Elemento | Valor |
|---|---|
| Rango | 0.01 ~ 0.99 |
| Predeterminado | 0.5 |
Reducirlo desplaza la profundidad hacia la cámara, aumentarlo la desplaza en dirección contraria. Esta profundidad participa en la iluminación, las pruebas de oclusión y el posprocesado que depende de la profundidad, por lo que la respuesta de las superficies en el modo Lit y la oclusión mutua con las mallas normales cambian con ella.
LCC2Component->AlphaThreshold = 0.5f;
Un caso típico para reducirlo: los datos contienen estructuras finas con una opacidad muy baja, como alas de insectos o de pájaros, mallas de red o bordes de hojas. Los splats de esas zonas nunca alcanzan la opacidad acumulada predeterminada de 0.5, por lo que no se escribe profundidad. Si la escena tiene además una caja de cielo, niebla u otro fondo no negro, esas zonas se combinan con el color del fondo por falta de profundidad, lo que se manifiesta como estructuras desvaídas y pérdida de detalle. Reducir el umbral permite que esas zonas escriban profundidad antes y restaura el detalle.
Reducirlo de forma progresiva y observar. Un valor demasiado bajo desplaza toda la profundidad hacia la cámara y afecta a las relaciones de oclusión y al posprocesado que depende de la profundidad.
Nota: esta propiedad se encuentra en la zona plegada Advanced del panel Details, y el valor predeterminado es adecuado para la mayoría de las escenas.
Parámetros específicos del pipeline LCC
Recepción de sombras
LCCComponent->bReceiveShadows = true;
Nota: requiere el modo de renderizado 3DGS. Activarlo tiene un impacto significativo en el rendimiento.

Renderizado 3DGS con la recepción de sombras activada
Corte de costuras
bEnableSeamCutting corta las costuras que el renderizado por bloques produce en los límites de los nodos. Los datos LCC de la versión 5.0 y superiores lo activan automáticamente; activarlo manualmente cuando aparezcan costuras visibles en datos de versiones inferiores.
LCCComponent->bEnableSeamCutting = true;
Nota: esta propiedad se encuentra en la zona plegada Advanced del panel Details.
Ordenación de translucidez entre varios Actors
El pipeline LCC no genera profundidad, por lo que varios Actors LCC no pueden obtener una oclusión mutua correcta mediante la prueba de profundidad y solo pueden aproximarla mediante el orden de dibujado de los objetos translúcidos. bEnableMultipleLCCActorAutoSort (activado por defecto) establece TranslucentSortPriority automáticamente según la distancia de cada Actor a la cámara, de modo que los Actors más cercanos se dibujan después, lo que da un resultado de solapamiento razonable en la mayoría de los casos.
Esta ordenación funciona con granularidad de Actor: cada Actor participa como un todo y no se subdivide hasta el nivel de los splats. Eso conlleva limitaciones inherentes:
- Cuando las cajas envolventes de dos Actors LCC se cruzan o se interpenetran en el espacio, ningún orden global puede expresar la relación correcta de delante a detrás, y la oclusión en la zona de cruce es incorrecta
- Cuando un mismo Actor abarca internamente un rango de profundidad amplio, ordenar por la distancia al centro del Actor puede no coincidir con la relación real de delante a detrás
Cambiar al pipeline LCC2 cuando varios conjuntos de datos 3DGS deban ocluirse correctamente entre sí. Desactivar esta opción cuando el orden de solapamiento deba especificarse manualmente, y establecer en su lugar TranslucentSortPriority en cada Actor.
El pipeline LCC2 no ofrece esta propiedad: sus datos se combinan en un único Buffer, se ordenan globalmente por splat y generan profundidad para participar en las pruebas de oclusión, por lo que no se necesita ninguna intervención.