このページでは

QRhiShadingRateMap Class

テクスチャや、その他のネイティブ3D APIオブジェクトをラップするオブジェクト。詳細...

ヘッダー: #include <rhi/qrhi.h>
CMake: find_package(Qt6 REQUIRED COMPONENTS GuiPrivate)
target_link_libraries(mytarget PRIVATE Qt6::GuiPrivate)
qmake: QT += gui-private
以下のように: Qt 6.9
継承元: QRhiResource

パブリック型

(since 6.9) struct NativeShadingRateMap

パブリック関数

virtual bool createFrom(QRhiShadingRateMap::NativeShadingRateMap src)
virtual bool createFrom(QRhiTexture *src)

再実装されたパブリック関数

virtual QRhiResource::Type resourceType() const override

詳細な説明

注:これは 互換性の保証が限定的な RHI API です。詳細については、QRhi を参照してください。

可変レートシェーディング(VRS)の概要については、https://learn.microsoft.com/en-us/windows/win32/direct3d12/vrs を参照してください。Qt は、Direct 3D 12 および Vulkan が提供する VRS 機能の一部をサポートしています。 さらに、既存の MTLRasterizationRateMap オブジェクトを使用して QRhiShadingRateMap を設定できるようにすることで、Metal のやや異なるメカニズムもサポートされています。

メンバ関数のドキュメント

[virtual] bool QRhiShadingRateMap::createFrom(QRhiShadingRateMap::NativeShadingRateMap src)

ネイティブ 3D API のシェーディングレートオブジェクト `src` を使用するように、シェーディングレートマップを設定します。

成功した場合は `true ` を返し、サポートされていない場合は `false ` を返します。

注:これは 、QRhi::VariableRateShadingMap 機能がサポートされていると報告されている場合にのみ機能し、QRhi::VariableRateShadingMapWithTexture 機能はサポートされていません。現在、GPU が可変レートシェーディングをサポートしている場合、Metal ではこれが当てはまります。

注: Metalを使用する場合 、src のobject フィールドには id<MTLRASTERIZATIONRATEMAP> が含まれていることが想定されます。Qt は MTLRasterizationRateMap を MTLRenderPassDescriptor に渡す以外の処理は一切行わないことに注意してください。 特別なスケーリングが必要な場合は、アプリケーション(またはXRコンポジター)がそれを実行する必要があります。

[virtual] bool QRhiShadingRateMap::createFrom(QRhiTexture *src)

シェーディングレートマップを設定し、src テクスチャをタイルごとのシェーディングレートを含む画像として使用するようにします。

成功した場合は `true ` を返し、サポートされていない場合は `false ` を返します。

QRhiShadingRateMap はsrc の所有権を取得しません。

注:これは 、QRhi::VariableRateShadingMapWithTexture 機能がサポートされていると報告されている場合にのみ機能します。実際には、最新のグラフィックスカードを使用している場合、VulkanやDirect 3D 12でサポートされる可能性があります。一方、OpenGLやMetalなどでは決してサポートされません。

注: src の形式はQRhiTexture::R8UI でなければなりません。

注: src の 幅はceil(render_target_pixel_width / (float)tile_width) 、高さはceil(render_target_pixel_height / (float)tile_height) でなければなりません。上記の式を用いて、テクスチャのサイズが常に期待どおりであることを保証するのはアプリケーションの責任です。タイルサイズは、QRhi::resourceLimit()およびQRhi::ShadingRateImageTileSize を通じて問い合わせることができます。

テクスチャ内の各バイト(テクセル)は、1つのタイルのシェーディングレート値に対応しています。0は1x1を、10は4x4を示します。その他の可能な値については、D3D12_SHADING_RATEを参照してください。

[override virtual] QRhiResource::Type QRhiShadingRateMap::resourceType() const

QRhiResource::resourceType() const を再実装します。

リソースの型を返します。

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