En esta página

Renderizado Físico

Introducción

El renderizado basado en la física (PBR) es una técnica de renderizado que pretende simular con precisión las propiedades físicas de los materiales y las luces de una escena. Se basa en los principios de la física y utiliza algoritmos para modelar con precisión el modo en que la luz interactúa con los distintos materiales.

El renderizado basado en la física tiene en cuenta el modo en que la luz es absorbida, reflejada y dispersada por distintas superficies, como el metal, el cristal y el plástico. Esto permite un renderizado más realista y preciso de los materiales, así como efectos de iluminación más exactos, como reflejos, refracciones y sombras.

Además de mejorar el aspecto, también simplifica el flujo de trabajo del artista, ya que los materiales se basan en parámetros físicos, que son más intuitivos de usar y ajustar. Otra ventaja es que el uso de materiales PBR hace que el aspecto de los activos importados sea más coherente con la forma en que fueron diseñados.

Para más detalles sobre la teoría detrás de PBR, ver: https://learnopengl.com/PBR/Theory y https://academy.substance3d.com/courses/the-pbr-guide-part-1 para una explicación en profundidad.

Materiales y flujos de trabajo

Para aprovechar las ventajas del renderizado basado en la física, Qt Quick 3D ofrece tres materiales incorporados: PrincipledMaterial, SpecularGlossyMaterial, y CustomMaterial. Cada uno de estos materiales proporciona un flujo de trabajo diferente para definir las propiedades del material. La elección del flujo de trabajo y del material a utilizar dependerá del tipo de material que desee crear o del flujo de trabajo definido por la herramienta que esté utilizando para crear el material.

Flujo de trabajo Rugosidad metálica

El flujo de trabajo Rugosidad metálica es un método para implementar el renderizado basado en la física que utiliza dos parámetros principales para representar el aspecto de un material: la reflectancia metálica y la rugosidad de la superficie. La reflectancia metálica es un valor comprendido entre 0 (no metálico) y 1 (totalmente metálico) que determina la cantidad de luz que refleja el material y la cantidad que absorbe. La rugosidad de la superficie es un valor comprendido entre 0 (lisa) y 1 (rugosa) que determina el aspecto rugoso o liso de la superficie del material. El aspecto de un material en el flujo de trabajo Metálico/Rugosidad viene determinado por su color base, reflectancia metálica y valores de rugosidad superficial, que pueden almacenarse como texturas o valores constantes.

El color base del material para el flujo de trabajo Rugosidad metálica contiene tanto el color reflejado para los no metales (dieléctricos) como el valor de reflectancia para los metales.

MaterialPrincipal

PrincipledMaterial es el material principal que permite el flujo de trabajo Rugosidad metálica en Qt Quick 3D. A continuación se muestra un ejemplo de cómo utilizar el PrincipledMaterial:

import QtQuick
import QtQuick3D
import QtQuick3D.Helpers

Window {
    visible: true
    width: 640
    height: 480
    title: qsTr("PrincipledMaterial")

    View3D {
        anchors.fill: parent

        environment.backgroundMode: SceneEnvironment.SkyBox
        environment.lightProbe: Texture {
            textureData: ProceduralSkyTextureData {}
        }

        PerspectiveCamera {
            z: 150
            y: 40
            eulerRotation.x: -15
        }

        Model {
            x: -50
            source: "#Sphere"
            materials: [
                PrincipledMaterial {
                    baseColor: "red"
                    metalness: 0.0
                    roughness: 0.1
                }
            ]
        }
        Model {
            x: 50
            source: "#Sphere"
            materials: [
                PrincipledMaterial {
                    baseColor: "red"
                    metalness: 1.0
                    roughness: 0.1
                }
            ]
        }
    }
}

Este ejemplo muestra dos esferas, una con un material no metálico y otra con un material metálico y muestra los diferentes significados que tiene el color base dependiendo de la cantidad de metalidad.

Dos esferas rojas que demuestran las propiedades del material PBR

En el ejemplo anterior todas las propiedades relevantes del flujo de trabajo Rugosidad metálica se definen mediante un valor constante, pero también pueden definirse utilizando texturas. El siguiente ejemplo muestra cómo utilizar texturas para definir el color base, la metalización y la rugosidad de un material:

import QtQuick
import QtQuick3D
import QtQuick3D.Helpers

Window {
    visible: true
    width: 640
    height: 480
    title: qsTr("PrincipledMaterial with Textures")

    View3D {
        anchors.fill: parent

        environment.backgroundMode: SceneEnvironment.SkyBox
        environment.lightProbe: Texture {
            textureData: ProceduralSkyTextureData {
            }
        }

        PerspectiveCamera {
            z: 150
            y: 40
            eulerRotation.x: -15
        }

        Model {
            source: "#Sphere"
            materials: [
                PrincipledMaterial {
                    baseColorMap: Texture {
                        source: "red.png"
                    }
                    metalnessMap: Texture {
                        source: "metalness.png"
                    }
                    roughnessMap: Texture {
                        source: "roughness.png"
                    }
                }
            ]
        }
    }
}

CustomMaterial

Mientras que PrincipledMaterial es una forma muy flexible de crear materiales, a veces puede necesitar más control sobre las propiedades del material. Para ello, Qt Quick 3D proporciona el CustomMaterial, que le permite aumentar los valores utilizados en el flujo de trabajo Rugosidad Metálica ajustando el código shader utilizado por el material.

Ver Programmable Materials, Effects, Geometry, and Texture data para una introducción al aumento de materiales y el sistema de iluminación PBR incorporado con código shader personalizado.

Flujo de trabajo Especular y Brillo

El flujo de trabajo Especular/Brillo es un método para implementar el Renderizado Físicamente Basado que utiliza dos parámetros principales para representar la apariencia de un material: reflectancia especular y brillo. La reflectancia especular es un valor de color que determina el color y la intensidad de los reflejos especulares en la superficie del material. El brillo es un valor que va de 0 (áspero) a 1 (suave) y que determina el grado de aspereza o suavidad de la superficie del material. En el flujo de trabajo Especular/Brillo, el aspecto de un material viene determinado por sus valores de albedo, reflectancia especular y brillo, que pueden almacenarse como texturas o valores constantes. Un material con una alta reflectancia especular y bajo brillo aparecerá más metálico y tendrá reflejos especulares nítidos, mientras que un material con una baja reflectancia especular y alto brillo aparecerá más difuso y tendrá reflejos especulares suaves.

SpecularGlossyMaterial

El SpecularGlossyMaterial es el material que permite el Especular/Brillo en Qt Quick 3D.

Más ejemplos

Para más ejemplos, ver Qt Quick 3D - Ejemplo de Material de Principio y Qt Quick 3D - Ejemplo de Materiales Personalizados.

© 2026 The Qt Company Ltd. Documentation contributions included herein are the copyrights of their respective owners. The documentation provided herein is licensed under the terms of the GNU Free Documentation License version 1.3 as published by the Free Software Foundation. Qt and respective logos are trademarks of The Qt Company Ltd. in Finland and/or other countries worldwide. All other trademarks are property of their respective owners.