Auf dieser Seite

Physikalisch basiertes Rendering

Einführung

Physikalisch basiertes Rendering (PBR) ist eine Rendering-Technik, die darauf abzielt, die physikalischen Eigenschaften von Materialien und Lichtquellen in einer Szene genau zu simulieren. Es basiert auf den Prinzipien der Physik und nutzt Algorithmen, um die Wechselwirkung von Licht mit verschiedenen Materialien präzise zu modellieren.

Physikalisch basiertes Rendering berücksichtigt die Art und Weise, wie Licht von verschiedenen Oberflächen wie Metall, Glas und Kunststoff absorbiert, reflektiert und gestreut wird. Dies ermöglicht eine realistischere und genauere Darstellung von Materialien sowie präzisere Lichteffekte wie Reflexionen, Lichtbrechungen und Schatten.

Abgesehen davon, dass es besser aussieht, vereinfacht es auch den Arbeitsablauf des Künstlers, da Materialien auf physikalischen Parametern basieren, die intuitiver zu verwenden und anzupassen sind. Ein weiterer Vorteil ist, dass durch die Verwendung von PBR-Materialien das Erscheinungsbild importierter Assets besser mit dem übereinstimmt, wie sie ursprünglich entworfen wurden.

Weitere Details zur Theorie hinter PBR finden Sie unter: https://learnopengl.com/PBR/Theory sowie https://academy.substance3d.com/courses/the-pbr-guide-part-1 für eine ausführliche Erläuterung.

Materialien und Arbeitsabläufe

Um die Vorteile des Physically Based Rendering zu nutzen, bietet „ Qt Quick 3D “ drei integrierte Materialien: PrincipledMaterial, SpecularGlossyMaterial und CustomMaterial. Jedes dieser Materialien bietet einen anderen Arbeitsablauf zur Definition der Materialeigenschaften. Die Wahl des Arbeitsablaufs und des Materials hängt von der Art des Materials ab, das Sie erstellen möchten, oder vom Arbeitsablauf, der durch das von Ihnen zur Materialerstellung verwendete Tool vorgegeben ist.

Workflow „Metallic Roughness“

Der Arbeitsablauf „Metallische Rauheit“ ist eine Methode zur Umsetzung des physikalisch basierten Renderings (Physically Based Rendering), bei der zwei Hauptparameter zur Darstellung des Aussehens eines Materials verwendet werden: die metallische Reflektanz und die Oberflächenrauheit. Die metallische Reflektanz ist ein Wert zwischen 0 (nichtmetallisch) und 1 (vollständig metallisch), der bestimmt, wie viel des einfallenden Lichts vom Material reflektiert und wie viel absorbiert wird. Die Oberflächenrauheit ist ein Wert zwischen 0 (glatt) und 1 (rau), der bestimmt, wie rau oder glatt die Oberfläche des Materials erscheint. Das Erscheinungsbild eines Materials im „Metallic/Roughness“-Workflow wird durch seine Grundfarbe, die metallische Reflexion und die Oberflächenrauheit bestimmt, die als Texturen oder konstante Werte gespeichert werden können.

Die Grundfarbe des Materials für den „Metallic-Rauheit“-Workflow umfasst sowohl die reflektierte Farbe für Nichtmetalle (Dielektrika) als auch den Reflexionswert für Metalle.

PrincipledMaterial

Das „ PrincipledMaterial “ ist das Hauptmaterial, das den „Metallic-Roughness“-Workflow in „ Qt Quick 3D “ ermöglicht. Ein Beispiel für die Verwendung des „ PrincipledMaterial “ ist unten dargestellt:

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
                }
            ]
        }
    }
}

Dieses Beispiel zeigt zwei Kugeln, eine mit einem nichtmetallischen Material und eine mit einem metallischen Material, und veranschaulicht die unterschiedlichen Bedeutungen der Grundfarbe in Abhängigkeit vom Metallic-Anteil.

Zwei rote Kugeln, die die Materialeigenschaften von PBR veranschaulichen

Im vorherigen Beispiel werden alle relevanten Eigenschaften des „Metallic Roughness“-Workflows über einen konstanten Wert definiert, sie können jedoch auch mithilfe von Texturen festgelegt werden. Das folgende Beispiel zeigt, wie man Texturen verwendet, um die Grundfarbe, den Metallic-Anteil und die Rauheit eines Materials zu definieren:

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

Zwar ist „ PrincipledMaterial “ eine sehr flexible Methode zur Erstellung von Materialien, doch manchmal benötigen Sie möglicherweise mehr Kontrolle über die Materialeigenschaften. Zu diesem Zweck bietet „ Qt Quick 3D “ die Funktion „ CustomMaterial “ an, mit der Sie die im „Metallic Roughness“-Workflow verwendeten Werte erweitern können, indem Sie den vom Material verwendeten Shader-Code anpassen.

Eine Einführung in die Erweiterung von Materialien und des integrierten PBR-Beleuchtungssystems durch benutzerdefinierten Shader-Code finden Sie unter „Programmierbare Materialien, Effekte, Geometrie und Texturdaten “.

Workflow für Spiegelung und Glanz

Der „Specular/Glossiness“-Workflow ist eine Methode zur Implementierung von Physically Based Rendering, die zwei Hauptparameter zur Darstellung des Aussehens eines Materials verwendet: die spiegelnde Reflexion und den Glanzgrad. Die Spiegelreflexion ist ein Farbwert, der die Farbe und Intensität der Spiegelreflexe auf der Oberfläche des Materials bestimmt. Der Glanzgrad ist ein Wert im Bereich von 0 (rau) bis 1 (glatt), der bestimmt, wie rau oder glatt die Oberfläche des Materials erscheint. Im „Specular/Glossiness“-Workflow wird das Erscheinungsbild eines Materials durch seine Albedo-, Spiegelflexions- und Glanzwerte bestimmt, die als Texturen oder konstante Werte gespeichert werden können. Ein Material mit hoher spiegelnder Reflektanz und geringer Glanzgrad erscheint metallischer und weist scharfe Spiegelreflexe auf, während ein Material mit geringer spiegelnder Reflektanz und hohem Glanzgrad diffuser wirkt und weiche Spiegelreflexe aufweist.

SpecularGlossyMaterial

Das „ SpecularGlossyMaterial “ ist das Material, das die Funktion „Specular/Glossiness“ in „ Qt Quick 3D “ ermöglicht.

Weitere Beispiele

Weitere Beispiele finden Sie unter „Qt Quick 3D – Beispiel für ein Principled-Material “ und „Qt Quick 3D – Beispiel für benutzerdefinierte Materialien“.

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