En esta página

Qt Quick 3D - Ejemplo de submalla

Demuestra cómo asignar materiales a submallas.

Dos cubos con materiales de submalla

Este ejemplo demuestra cómo se asignan materiales y submallas.

Submallas y materiales

Cuando una Model está formada por dos o más mallas, éstas se denominan submallas. Cada submalla puede tener su propio material, pero no es necesario proporcionar más de un material por modelo. Si hay más submallas que materiales, se utilizará el último material de la lista materials para todas las submallas. Cuando un modelo tiene un material por submalla, éstos se asignan uno a uno, lo que significa que el primer material de la lista se aplica a la primera submalla, el segundo material a la segunda submalla, y así sucesivamente. El orden de las submallas en un modelo depende de cómo se creó y exportó el modelo con la herramienta de modelado 3D utilizada para crearlo.

El siguiente ejemplo muestra dos cubos distorsionados donde cada lado del cubo es una submalla propia.

Si nos fijamos en el cubo de la izquierda, podemos ver que hay un lado de color rojo, mientras que el resto de los lados son de color verde, la razón de esto es, por supuesto, que el material sólo tiene dos materiales, a saber, uno rojo, y uno verde. En nuestro modelo la primera submalla resulta ser el lado "superior" del cubo distorsionado, y puesto que el material rojo es el primero en la lista de materiales, obtiene un color rojo como era de esperar. El segundo material de la lista es el material verde que se asigna a la segunda submalla, que es la cara frontal del cubo distorsionado, y como es el último material de la lista, también será el material utilizado para todas las caras restantes del cubo distorsionado.

Cubo distorsionado con fondo rojo y frente y lados verdes

DistortedCube {
    x: -4
    scale: Qt.vector3d(2, 2, 2)
    materials: [ PrincipledMaterial {
        baseColor: "red"
        lighting: PrincipledMaterial.NoLighting
    },
    PrincipledMaterial {
                    baseColor: "green"
                    lighting: PrincipledMaterial.NoLighting
                } ]

Mirando el cubo de la derecha podemos ver que se le han dado algunos colores más, esto es por supuesto porque ahora hemos proporcionado un material para cada una de las seis submallas, cada una con un color diferente.

Cubo distorsionado con seis caras de colores diferentes

Model {
    source: "qrc:/meshes/distortedcube.mesh"

    PrincipledMaterial {
        id: frontTop_material
        baseColor: "red"
        cullMode: Material.NoCulling
        lighting: PrincipledMaterial.NoLighting
    }

    PrincipledMaterial {
        id: frontBottom_material
        baseColor: "green"
        cullMode: Material.NoCulling
        lighting: PrincipledMaterial.NoLighting
    }

    PrincipledMaterial {
        id: leftSide_material
        baseColor: "blue"
        cullMode: Material.NoCulling
        lighting: PrincipledMaterial.NoLighting
    }

    PrincipledMaterial {
        id: rightSide_material
        baseColor: "pink"
        cullMode: Material.NoCulling
        lighting: PrincipledMaterial.NoLighting
    }

    PrincipledMaterial {
        id: backSide_material
        baseColor: "orange"
        cullMode: Material.NoCulling
        lighting: PrincipledMaterial.NoLighting
    }

    PrincipledMaterial {
        id: bottomSide_material
        baseColor: "navy"
        cullMode: Material.NoCulling
        lighting: PrincipledMaterial.NoLighting
    }

    materials: [
        frontTop_material,
        frontBottom_material,
        leftSide_material,
        backSide_material,
        rightSide_material,
        bottomSide_material
    ]
}

Proyecto de ejemplo @ code.qt.io

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