이 페이지에서

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 씬에서 빛과 원하는 상호 작용을 구현하기 위해 여러 텍스처를 사용할 수 있습니다. 이는 지오메트리 표면의 각 텍셀 색상뿐만 아니라 표면의 다른 속성도 표현할 수 있습니다. 예를 들어, “노멀 맵”은 표면의 각 텍셀에 대해 지오메트리 노멀과의 편차를 나타내어, 균열이나 요철과 같은 표면의 미세한 디테일과 빛의 상호작용을 재현할 수 있습니다. 여러 텍스처 맵을 사용하는 머티리얼의 예시는 ‘원칙 기반 머티리얼(principled material)’ 예제를 참조하십시오.

텍스처 오브젝트는 다음에서 이미지 데이터를 가져올 수 있습니다:

  • 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입니다.

참고: 이 속성은 텍스처가 DefaultMaterial 또는 PrincipledMaterial 과 함께 사용될 때 유효합니다. Custom materials 는 자체 셰이더 코드를 제공하므로, 이 속성으로 구성된 변환은 무시되며, 이를 구현하는 것은 애플리케이션에서 제공하는 셰이더 코드의 몫입니다.

flipV도 참조하십시오 .

flipV : bool

이 속성은 수직으로 반전된 텍스처 좌표의 사용 여부를 설정합니다.

기본값은 false입니다.

참고: 이 속성은 텍스처가 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가장 가까운 텍셀의 값을 사용합니다.가장 가까운 네 개의 텍셀을 선택하여 이차 선형 보간을 수행합니다.

참고: 여기서 Texture.None 를사용하면 대신 Texture.Linear 가 기본값으로 설정됩니다.

minFilter 및 mipFilter도 참조하십시오 .

mappingMode : enumeration

이 속성은 이 텍스처를 샘플링할 때 사용할 매핑 방법을 정의합니다.

상수설명
Texture.UV기본값입니다. 기본 색상, 디퓨즈, 불투명도 및 대부분의 다른 텍스처 맵에 적합합니다. 표준 UV 매핑을 수행합니다. UV 좌표가 변환되거나 애니메이션 처리되지 않는 한, 이미지의 동일한 부분이 항상 동일한 버텍스에 표시됩니다.
Texture.Environmentspecular 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

이 속성은 텍스처의 소스로 사용될 아이템을 정의합니다. 이 속성을 사용하면 해당 아이템을 오프스크린 레이어로 렌더링함으로써, 모든 2D Qt Quick 콘텐츠를 텍스처 소스로 활용할 수 있습니다.

해당 아이템이 ` texture provider`인 경우, 별도의 텍스처는 사용되지 않습니다.

이 속성이 설정된 경우, ` source `의 값은 무시됩니다. 텍스처는 하나의 메서드를 사용하여 이미지 데이터를 제공해야 하며, `source`, `sourceItem` 또는 ` textureData` 중 하나만 설정해야 합니다.

참고: 현재 입력 이벤트는 사용자가 한 번에 하나의 sourceItem 인스턴스와만 상호 작용할 수 있는 경우에만 텍스처 소스로 사용되는 Item으로 전달됩니다. 다시 말해, 여러 텍스처 간에 동일한 Item을 공유할 수는 있지만, 이 경우 여러 텍스처에서 동일한 Item에 대해 동시에 멀티터치 상호작용을 수행할 수는 없습니다. 따라서 내부에서 상호작용 가능한 항목을 조작할 예정이라면, 각 텍스처 인스턴스마다 별도의 2D 서브씬 인스턴스를 사용하는 것이 가장 좋습니다.

참고: 여러 창에서 참조되는 텍스처에서 이 속성을사용하는 것은 강력히 권장하지 않습니다. 여기에는 View3D::importScene 를 통한 사용도 포함됩니다. 이 속성으로 생성된 소스 텍스처는 하나의 렌더 스레드에서만 접근할 수 있으므로, 기본 threaded 렌더 루프 대신 Qt Quick 의 basic 렌더 루프를 사용하지 않는 한, 여러 QQuickWindow 인스턴스 간에 이를 공유하려는 시도는 실패할 것입니다. Qt Quick 렌더 루프에 대한 자세한 내용은 Qt Quick Scene Graph를 참조하십시오.

참고: Qt Quick 의 오프스크린 렌더 패스 결과를 포함하는텍스처는 , source 속성을 통해 콘텐츠를 수신하는 텍스처가 사용하는 것과는 다른 Y축 방향을 갖게 됩니다. DefaultMaterial 또는 PrincipledMaterial 과 함께 사용할 경우, autoOrientation 속성이 true로 설정되어 있는 한 필요한 UV 변환이 자동으로 적용되므로, 텍스처의 소스가 어떻게 되든 상관없이 애플리케이션에서는 이 모든 과정이 투명하게 처리되며 별도의 조치가 필요하지 않습니다. 그러나 custom materials 를 개발할 때는 셰이더 코드 작성자가 텍스처를 샘플링하고 UV 좌표를 다룰 때 이 점을 염두에 두어야 합니다.

관련 문서: source, textureData, autoOrientation.

textureData : TextureData

이 속성은 원시 텍스처 데이터의 내용과 속성을 정의하는 ‘ TextureData ’ 컴포넌트에 대한 참조를 보유합니다.

이 속성이 사용될 경우, ` source `의 값은 무시됩니다. `Texture`는 이미지 데이터를 제공하기 위해 하나의 메서드만 사용해야 하며, `source`, ` sourceItem` 또는 `textureData` 중 하나만 설정해야 합니다.

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.