QQuick3DTextureData Class
사용자 정의 텍스처 데이터를 정의하기 위한 기본 클래스. 더 보기...
| Header: | #include <QQuick3DTextureData> |
| Since: | Qt 6.0 |
| In QML: | TextureData |
| Inherits: | QQuick3DObject |
공개 유형
| enum | Format { None, RGBA8, RGBA16F, RGBA32F, RGBE8, …, ASTC_12x12 } |
공개 함수
| int | depth() const |
| QQuick3DTextureData::Format | format() const |
| bool | hasTransparency() const |
| void | setDepth(int depth) |
| void | setFormat(QQuick3DTextureData::Format format) |
| void | setHasTransparency(bool hasTransparency) |
| void | setSize(const QSize &size) |
| void | setTextureData(const QByteArray &data) |
| QSize | size() const |
| const QByteArray | textureData() const |
상세 설명
QQuick3DTextureData 클래스는 Qt Quick 3D 장면에서 Texture 에 대한 사용자 정의 텍스처 데이터를 지정하는 데 사용할 수 있습니다.
꼭 필요한 것은 아니지만, 일반적으로 이 클래스를 상속하여 사용합니다. 그런 다음 하위 클래스를 타입 시스템에 등록하여 QML에 노출시킵니다. 그러면 Texture 의 textureData 속성을 설정하여 등록된 타입의 인스턴스를 참조할 수 있습니다.
구현 예시:
class CustomTextureData : public QQuick3DTextureData
{
Q_OBJECT
... properties ...
public:
CustomTextureData() { regenerateTextureData(); }
void setProperty(...)
{
// Change relevant internal data.
// ...
// Update the texture data
regenerateTextureData();
// Finally, trigger an update. This is relevant in case nothing else
// is changed in the scene; this way we make sure a new frame will
// be rendered
update();
}
private:
void regenerateTextureData()
{
QByteArray textureData;
textureData = generateTextureData();
setTextureData(textureData);
setSize(QSize(256, 256));
setFormat(QQuick3DTextureData::Format::RGBA8)
setHasTransparency(true);
}
};이 클래스는 QML 타입으로 등록된 후 ` Texture`와 함께 사용할 수 있습니다.
Qt 5에서는 ` qmlRegisterType`을 통해 유형 등록이 이루어졌습니다:
qmlRegisterType<MyCustomTextureData>("Example", 1, 0, "MyCustomTextureData");Qt 6에서는 빌드 시스템을 이용한 자동 등록이 기본 방식입니다. qmlRegisterType 를 호출하는 대신, .pro 파일에 다음 내용을 포함할 수 있습니다:
CONFIG += qmltypes
QML_IMPORT_NAME = Example
QML_IMPORT_MAJOR_VERSION = 1CMake를 사용할 경우 자동 등록이 기본 동작이므로, 기본적인 QML 모듈 설정 외에 별도의 설정이 필요하지 않습니다:
qt_add_qml_module(application
URI Example
VERSION 1.0
)클래스 구현체에서는 QML_NAMED_ELEMENT 를 추가해야 합니다:
class CustomTextureData : public QQuick3DTextureData
{
Q_OBJECT
QML_NAMED_ELEMENT(MyCustomTextureData)
...
};그러면 QML 코드에서 사용자 정의 타입을 사용할 수 있습니다:
import Example 1.0
Model {
source: "#Cube"
materials: [
DefaultMaterial {
diffuseMap: diffuseMapCustomTexture
}
]
Texture {
id: diffuseMapCustomTexture
textureData: MyCustomTextureData { }
}
}멤버 타입 문서
enum QQuick3DTextureData::Format
textureData 속성에 할당된 텍스처 데이터의 색상 형식을 반환합니다.
| 상수 | 값 | 설명 |
|---|---|---|
QQuick3DTextureData::None | 0 | 색상 형식이 정의되지 않았습니다. |
QQuick3DTextureData::RGBA8 | 1 | 색상 형식은 R, G, B 및 알파 채널에서 8비트 정수로 간주됩니다. |
QQuick3DTextureData::RGBA16F | 2 | 색상 형식은 R, G, B 및 알파 채널에서 16비트 부동 소수점으로 간주됩니다. |
QQuick3DTextureData::RGBA32F | 3 | 색상 형식은 R, G, B 및 알파 채널에서 32비트 부동 소수점으로 간주됩니다. |
QQuick3DTextureData::RGBE8 | 4 | 색상 형식은 R, G, B 채널에서 8비트 맨티사, 8비트 공유 지수로 간주됩니다. |
QQuick3DTextureData::R8 | 5 | 색상 형식은 R 채널에서 8비트 정수로 간주됩니다. |
QQuick3DTextureData::R16 | 6 | 색상 형식은 R 채널에서 16비트 정수로 간주됩니다. |
QQuick3DTextureData::R16F | 7 | 색상 형식은 R 채널에서 16비트 부동 소수점으로 간주됩니다. |
QQuick3DTextureData::R32F | 8 | 색상 형식은 R 채널에서 32비트 부동 소수점으로 간주됩니다. |
QQuick3DTextureData::BC1 | 9 | 이 색상 형식은 R, G, B 및 알파 채널이 포함된 BC1 압축 형식으로 간주됩니다. |
QQuick3DTextureData::BC2 | 10 | 색상 형식은 R, G, B 및 알파 채널이 포함된 BC2 압축 형식으로 간주됩니다. |
QQuick3DTextureData::BC3 | 11 | 색상 형식은 R, G, B 및 알파 채널이 포함된 BC3 압축 형식으로 간주됩니다. |
QQuick3DTextureData::BC4 | 12 | 색상 형식은 하나의 색상 채널을 가진 BC4 압축 형식으로 간주됩니다. |
QQuick3DTextureData::BC5 | 13 | 색상 형식은 두 개의 색상 채널을 가진 BC5 압축 형식으로 간주됩니다. |
QQuick3DTextureData::BC6H | 14 | 이 색상 형식은 3개의 고동적 범위 색상 채널을 가진 BC6H 압축 형식으로 간주됩니다. |
QQuick3DTextureData::BC7 | 15 | 이 색상 형식은 R, G, B 및 알파 채널이 포함된 BC7 압축 형식으로 간주됩니다. |
QQuick3DTextureData::DXT1_RGBA | 16 | 이 색상 형식은 R, G, B 및 알파 채널이 포함된 DXT1 압축 형식으로 간주됩니다. |
QQuick3DTextureData::DXT1_RGB | 17 | 이 색상 형식은 R, G, B 채널이 포함된 DXT1 압축 형식으로 간주됩니다. |
QQuick3DTextureData::DXT3_RGBA | 18 | 이 색상 형식은 R, G, B 및 알파 채널을 가진 DXT3 압축 형식으로 간주됩니다. |
QQuick3DTextureData::DXT5_RGBA | 19 | 이 색상 형식은 R, G, B 및 알파 채널을 가진 DXT5 압축 형식으로 간주됩니다. |
QQuick3DTextureData::ETC2_RGB8 | 20 | 이 색상 형식은 RGB888 데이터용 ETC2 압축 형식으로 간주됩니다. |
QQuick3DTextureData::ETC2_RGB8A1 | 21 | 색상 형식은 알파가 1비트인 RGBA 데이터용 ETC2 압축 형식으로 간주됩니다. |
QQuick3DTextureData::ETC2_RGBA8 | 22 | 이 색상 형식은 RGBA8888 데이터를 포함하는 ETC2 압축 형식으로 간주됩니다. |
QQuick3DTextureData::ASTC_4x4 | 23 | 색상 형식은 4x4 블록 크기를 가진 ASTC 압축 형식으로 간주됩니다. |
QQuick3DTextureData::ASTC_5x4 | 24 | 이 색상 형식은 5x4 블록 풋프린트를 가진 ASTC 압축 형식으로 간주됩니다. |
QQuick3DTextureData::ASTC_5x5 | 25 | 색상 형식은 5x5 블록 풋프린트를 가진 ASTC 압축 형식으로 간주됩니다. |
QQuick3DTextureData::ASTC_6x5 | 26 | 이 색상 형식은 6x5 블록 풋프린트를 가진 ASTC 압축 형식으로 간주됩니다. |
QQuick3DTextureData::ASTC_6x6 | 27 | 색상 형식은 6x6 블록 풋프린트를 가진 ASTC 압축 형식으로 간주됩니다. |
QQuick3DTextureData::ASTC_8x5 | 28 | 색상 형식은 8x5 블록 크기를 가진 ASTC 압축 형식으로 간주됩니다. |
QQuick3DTextureData::ASTC_8x6 | 29 | 색상 형식은 8x6 블록 풋프린트를 가진 ASTC 압축 형식으로 간주됩니다. |
QQuick3DTextureData::ASTC_8x8 | 30 | 색상 형식은 8x8 블록 크기를 가진 ASTC 압축 형식으로 간주됩니다. |
QQuick3DTextureData::ASTC_10x5 | 31 | 색상 형식은 10x5 블록 풋프린트를 가진 ASTC 압축 형식으로 간주됩니다. |
QQuick3DTextureData::ASTC_10x6 | 32 | 색상 형식은 10x6 블록 풋프린트를 가진 ASTC 압축 형식으로 간주됩니다. |
QQuick3DTextureData::ASTC_10x8 | 33 | 색상 형식은 10x8 블록 풋프린트를 가진 ASTC 압축 형식으로 간주됩니다. |
QQuick3DTextureData::ASTC_10x10 | 34 | 색상 형식은 10x10 블록 풋프린트를 가진 ASTC 압축 형식으로 간주됩니다. |
QQuick3DTextureData::ASTC_12x10 | 35 | 색상 형식은 12x10 블록 크기의 ASTC 압축 형식으로 간주됩니다. |
QQuick3DTextureData::ASTC_12x12 | 36 | 이 색상 형식은 12x12 블록 풋프린트를 가진 ASTC 압축 형식으로 간주됩니다. 참고: 참고: 참고: |
멤버 함수 문서
int QQuick3DTextureData::depth() const
텍스처 데이터의 깊이(픽셀 단위)를 반환합니다.
setDepth()도 참조하십시오 .
QQuick3DTextureData::Format QQuick3DTextureData::format() const
텍스처 데이터의 형식을 반환합니다.
setFormat()도 참조하십시오 .
bool QQuick3DTextureData::hasTransparency() const
텍스처 데이터에 투명도가 포함되어 있으면 ` true `를 반환합니다.
기본값은 ` false`입니다.
setHasTransparency()도 참조하십시오 .
void QQuick3DTextureData::setDepth(int depth)
텍스처 데이터의 depth 을 픽셀 단위로 설정합니다. 깊이를 0보다 큰 값으로 설정하면 텍스처가 3D 텍스처로 처리됩니다.
depth()도 참조하십시오 .
void QQuick3DTextureData::setFormat(QQuick3DTextureData::Format format)
텍스처 데이터의 색상 구성( format )을 설정합니다.
기본 형식은 /c RGBA8입니다.
format()도 참조하십시오 .
void QQuick3DTextureData::setHasTransparency(bool hasTransparency)
텍스처 데이터에 불투명한 값을 가진 활성 알파 채널이 있는 경우, ` hasTransparency `를 `true`로 설정하십시오.
이는 엔진에서 최적화 목적으로 사용되며, 알파 채널을 지원하는 형식의 경우 각 값에 불투명한 값이 있는지 일일이 확인할 필요가 없도록 합니다.
hasTransparency()도 참조하십시오 .
void QQuick3DTextureData::setSize(const QSize &size)
텍스처 데이터의 size 를 픽셀 단위로 설정합니다.
size()도 참조하십시오 .
void QQuick3DTextureData::setTextureData(const QByteArray &data)
텍스처 데이터를 설정합니다. ` data `의 내용은 ` size ` 및 ` format ` 속성을 준수해야 합니다. 백엔드는 해당 데이터를 지정된 크기와 형식의 텍스처인 것처럼 업로드하고 사용하려고 시도할 것이며, 만약 이로부터 벗어나는 부분이 있다면 텍스처가 잘못 렌더링되거나 잠재적으로 프로그램이 중단될 수 있습니다.
textureData()도 참조하십시오 .
QSize QQuick3DTextureData::size() const
텍스처 데이터의 크기를 픽셀 단위로 반환합니다.
setSize()도 참조하십시오 .
const QByteArray QQuick3DTextureData::textureData() const
이 항목으로 정의된 현재 텍스처 데이터를 반환합니다.
setTextureData()도 참조하십시오 .
© 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.