Sur cette page

CubeMapTexture QML Type

Définit une texture de carte cubique à utiliser dans les scènes 3D. Plus d'informations...

Import Statement: import QtQuick3D
Inherits:

Texture

Description détaillée

CubeMapTexture est une texture qui représente une texture de carte cubique. Une texture cube map a 6 faces (X+, X-, Y+, Y-, Z+, Z-), où chaque face est une image 2D individuelle. CubeMapTexture permet à custom materials et post-processing effects de travailler avec des textures cube map dans leurs shaders. Une carte cubique peut également être utilisée pour définir l'environnement de la scène skybox.

CustomMaterial {
    property TextureInput customTexture: TextureInput {
        texture: CubeMapTexture {
            source: "cubemap.ktx"
        }
    }
    fragmentShader: "shader.frag"
}

Ici, shader.frag peut être implémenté en supposant que customTexture est un échantillonneur uniforme avec le type GLSL a samplerCube. Cela signifie que la fonction GLSL texture() prend un vec3 comme coordonnée de texture pour cet échantillonneur. Si nous avions utilisé Texture, le type aurait été sampler2D.

void MAIN()
{
    vec4 c = texture(customTexture, NORMAL);
    BASE_COLOR = vec4(c.rgb, 1.0);
}

L'approvisionnement d'une texture à partir d'un conteneur avec une cubemap ne charge que la face 0 (X+) et produit une texture 2D. En revanche, l'extraction d'une CubeMapTexture à partir de la même ressource permet de charger les 6 faces et d'obtenir une texture cubemap.

La CubeMapTexture hérite de toutes les propriétés de la Texture. La différence importante est que source doit faire référence à un fichier image contenant une cubemap, ou à une liste de fichiers images. En pratique, un fichier unique correspond à un conteneur KTX contenant 6 images de visage.

L'extraction d'une CubeMapTexture à partir de 6 images individuelles peut se faire de deux manières différentes. Soit sous la forme d'une liste de noms de fichiers séparés par des points-virgules dans l'ordre 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"
}

soit sous la forme d'une chaîne contenant un espace réservé "%p", où "%p" sera remplacé par les chaînes "posx", "negx", "posy", "negy", "posz" et "negz" pour générer les six noms de fichiers :

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

Remarque : l'approvisionnement en données d'images par d'autres moyens, tels que sourceItem ou textureData, n'est pas pris en charge par CubeMapTexture pour le moment.

Voir également Texture, CustomMaterial, et Effect.

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