このページでは

Texture QML Type

3Dシーンで使用するテクスチャを定義します。詳細...

Import Statement: import QtQuick3D
Inherits:

Object3D

Inherited By:

CubeMapTexture

プロパティ

詳細な説明

テクスチャとは、技術的にはピクセルの配列(1D、2D、または3D)および、縮小・拡大フィルター、スケーリング、UV変換などの関連設定の総称です。

Qt Quick 3DにおけるTexture型は、2次元画像を表します。通常、3次元ジオメトリにマッピングしたり、巻き付けたりして、3Dでは効率的にモデリングできない追加のディテールを再現するために使用されます。また、反射などの他の照明効果を再現するためにも使用できます。

Texture 自体は常に 2D テクスチャを表しますが、Texture のサブクラスを通じて他の種類のテクスチャも利用可能です。たとえば、6 面のキューブマップテクスチャを作成するには、CubeMapTexture 型を使用します。

ジオメトリがレンダリングされる際、メッシュの頂点に設定されたUV座標(テクスチャ座標)を変換および補間することで、表面上の各位置がテクスチャ内の対応する位置に変換されます。 その後、アクティブなマテリアルをレンダリングするために使用されるフラグメントシェーダープログラムは、通常、指定された座標でマテリアルのテクスチャをサンプリングし、そのサンプリングデータを光の計算に使用します。

注:マテリアルは 、3D シーン内で光との望ましい相互作用を実現するために、複数のテクスチャを使用する場合があります。テクスチャは、ジオメトリ表面の各テクセルの色だけでなく、表面のその他の属性も表現することができます。 たとえば、「法線マップ」は、表面の各テクセルのジオメトリ法線からのずれを表し、ひびや凹凸など、表面のより細かいディテールにおける光との相互作用をエミュレートすることができます。複数のテクスチャマップを持つマテリアルの実例については、プリンシプルド・マテリアルの例をご覧ください。

テクスチャオブジェクトは、以下の場所から画像データを取得できます:

  • source プロパティを使用して画像またはテクスチャファイルから、
  • sourceItem プロパティを使用して、Qt Quick のItem を指定する、
  • または、textureData プロパティをTextureData 項目のサブクラスに設定して、カスタムテクスチャの内容を定義する方法。

次の例では、画像「madewithqt.png」をデフォルトの球体メッシュにマッピングし、球体の表面に画像がタイル状に配置されるよう UV 座標をスケーリングしています。

Model {
    source: "#Sphere"
    materials: [ PrincipledMaterial {
            baseColorMap: Texture {
                source: "madewithqt.png"
                scaleU: 4.0
                scaleV: 4.0
            }
        }
    ]
}

結果は次のようになります:

元の画像球体にマッピングされた状態

Qtのロゴが入った製品

Qtのロゴをテクスチャマップとして適用した球体

「Qt Quick 3D - プロシージャルテクスチャの例」も参照してください 。

プロパティのドキュメント

autoOrientation : bool [since 6.2]

このプロパティは、Vテクスチャ座標の反転など、テクスチャ変換が通常関連するテクスチャに対して、その変換が自動的に適用されるかどうかを決定します。

デフォルトでは、このプロパティは true に設定されています。

source プロパティを介して.ktxまたは.pkmファイルから読み込まれた圧縮テクスチャや、sourceItem プロパティを介してQt Quick シーンをレンダリングして生成されたテクスチャなど、特定の種類のテクスチャデータは、.pngや.jpgなどの画像ファイルから読み込まれたテクスチャと比較して、Y軸の向きが異なることがよくあります。 そのため、このようなテクスチャは、ソースが通常の画像ファイルに設定されているテクスチャと比較して「上下逆さま」に表示されます。これを修正するために、該当するテクスチャには、flipV プロパティがtrueに設定されているかのように、暗黙的なUV変換が適用されます。これを望まない場合は、このプロパティをfalseに設定してください。

注:この プロパティは 、テクスチャがDefaultMaterialまたはPrincipledMaterial と組み合わせて使用される場合に有効です。Custom materials は独自のシェーダーコードを提供するため、このプロパティで設定されたような変換は無視され、実装はアプリケーションが提供するシェーダーコードに委ねられます。

このプロパティは Qt 6.2 で導入されました。

「flipV」も参照してください 。

flipU : bool

このプロパティは、水平反転したテクスチャ座標の使用を設定します。

デフォルトは false です。

注:この プロパティは 、Texture が DefaultMaterial またはPrincipledMaterial と組み合わせて使用される場合に有効です。Custom materials は独自のシェーダーコードを提供するため、このプロパティで設定されたような変換は無視され、アプリケーションが提供するシェーダーコードで実装されることになります。

「flipV」も参照してください 。

flipV : bool

このプロパティは、垂直方向に反転したテクスチャ座標の使用を設定します。

デフォルト値は false です。

注:この プロパティは 、Texture が DefaultMaterial またはPrincipledMaterial と組み合わせて使用される場合に有効になります。Custom materials は独自のシェーダーコードを提供するため、このプロパティで設定されたような変換は無視され、実装はアプリケーションが提供するシェーダーコードに委ねられます。

「flipU」も参照してください 。

generateMipmaps : bool

このプロパティは、ミップマップレベルを自身で提供していないテクスチャに対して、ミップマップを生成するかどうかを決定します。ミップマップとミップフィルタリングを併用すると、それらを使用しない場合と比較して、遠距離からテクスチャを表示する際の画質が向上しますが、パフォーマンスの低下(画像の初期化時およびレンダリング中)を招く可能性があります。

デフォルトでは、このプロパティは false に設定されています。

注: 生成されたミップマップを使用するには、mipFilter モードを設定する必要があります 。

注:この プロパティは 、テクスチャの内容が `sourceItem ` プロパティで参照される `Qt Quick ` アイテムに基づいている場合には適用されません。動的テクスチャに対するミップマップの生成は、パフォーマンス上の影響により実行不可能です。そのため、そのようなテクスチャに対しては、このプロパティの値は無視されます。

「mipFilter」も参照してください 。

indexUV : int

このプロパティは、このテクスチャで使用されるUV座標インデックスを設定します。QtQuick3D では現時点で2つのUVセット(0または1)のみをサポートしているため、この値は指定された範囲内に収められます。

デフォルト値は 0 です。

magFilter : enumeration

このプロパティは、テクスチャが「拡大」されたとき、つまりテクセルが画面空間上で複数のピクセルをカバーする場合に、テクスチャがどのようにサンプリングされるかを決定します。

デフォルト値はTexture.Linear です。

定数説明
Texture.Nearestは、最も近いテクセルの値を使用します。
Texture.Linear最も近いテクセルの値を使用します。最も近い 4 つのテクセルを取り、それらを双線形補間します。

注: ここで `Texture.None `を使用すると 、代わりに `Texture.Linear ` がデフォルトとして設定されます。

「 minFilter 」および「mipFilter 」も参照してください 。

mappingMode : enumeration

このプロパティは、このテクスチャをサンプリングする際に使用するマッピング方法を定義します。

定数説明
Texture.UVデフォルト値。ベースカラー、ディフューズ、不透明度、およびその他のほとんどのテクスチャマップに適しています。標準的なUVマッピングを実行します。UV座標が変形されたりアニメーション化されたりしない限り、画像の同じ部分が常に同じ頂点に表示されます。
Texture.Environment「specular reflection 」で使用すると、画像がまるで反射しているかのようにマテリアルに投影されます。他のタイプのテクスチャマップでこのモードを使用すると、鏡面反射のような効果が得られます。
Texture.LightProbeライトプローブで使用されるHDRIスフィアマップのデフォルト設定です。このモードは、「lightProbe 」プロパティに関連付けられたテクスチャオブジェクトに対しては、自動的に適用されるため、手動で設定する必要はありません。

minFilter : enumeration

このプロパティは、テクスチャが「最小化」された場合、つまりテクセルが画面空間で 1 ピクセル未満の領域をカバーする場合に、テクスチャがどのようにサンプリングされるかを決定します。

デフォルト値はTexture.Linear です。

定数説明
Texture.Nearestは、最も近いテクセルの値を使用します。
Texture.Linear最も近いテクセルの値を使用します。最も近い 4 つのテクセルを取り、それらを双線形補間します。

注: ここで `Texture.None `を使用すると 、代わりに `Texture.Linear ` がデフォルトとして設定されます。

「 magFilter 」および「mipFilter 」も参照してください 。

mipFilter : enumeration

このプロパティは、テクセルが1ピクセル未満の領域をカバーする場合に、テクスチャのミップマップがどのようにサンプリングされるかを決定します。

デフォルト値はTexture.None です。

定数説明
Texture.Noneは、ミップマップサンプリングの使用を無効にします。
Texture.Nearestミップマッピングを使用し、最も近いテクセルの値をサンプリングします。
Texture.Linearミップマッピングを使用し、複数のテクセル値の間を補間します。

注:この プロパティは、ミップマップを持たないテクスチャには影響しません。

関連項目: minFilter およびmagFilter 。

pivotU : real

このプロパティは、rotationUV を適用する際に使用されるピボットのU座標を設定します。

デフォルト値は 0.0 です。

注:この プロパティは 、テクスチャが DefaultMaterial またはPrincipledMaterial と組み合わせて使用される場合に有効です。Custom materials は独自のシェーダーコードを提供するため、このプロパティで設定されたような変形は無視され、アプリケーションが提供するシェーダーコードで実装されることになります。

「rotationUV」も参照してください 。

pivotV : real

このプロパティは、rotationUV を適用する際に使用されるピボットのV位置を設定します。

デフォルト値は 0.0 です。

注:この プロパティは 、テクスチャが DefaultMaterial またはPrincipledMaterial と組み合わせて使用される場合に有効です。Custom materials は独自のシェーダーコードを提供するため、このプロパティで設定されたような変換は無視され、アプリケーションが提供するシェーダーコードで実装されることになります。

「 pivotU 」および「rotationUV 」も参照してください 。

positionU : real

このプロパティは、U座標のマッピングを左から右へオフセットします。

デフォルト値は 0.0 です。

注:この プロパティは 、テクスチャが DefaultMaterial またはPrincipledMaterial と組み合わせて使用される場合に有効です。Custom materials は独自のシェーダーコードを提供するため、このプロパティで設定されるような変換は無視され、アプリケーションが提供するシェーダーコードで実装されることになります。

「positionV」も参照してください 。

positionV : real

このプロパティは、V座標のマッピングを「下」から「上」へとオフセットします。

デフォルト値は 0.0 です。

注: Qt Quick 3D は、実行時に使用されるグラフィックス API に関係なく、OpenGL 形式の頂点データを使用します。したがって、UV 位置(0, 0) は、画像データの左下隅を指します。

注:この プロパティは 、Texture が DefaultMaterial またはPrincipledMaterial と組み合わせて使用される場合に有効です。Custom materials は独自のシェーダーコードを提供するため、このプロパティで設定されたような変換は無視され、アプリケーションが提供するシェーダーコードで実装されることになります。

「positionU」も参照してください 。

rotationUV : real

このプロパティは、ピボット点を軸としてテクスチャを回転させます。これはオイラー角を用いて定義され、正の値の場合、回転は時計回りになります。

デフォルト値は 0.0 です。

注:この プロパティは 、テクスチャが DefaultMaterial またはPrincipledMaterial と組み合わせて使用される場合に有効です。Custom materials は独自のシェーダーコードを提供するため、このプロパティで設定されたような変換は無視され、アプリケーションが提供するシェーダーコードで実装されることになります。

「 pivotU 」および「pivotV 」も参照してください 。

scaleU : real

このプロパティは、メッシュのUV座標にマッピングする際に、Uテクスチャ座標をどのようにスケーリングするかを定義します。

水平タイリングを使用する際に U 値をスケーリングすることで、テクスチャが左から右へ何回繰り返されるかが決まります。

デフォルト値は 1.0 です。

注:この プロパティは 、テクスチャが DefaultMaterial またはPrincipledMaterial と組み合わせて使用される場合に有効です。Custom materials は独自のシェーダーコードを提供するため、このプロパティで設定されたような変換は無視され、アプリケーションが提供するシェーダーコードで実装されることになります。

「tilingModeHorizontal」も参照してください 。

scaleV : real

このプロパティは、メッシュのUV座標にマッピングする際に、Vテクスチャ座標をどのようにスケーリングするかを定義します。

垂直タイリングを使用する際にV値をスケーリングすることで、テクスチャが下から上へ何回繰り返されるかが決まります。

デフォルト値は 1.0 です。

注:この プロパティは 、テクスチャが DefaultMaterial またはPrincipledMaterial と組み合わせて使用される場合に有効です。Custom materials は独自のシェーダーコードを提供するため、このプロパティで設定されたような変換は無視され、アプリケーションが提供するシェーダーコードで実装されることになります。

「tilingModeVertical」も参照してください 。

source : url

このプロパティには、テクスチャで使用されるデータを含む画像ファイルまたはテクスチャファイルの場所が格納されます。

このプロパティはURLであり、Image.source など、他のソースプロパティと同じ規則に従います。Textureでは、qrc およびfile のスキームのみがサポートされています。スキームが指定されておらず、値が相対パスである場合は、コンポーネント(つまり.qml ファイル)の場所を基準とする相対パスであるとみなされます。

ソースファイルは、supported by Qt に記載されているような、一般的な画像ファイル形式であればどれでも使用できます。さらに、Texture は QtQuick::Image と同じcompressed texture file types をサポートしています。

注: .png や .jpg などの画像ファイルから読み込まれたテクスチャ データは 、Qt Quick 3D レンダリングエンジンで定義された順序で、テクスチャ内のピクセルの行が格納されます。ソースファイルが(圧縮されている可能性のある)テクスチャデータのコンテナである場合、このような変換はピクセルデータレベルでは行われません。 その例として、.ktx や .pkm ファイルが挙げられます。その代わりに、Texture は画面上の結果を同一にするために、フラグメントシェーダーコード内で垂直反転を暗黙的に有効にします。これはautoOrientation プロパティによって制御され、必要に応じて無効にすることも可能です。

注:一部のテク スチャ圧縮ツールでは、画像データに対して自動的な垂直ミラーリング(反転)が適用される場合があります。最新のツールでは、これは多くの場合、有効にするかどうかを選択できる設定となっています。 アセット調整パイプラインで使用される設定を把握しておくことは重要です。なぜなら、予期せぬテクスチャの反転、ひいてはオブジェクトのテクスチャリングの不正確さは、アプリケーションやレンダリングエンジンの制御の及ばない、アセット自体に根本的な原因がある可能性があるからです。アセットで必要とされる場合、アプリケーションはいつでもflipV プロパティを自ら設定することができます。

関連項目: sourceItem 、textureData 、autoOrientation 、およびflipV 。

sourceItem : Item

このプロパティは、テクスチャのソースとして使用するアイテムを定義します。このプロパティを使用すると、任意の 2DQt Quick コンテンツをオフスクリーンレイヤーとしてレンダリングすることで、テクスチャソースとして利用できるようになります。

アイテムがtexture provider である場合、追加のテクスチャは使用されません。

このプロパティが設定されている場合、source の値は無視されます。テクスチャは、画像データを提供するために 1 つのメソッドを使用し、source、sourceItem、textureData のうち 1 つだけを設定する必要があります。

注:現在 、入力イベントは、ユーザーが一度に 1 つの sourceItem インスタンスとのみ対話するように制限されている場合にのみ、テクスチャソースとして使用される Item に転送されます。 つまり、複数のテクスチャ間で同じItemを共有することは可能ですが、その場合、複数のテクスチャ上の同じアイテムに対して同時にマルチタッチ操作を行うことはできません。したがって、テクスチャ内部のインタラクティブなアイテムを操作する予定がある場合は、テクスチャインスタンスごとに個別の2Dサブシーンインスタンスを使用することをお勧めします。

注: 複数のウィンドウから参照されるテクスチャでこのプロパティを使用することは 、強く推奨されません。これには、View3D::importScene 経由での使用も含まれます。このプロパティによって作成されるソーステクスチャには 1 つのレンダリングスレッドしかアクセスできないため、デフォルトのthreaded ではなく、Qt Quick のbasic レンダリングループを使用しない限り、複数のQQuickWindow インスタンス間でそれを共有しようとすると失敗します。Qt Quick のレンダリングループに関する詳細については、「Qt Quick シーングラフ」を参照してください。

注: Qt Quick のオフスクリーン・レンダリング・パスの結果を含むテクスチャは 、source プロパティを介してコンテンツを受け取るテクスチャとは、事実上異なる Y 軸の向きを持つことになります。 DefaultMaterial やPrincipledMaterial と組み合わせて使用する場合、autoOrientation プロパティが true に設定されていれば、必要な UV 変換が自動的に適用されるため、テクスチャの取得方法に関係なく、アプリケーション側ではこの動作を認識する必要はなく、追加の処理も不要です。 ただし、custom materials を開発する際は、シェーダーコードの作成者がテクスチャをサンプリングしたりUV座標を扱ったりする際に、この点を留意しておく必要があります。

関連項目 :source 、textureData 、およびautoOrientationも参照してください 。

textureData : TextureData

このプロパティは、生のテクスチャデータのコンテンツとプロパティを定義するTextureData コンポーネントへの参照を保持します。

このプロパティが使用された場合、source の値は無視されます。Textureは、画像データを提供するために1つのメソッドを使用し、source、sourceItem 、またはtextureDataのうち1つだけを設定する必要があります。

「 source 」、「sourceItem 」、および「Qt Quick 3D - プロシージャルテクスチャの例」も参照してください 。

textureProvider : RenderExtension [since 6.7]

このプロパティには、このアイテムで使用されるQRhiTexture を提供するRenderExtension が格納されます。

注: RenderExtension によって作成されたテクスチャは 、registering を通じてエンジンに提供される必要があります。

このプロパティは Qt 6.7 で導入されました。

関連項目: TextureProviderExtension 、RenderExtension 、およびQSSGRenderExtensionHelpers 。

tilingModeDepth : enumeration

このプロパティは、Zスケーリングの値が1より大きい場合に、テクスチャがどのようにマッピングされるかを制御します。

デフォルトでは、このプロパティはTexture.Repeat に設定されています。

定数説明
Texture.ClampToEdgeテクスチャはタイル化されず、代わりにエッジの値が使用されます。
Texture.MirroredRepeatテクスチャは繰り返し表示され、Z 軸に沿って鏡像化されます。
Texture.Repeatテクスチャは Z 軸に沿って繰り返されます。

tilingModeHorizontal : enumeration

Uスケーリング値が1より大きい場合に、テクスチャがどのようにマッピングされるかを制御します。

デフォルトでは、このプロパティはTexture.Repeat に設定されています。

定数説明
Texture.ClampToEdgeテクスチャはタイル化されず、代わりにエッジの値が使用されます。
Texture.MirroredRepeatテクスチャは繰り返し表示され、X 軸に対して鏡像として表示されます。
Texture.Repeatテクスチャは X 軸に沿って繰り返されます。

「scaleU」も参照してください 。

tilingModeVertical : enumeration

このプロパティは、Vスケーリングの値が1より大きい場合に、テクスチャがどのようにマッピングされるかを制御します。

デフォルトでは、このプロパティはTexture.Repeat に設定されています。

定数説明
Texture.ClampToEdgeテクスチャはタイル化されず、代わりにエッジの値が使用されます。
Texture.MirroredRepeatテクスチャは繰り返し表示され、Y 軸を基準に鏡像が反映されます。
Texture.Repeatテクスチャは Y 軸に沿って繰り返されます。

「scaleV」も参照してください 。

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