QRhiShadingRateMap Class
Objet qui encapsule une texture ou un autre type d'objet natif de l'API 3D. En savoir plus...
| En-tête : | #include <rhi/qrhi.h> |
| CMake : | find_package(Qt6 REQUIRED COMPONENTS GuiPrivate) target_link_libraries(mytarget PRIVATE Qt6::GuiPrivate) |
| qmake : | QT += gui-private |
| Depuis : | Qt 6.9 |
| Hérite de : | QRhiResource |
Types publics
(since 6.9) struct | NativeShadingRateMap |
Fonctions publiques
| virtual bool | createFrom(QRhiShadingRateMap::NativeShadingRateMap src) |
| virtual bool | createFrom(QRhiTexture *src) |
Fonctions publiques réimplémentées
| virtual QRhiResource::Type | resourceType() const override |
Description détaillée
Remarque : il s'agit d'une API RHI dont la compatibilité n'est pas entièrement garantie ; pour plus de détails, consultez QRhi.
Pour une introduction au Variable Rate Shading (VRS), consultez https://learn.microsoft.com/en-us/windows/win32/direct3d12/vrs. Qt prend en charge un sous-ensemble des fonctionnalités VRS proposées par Direct 3D 12 et Vulkan. De plus, le mécanisme quelque peu différent de Metal est pris en charge en permettant de configurer un QRhiShadingRateMap à l'aide d'un objet MTLRasterizationRateMap existant.
Documentation des fonctions membres
[virtual] bool QRhiShadingRateMap::createFrom(QRhiShadingRateMap::NativeShadingRateMap src)
Configure la carte de taux d'ombrage pour utiliser un objet de taux d'ombrage de l'API 3D native src.
Renvoie « true » en cas de réussite, et « false » si la fonctionnalité n'est pas prise en charge.
Remarque : cette fonction n’est opérationnelle que lorsque la fonctionnalité QRhi::VariableRateShadingMap est signalée comme prise en charge, tandis que la fonctionnalité QRhi::VariableRateShadingMapWithTexture ne l’est pas. C’est actuellement le cas pour Metal, à condition que l’ombrage à taux variable soit pris en charge par le GPU.
Remarque : avec Metal, le champ « object » de « src » doit contenir un identifiant <MTLRASTERIZATIONRATEMAP>. Notez que Qt ne fait rien d’autre que de transmettre le MTLRasterizationRateMap au MTLRenderPassDescriptor. Si une mise à l’échelle particulière est nécessaire, il appartient à l’application (ou au compositeur XR) de la réaliser.
[virtual] bool QRhiShadingRateMap::createFrom(QRhiTexture *src)
Configure la carte des taux d'ombrage pour utiliser la texture src comme image contenant les taux d'ombrage par tuile.
Renvoie « true » en cas de réussite, « false » si cette fonctionnalité n’est pas prise en charge.
L’ QRhiShadingRateMap ne prend pas possession de src.
Remarque : cette fonction n'est disponible que lorsque la fonctionnalité « QRhi::VariableRateShadingMapWithTexture » est signalée comme prise en charge. En pratique, elle peut être prise en charge sur Vulkan et Direct 3D 12 avec des cartes graphiques récentes. Elle ne sera jamais prise en charge sur OpenGL ou Metal, par exemple.
Remarque : src doit avoir le format QRhiTexture::R8UI.
Remarque : la texture « src » doit avoir une largeur de ceil(render_target_pixel_width / (float)tile_width) et une hauteur de ceil(render_target_pixel_height / (float)tile_height). Il appartient à l’application de s’assurer à tout moment que la taille de la texture correspond à celle attendue, en utilisant la formule ci-dessus. La taille des tuiles peut être interrogée via QRhi::resourceLimit() et QRhi::ShadingRateImageTileSize.
Chaque octet (texel) de la texture correspond à la valeur du taux d’ombrage pour une tuile. La valeur 0 correspond à 1x1, tandis que la valeur 10 correspond à 4x4. Voir D3D12_SHADING_RATE pour les autres valeurs possibles.
[override virtual] QRhiResource::Type QRhiShadingRateMap::resourceType() const
Réimplémente : ` QRhiResource::resourceType()` const.
Renvoie le type de ressource.
© 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.