QRhiShadingRateMap Class

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

ヘッダー #include <rhi/qrhi.h>
CMake: find_package(Qt6 REQUIRED COMPONENTS Gui)
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

Variable Rate Shading (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::VariableShadingRateMapWithTexture 機能がサポートされておらず、QRhi::VariableRateShadingMap 機能がサポートされていると報告された場合のみ機能します。現在のところ、これはMetalに当てはまり、可変レートシェーディングがGPUによってサポートされていると仮定します。

注意: Metal では、srcobject フィールドに id<MTLRasterizationRateMap> が含まれることが期待されます。Qt は MTLRasterizationRateMap を MTLRenderPassDescriptor に渡す以外、何も行わないことに注意してください。特別なスケーリングが必要な場合は、アプリケーション(または XR コンポジター)が実行します。

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

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

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

QRhiShadingRateMapsrc の所有権を持ちません。

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

注: srcQRhiTexture::R8UI のフォーマットを持たなければなりません。

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

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

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

再実装:QRhiResource::resourceType() const.

リソース型を返します。

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