CubeMapTexture QML Type
Definiert eine Cube-Map-Textur zur Verwendung in 3D-Szenen. Mehr...
Import Statement: | import QtQuick3D |
Inherits: |
Detaillierte Beschreibung
CubeMapTexture ist eine Textur, die eine Cube-Map-Textur darstellt. Eine CubeMapTexture hat 6 Flächen (X+, X-, Y+, Y-, Z+, Z-), wobei jede Fläche ein einzelnes 2D-Bild ist. CubeMapTexture ermöglicht es custom materials und post-processing effects, mit Cube-Map-Texturen in ihren Shadern zu arbeiten. Eine CubeMap kann auch verwendet werden, um die Umgebung der Szene skybox zu definieren.
CustomMaterial { property TextureInput customTexture: TextureInput { texture: CubeMapTexture { source: "cubemap.ktx" } } fragmentShader: "shader.frag" }
Hier kann shader.frag unter der Annahme implementiert werden, dass customTexture
ein einheitlicher Sampler mit dem GLSL-Typ a samplerCube
ist. Das bedeutet, dass die GLSL-Funktion texture()
ein vec3
als Texturkoordinate für diesen Sampler nimmt. Hätten wir Texture verwendet, wäre der Typ sampler2D
gewesen.
void MAIN() { vec4 c = texture(customTexture, NORMAL); BASE_COLOR = vec4(c.rgb, 1.0); }
Die Beschaffung einer Textur aus einem Container mit einer Cubemap lädt nur die Fläche 0 (X+) und ergibt eine 2D-Textur. Wenn Sie hingegen eine CubeMapTexture aus demselben Asset beziehen, werden alle 6 Flächen geladen und Sie erhalten eine Cubemap-Textur.
CubeMapTexture erbt alle seine Eigenschaften von Texture. Der wichtige Unterschied ist, dass source auf eine Bilddatei verweisen muss, die eine Cubemap enthält, oder auf eine Liste von Bilddateien. In der Praxis bedeutet eine einzelne Datei einen KTX-Container, der 6 Gesichtsbilder enthält.
Die Beschaffung einer CubeMapTexture aus 6 Einzelbildern kann auf zwei verschiedene Arten erfolgen. Entweder als Semikolon-getrennte Liste von Dateinamen in der Reihenfolge X+, X-, Y+, Y-, Z+, Z-:
CubeMapTexture { source: "maps/right.jpg;maps/left.jpg;maps/top.jpg;maps/bottom.jpg;maps/front.jpg;maps/back.jpg" }
oder als Zeichenkette mit dem Platzhalter "%p", wobei "%p" durch die Zeichenketten "posx", "negx", "posy", "negy", "posz" und "negz" ersetzt wird, um die sechs Dateinamen zu erzeugen:
CubeMapTexture { source: "maps/sky_%p.png" // equivalent to: // source: "maps/sky_posx.png;maps/sky_negx.png;maps/sky_posy.png;maps/sky_negy.png;maps/sky_posz.png;maps/sky_negz.png" }
Hinweis: Die Beschaffung von Bilddaten über andere Wege, wie sourceItem oder textureData, wird für CubeMapTexture derzeit nicht unterstützt.
Siehe auch Texture, CustomMaterial, und Effect.
© 2025 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.