Qt Quick 3D - Ejemplo de material basado en principios
Demuestra el uso de Principled Material.

Este ejemplo sirve como documentación interactiva para el uso de PrincipledMaterial. Cada propiedad de PrincipledMaterial viene con alguna explicación de cómo se utiliza, así como una manera de experimentar con el ajuste de cada propiedad.
Uso de
Este ejemplo está dividido en dos vistas, la documentación interactiva y los controles a la izquierda, y el Visor 3D a la derecha. El Visor 3D es interactivo y permite orbitar la cámara alrededor del modelo objetivo. Para restablecer el enfoque en un modelo concreto, basta con tocar o hacer clic en el modelo que se desea enfocar. La división entre las dos vistas es redimensionable arrastrando la barra entre las vistas.
El ejemplo está dividido en varias secciones que agrupan las distintas características de PrincipledMaterial en fragmentos manejables. Se puede acceder a cada sección haciendo clic en las pestañas de la parte superior del área de explicación.
SpecularGlossyMaterial
Además de demostrar el flujo de trabajo Metalness/Roughness PBR proporcionado por PrincipledMaterial es posible cambiar a utilizar el flujo de trabajo Specular/Glossy que utiliza el SpecularGlossyMaterial. Esto se puede hacer mediante un interruptor en la sección Basics.
Cargador de recursos
La naturaleza más compleja de este ejemplo también ofrece la oportunidad de demostrar el uso del componente ResourceLoader. Cuando un modelo deja de ser visible en la escena, cualquier recurso asociado al modelo será liberado por Qt Quick 3D (asumiendo que ninguno de los recursos es utilizado por otros modelos en la escena). En este ejemplo es posible ocultar el modelo de la cortina, y al hacerlo 2 mallas y 2 texturas serían liberadas de la memoria de la GPU. Sin embargo, la próxima vez que la cortina se haga visible, estos recursos tendrán que volver a cargarse en la GPU. En algunos hardware esta carga puede causar una caída momentánea en la tasa de fotogramas, por lo que para mitigar esto se utiliza un componente ResourceLoader dentro del componente BackgroundCurtain.
ResourceLoader { meshSources: [ frame.source, curtain.source ] textures: [ tilePatternTexture, curtainNormalTexture ] } Model { id: frame z: -1.95 source: "meshes/frame.mesh" PrincipledMaterial { id: frame_material baseColor: "#ffcccccc" metalness: 1 roughness: 0.259091 alphaMode: PrincipledMaterial.Opaque } materials: [ frame_material ] } Model { id: curtain y: 3.02413 z: 2.04922 source: "meshes/curtain.mesh" PrincipledMaterial { id: curtain_material baseColorMap: Texture { id: tilePatternTexture source: "maps/tilepattern.png" generateMipmaps: true mipFilter: Texture.Linear } opacityChannel: Material.A roughness: 0.5 normalMap: Texture { id: curtainNormalTexture source: "maps/curtain_normal.jpg" generateMipmaps: true mipFilter: Texture.Linear } cullMode: Material.NoCulling alphaMode: PrincipledMaterial.Opaque } materials: [ curtain_material ] }
Aquí, tanto los archivos de malla como las texturas se registran en ResourceLoader. ResourceLoader se asegurará de que cualquier recurso registrado esté siempre listo para su uso en la memoria de la GPU, por lo que ahora, independientemente de la visibilidad de BackgroundCurtain, sus recursos se conservarán.
El ResouceLoaded también se puede utilizar para precargar recursos, como se muestra con las mallas de puntos y líneas en la pestaña "Special".
ResourceLoader { meshSources: [ "meshes/logo_lines.mesh", "meshes/logo_points.mesh" ] }
Aquí se listan directamente los QUrl's de los archivos de malla. Los recursos no tienen que estar asociados a un Modelo para ser utilizados por un ResourceLoader.
© 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.