QShaderDescription Class
셰이더의 인터페이스를 설명합니다. 더 보기...
| 헤더: | #include <qshaderdescription.h> |
| CMake: | find_package(Qt6 REQUIRED COMPONENTS Gui) target_link_libraries(mytarget PRIVATE Qt6::Gui) |
| qmake: | QT += gui |
| 다음 버전부터: | Qt 6.6부터 |
- 상속된 멤버를 포함한 모든 멤버 목록
- QShaderDescription은 3D 렌더링의 일부입니다.
공개 유형
(since 6.6) struct | BlockVariable |
(since 6.6) struct | BuiltinVariable |
(since 6.6) struct | InOutVariable |
(since 6.6) struct | PushConstantBlock |
(since 6.6) struct | StorageBlock |
(since 6.6) struct | UniformBlock |
| enum | BuiltinType { PositionBuiltin, PointSizeBuiltin, ClipDistanceBuiltin, CullDistanceBuiltin, VertexIdBuiltin, …, ViewIndexBuiltin } |
| enum | ImageFlag { ReadOnlyImage, WriteOnlyImage } |
| flags | ImageFlags |
| enum | ImageFormat { ImageFormatUnknown, ImageFormatRgba32f, ImageFormatRgba16f, ImageFormatR32f, ImageFormatRgba8, …, ImageFormatR8ui } |
| enum | QualifierFlag { QualifierReadOnly, QualifierWriteOnly, QualifierCoherent, QualifierVolatile, QualifierRestrict } |
| flags | QualifierFlags |
| enum | TessellationMode { UnknownTessellationMode, TrianglesTessellationMode, QuadTessellationMode, IsolineTessellationMode } |
| enum | TessellationPartitioning { UnknownTessellationPartitioning, EqualTessellationPartitioning, FractionalEvenTessellationPartitioning, FractionalOddTessellationPartitioning } |
| enum | TessellationWindingOrder { UnknownTessellationWindingOrder, CwTessellationWindingOrder, CcwTessellationWindingOrder } |
| enum | VariableType { Unknown, Float, Vec2, Vec3, Vec4, …, Half4 } |
공개 함수
| QShaderDescription() | |
| QShaderDescription(const QShaderDescription &other) | |
| ~QShaderDescription() | |
| QList<QShaderDescription::InOutVariable> | combinedImageSamplers() const |
| std::array<uint, 3> | computeShaderLocalSize() const |
| QList<QShaderDescription::BuiltinVariable> | inputBuiltinVariables() const |
| QList<QShaderDescription::InOutVariable> | inputVariables() const |
| bool | isValid() const |
| QList<QShaderDescription::BuiltinVariable> | outputBuiltinVariables() const |
| QList<QShaderDescription::InOutVariable> | outputVariables() const |
| QList<QShaderDescription::PushConstantBlock> | pushConstantBlocks() const |
| void | serialize(QDataStream *stream, int version) const |
| QList<QShaderDescription::StorageBlock> | storageBlocks() const |
| QList<QShaderDescription::InOutVariable> | storageImages() const |
| QShaderDescription::TessellationMode | tessellationMode() const |
| uint | tessellationOutputVertexCount() const |
| QShaderDescription::TessellationPartitioning | tessellationPartitioning() const |
| QShaderDescription::TessellationWindingOrder | tessellationWindingOrder() const |
| QByteArray | toJson() const |
| QList<QShaderDescription::UniformBlock> | uniformBlocks() const |
| QShaderDescription & | operator=(const QShaderDescription &other) |
정적 공용 멤버
| QShaderDescription | deserialize(QDataStream *stream, int version) |
관련 비회원
| bool | operator==(const QShaderDescription &lhs, const QShaderDescription &rhs) |
상세 설명
경고: QShader 및 QShaderDescription을 포함한 Qt GUI 모듈의 QRhi 클래스계열은 제한된 호환성만 보장합니다. 이 클래스들에 대해서는 소스 또는 바이너리 호환성이 보장되지 않으므로, 해당 API는 애플리케이션이 개발된 Qt 버전에서만 작동이 보장됩니다. 다만, 소스 비호환 변경 사항은 최소한으로 유지되도록 하며, 마이너 릴리스(6.7, 6.8 등)에서만 이루어질 예정입니다. 애플리케이션에서 이 클래스를 사용하려면 (CMake를 사용하는 경우) Qt::GuiPrivate 에 링크하고, rhi 접두사가 붙은 헤더 파일(예: #include <rhi/qshaderdescription.h>)을 포함시켜야 합니다.
셰이더는 일반적으로 일련의 입력과 출력을 갖습니다. 예를 들어, 버텍스 셰이더는 여러 입력 변수를 가지며, 애플리케이션에서 제공하는 데이터(예: 모델-뷰 행렬)에 접근하기 위해 하나 이상의 유니폼 버퍼를 사용할 수 있습니다. 프래그먼트 단계용 셰이더는 (간단한 설정에서) 버텍스 단계로부터 데이터를 수신하며, 유니폼 버퍼, 이미지 및 샘플러의 데이터에 의존할 수도 있습니다.
버텍스 입력 및 유니폼 버퍼의 레이아웃(멤버의 이름은 무엇인지, 크기, 오프셋 등은 어떻게 되는지 등)과 관련하여, 애플리케이션과 프레임워크는 런타임에 이를 동적으로 파악해야 할 수 있습니다. 이는 셰이더가 내장된 것이 아니라 사용자 같은 외부 주체에 의해 제공되는 경우에 흔히 발생합니다.
현대적이고 간소화된 그래픽스 API는 더 이상 런타임에 셰이더 리플렉션 정보를 조회할 수 있는 방법을 제공하지 않을 수 있습니다. 따라서 이러한 데이터는 이제 QShaderBaker 에 의해 자동으로 생성되며, 모든 QShader 에 대해 QShaderDescription 객체 형태로 제공됩니다.
예시
다음과 같은 버텍스 셰이더를 예로 들어 보겠습니다.
#version 440
layout(location = 0) in vec4 position;
layout(location = 1) in vec3 color;
layout(location = 0) out vec3 v_color;
layout(std140, binding = 0) uniform buf {
mat4 mvp;
float opacity;
} ubuf;
void main()
{
v_color = color;
gl_Position = ubuf.mvp * position;
}이 셰이더에는 두 개의 입력이 있습니다. 위치 0에 있는 ` position `(타입: ` vec4`)와 위치 1에 있는 ` color `(타입: ` vec3`)입니다. 출력은 ` v_color` 하나뿐이지만, 일반적으로 애플리케이션에서는 이 출력에 큰 관심이 없습니다. 더 중요한 점은, 바인딩 0에 크기가 68바이트인 균일한 블록이 있으며, 이 블록에는 오프셋 0에 위치한 mvp 라는 4x4 행렬과 오프셋 64에 위치한 float형 opacity 라는 두 개의 멤버가 포함되어 있습니다.
이 모든 내용은 QShaderDescription 객체로 설명됩니다. QShaderDescription은 QDataStream 을 통해 JSON 및 바이너리 형식으로 직렬화될 수 있으며, 이 바이너리 형식에서 역직렬화될 수도 있습니다. 실제로는 QShader 가 관련 QShaderDescription을 자동으로 처리하므로 이 기능이 필요한 경우는 드물지만, 위 셰이더의 QShaderDescription을 JSON으로 출력한다면( qsb 도구의 -d 옵션에서 수행되는 것처럼), 다음과 같이 보일 것입니다:
{
"inputs": [
{
"location": 1,
"name": "color",
"type": "vec3"
},
{
"location": 0,
"name": "position",
"type": "vec4"
}
],
"outputs": [
{
"location": 0,
"name": "v_color",
"type": "vec3"
}
],
"uniformBlocks": [
{
"binding": 0,
"blockName": "buf",
"members": [
{
"matrixStride": 16,
"name": "mvp",
"offset": 0,
"size": 64,
"type": "mat4"
},
{
"name": "opacity",
"offset": 64,
"size": 4,
"type": "float"
}
],
"set": 0,
"size": 68,
"structName": "ubuf"
}
]
}C++ API를 사용하면 위와 같은 데이터 구조에 접근할 수 있습니다. 단순화를 위해 내부 구조체에는 공개 데이터 멤버만 포함되어 있으며, 향후 레이아웃이 변경될 가능성도 거의 없다는 점을 고려했습니다.
QShaderBaker 및 QShader도 참조하십시오 .
멤버 유형 문서
enum QShaderDescription::BuiltinType
내장 변수 유형.
| 상수 | 값 |
|---|---|
QShaderDescription::PositionBuiltin | 0 |
QShaderDescription::PointSizeBuiltin | 1 |
QShaderDescription::ClipDistanceBuiltin | 3 |
QShaderDescription::CullDistanceBuiltin | 4 |
QShaderDescription::VertexIdBuiltin | 5 |
QShaderDescription::InstanceIdBuiltin | 6 |
QShaderDescription::PrimitiveIdBuiltin | 7 |
QShaderDescription::InvocationIdBuiltin | 8 |
QShaderDescription::LayerBuiltin | 9 |
QShaderDescription::ViewportIndexBuiltin | 10 |
QShaderDescription::TessLevelOuterBuiltin | 11 |
QShaderDescription::TessLevelInnerBuiltin | 12 |
QShaderDescription::TessCoordBuiltin | 13 |
QShaderDescription::PatchVerticesBuiltin | 14 |
QShaderDescription::FragCoordBuiltin | 15 |
QShaderDescription::PointCoordBuiltin | 16 |
QShaderDescription::FrontFacingBuiltin | 17 |
QShaderDescription::SampleIdBuiltin | 18 |
QShaderDescription::SamplePositionBuiltin | 19 |
QShaderDescription::SampleMaskBuiltin | 20 |
QShaderDescription::FragDepthBuiltin | 22 |
QShaderDescription::NumWorkGroupsBuiltin | 24 |
QShaderDescription::WorkgroupSizeBuiltin | 25 |
QShaderDescription::WorkgroupIdBuiltin | 26 |
QShaderDescription::LocalInvocationIdBuiltin | 27 |
QShaderDescription::GlobalInvocationIdBuiltin | 28 |
QShaderDescription::LocalInvocationIndexBuiltin | 29 |
QShaderDescription::VertexIndexBuiltin | 42 |
QShaderDescription::InstanceIndexBuiltin | 43 |
QShaderDescription::ViewIndexBuiltin | 4440 |
enum QShaderDescription::ImageFlag
flags QShaderDescription::ImageFlags
이미지 플래그.
| 상수 | 값 |
|---|---|
QShaderDescription::ReadOnlyImage | 1 << 0 |
QShaderDescription::WriteOnlyImage | 1 << 1 |
ImageFlags 유형은 QFlags<ImageFlag>에 대한 typedef입니다. 이 유형은 ImageFlag 값들의 OR 조합을 저장합니다.
enum QShaderDescription::ImageFormat
이미지 형식.
| 상수 | 값 |
|---|---|
QShaderDescription::ImageFormatUnknown | 0 |
QShaderDescription::ImageFormatRgba32f | 1 |
QShaderDescription::ImageFormatRgba16f | 2 |
QShaderDescription::ImageFormatR32f | 3 |
QShaderDescription::ImageFormatRgba8 | 4 |
QShaderDescription::ImageFormatRgba8Snorm | 5 |
QShaderDescription::ImageFormatRg32f | 6 |
QShaderDescription::ImageFormatRg16f | 7 |
QShaderDescription::ImageFormatR11fG11fB10f | 8 |
QShaderDescription::ImageFormatR16f | 9 |
QShaderDescription::ImageFormatRgba16 | 10 |
QShaderDescription::ImageFormatRgb10A2 | 11 |
QShaderDescription::ImageFormatRg16 | 12 |
QShaderDescription::ImageFormatRg8 | 13 |
QShaderDescription::ImageFormatR16 | 14 |
QShaderDescription::ImageFormatR8 | 15 |
QShaderDescription::ImageFormatRgba16Snorm | 16 |
QShaderDescription::ImageFormatRg16Snorm | 17 |
QShaderDescription::ImageFormatRg8Snorm | 18 |
QShaderDescription::ImageFormatR16Snorm | 19 |
QShaderDescription::ImageFormatR8Snorm | 20 |
QShaderDescription::ImageFormatRgba32i | 21 |
QShaderDescription::ImageFormatRgba16i | 22 |
QShaderDescription::ImageFormatRgba8i | 23 |
QShaderDescription::ImageFormatR32i | 24 |
QShaderDescription::ImageFormatRg32i | 25 |
QShaderDescription::ImageFormatRg16i | 26 |
QShaderDescription::ImageFormatRg8i | 27 |
QShaderDescription::ImageFormatR16i | 28 |
QShaderDescription::ImageFormatR8i | 29 |
QShaderDescription::ImageFormatRgba32ui | 30 |
QShaderDescription::ImageFormatRgba16ui | 31 |
QShaderDescription::ImageFormatRgba8ui | 32 |
QShaderDescription::ImageFormatR32ui | 33 |
QShaderDescription::ImageFormatRgb10a2ui | 34 |
QShaderDescription::ImageFormatRg32ui | 35 |
QShaderDescription::ImageFormatRg16ui | 36 |
QShaderDescription::ImageFormatRg8ui | 37 |
QShaderDescription::ImageFormatR16ui | 38 |
QShaderDescription::ImageFormatR8ui | 39 |
enum QShaderDescription::QualifierFlag
flags QShaderDescription::QualifierFlags
자격 조건 플래그.
| 상수 | 값 |
|---|---|
QShaderDescription::QualifierReadOnly | 1 << 0 |
QShaderDescription::QualifierWriteOnly | 1 << 1 |
QShaderDescription::QualifierCoherent | 1 << 2 |
QShaderDescription::QualifierVolatile | 1 << 3 |
QShaderDescription::QualifierRestrict | 1 << 4 |
QualifierFlags 유형은 QFlags<QualifierFlag>에 대한 typedef입니다. 이 유형은 QualifierFlag 값들의 OR 조합을 저장합니다.
enum QShaderDescription::TessellationMode
| 상수 | 상수 |
|---|---|
QShaderDescription::UnknownTessellationMode | 0 |
QShaderDescription::TrianglesTessellationMode | 1 |
QShaderDescription::QuadTessellationMode | 2 |
QShaderDescription::IsolineTessellationMode | 3 |
enum QShaderDescription::TessellationPartitioning
| 상수 | 상수 |
|---|---|
QShaderDescription::UnknownTessellationPartitioning | 0 |
QShaderDescription::EqualTessellationPartitioning | 1 |
QShaderDescription::FractionalEvenTessellationPartitioning | 2 |
QShaderDescription::FractionalOddTessellationPartitioning | 3 |
enum QShaderDescription::TessellationWindingOrder
| 상수 | 상수 |
|---|---|
QShaderDescription::UnknownTessellationWindingOrder | 0 |
QShaderDescription::CwTessellationWindingOrder | 1 |
QShaderDescription::CcwTessellationWindingOrder | 2 |
enum QShaderDescription::VariableType
변수 또는 블록 멤버의 유형을 나타냅니다.
| 상수 | 값 | 설명 |
|---|---|---|
QShaderDescription::Unknown | 0 | |
QShaderDescription::Float | 1 | |
QShaderDescription::Vec2 | 2 | |
QShaderDescription::Vec3 | 3 | |
QShaderDescription::Vec4 | 4 | |
QShaderDescription::Mat2 | 5 | |
QShaderDescription::Mat2x3 | 6 | |
QShaderDescription::Mat2x4 | 7 | |
QShaderDescription::Mat3 | 8 | |
QShaderDescription::Mat3x2 | 9 | |
QShaderDescription::Mat3x4 | 10 | |
QShaderDescription::Mat4 | 11 | |
QShaderDescription::Mat4x2 | 12 | |
QShaderDescription::Mat4x3 | 13 | |
QShaderDescription::Int | 14 | |
QShaderDescription::Int2 | 15 | |
QShaderDescription::Int3 | 16 | |
QShaderDescription::Int4 | 17 | |
QShaderDescription::Uint | 18 | |
QShaderDescription::Uint2 | 19 | |
QShaderDescription::Uint3 | 20 | |
QShaderDescription::Uint4 | 21 | |
QShaderDescription::Bool | 22 | |
QShaderDescription::Bool2 | 23 | |
QShaderDescription::Bool3 | 24 | |
QShaderDescription::Bool4 | 25 | |
QShaderDescription::Double | 26 | |
QShaderDescription::Double2 | 27 | |
QShaderDescription::Double3 | 28 | |
QShaderDescription::Double4 | 29 | |
QShaderDescription::DMat2 | 30 | |
QShaderDescription::DMat2x3 | 31 | |
QShaderDescription::DMat2x4 | 32 | |
QShaderDescription::DMat3 | 33 | |
QShaderDescription::DMat3x2 | 34 | |
QShaderDescription::DMat3x4 | 35 | |
QShaderDescription::DMat4 | 36 | |
QShaderDescription::DMat4x2 | 37 | |
QShaderDescription::DMat4x3 | 38 | |
QShaderDescription::Sampler1D | 39 | |
QShaderDescription::Sampler2D | 40 | |
QShaderDescription::Sampler2DMS | 41 | |
QShaderDescription::Sampler3D | 42 | |
QShaderDescription::SamplerCube | 43 | |
QShaderDescription::Sampler1DArray | 44 | |
QShaderDescription::Sampler2DArray | 45 | |
QShaderDescription::Sampler2DMSArray | 46 | |
QShaderDescription::Sampler3DArray | 47 | |
QShaderDescription::SamplerCubeArray | 48 | |
QShaderDescription::SamplerRect | 49 | |
QShaderDescription::SamplerBuffer | 50 | |
QShaderDescription::SamplerExternalOES | 51 | |
QShaderDescription::Sampler | 52 | 별도의 샘플러용입니다. |
QShaderDescription::Image1D | 53 | |
QShaderDescription::Image2D | 54 | |
QShaderDescription::Image2DMS | 55 | |
QShaderDescription::Image3D | 56 | |
QShaderDescription::ImageCube | 57 | |
QShaderDescription::Image1DArray | 58 | |
QShaderDescription::Image2DArray | 59 | |
QShaderDescription::Image2DMSArray | 60 | |
QShaderDescription::Image3DArray | 61 | |
QShaderDescription::ImageCubeArray | 62 | |
QShaderDescription::ImageRect | 63 | |
QShaderDescription::ImageBuffer | 64 | |
QShaderDescription::Struct | 65 | |
QShaderDescription::Half | 66 | |
QShaderDescription::Half2 | 67 | |
QShaderDescription::Half3 | 68 | |
QShaderDescription::Half4 | 69 |
멤버 함수 문서
QShaderDescription::QShaderDescription()
새로운 빈 QShaderDescription 객체를 생성합니다.
참고: 비어있다는 것은 ` isValid()`가 새로 생성된 인스턴스에 대해 ` false `를 반환함을 의미합니다.
QShaderDescription::QShaderDescription(const QShaderDescription &other)
other 의 복사본을 생성합니다.
[noexcept] QShaderDescription::~QShaderDescription()
소멸자.
QList<QShaderDescription::InOutVariable> QShaderDescription::combinedImageSamplers() const
결합된 이미지 샘플러 목록을 반환합니다.
GLSL/Vulkan 셰이더를 소스로 할 때, ` layout(binding = 1) uniform sampler2D tex; ` 유니폼은 다음과 같은 결과를 생성합니다(여기서는 텍스트 형식의 JSON으로 표시됨).
"combinedImageSamplers": [
{
"binding": 1,
"name": "tex",
"set": 0,
"type": "sampler2D"
}
]그렇다고 해서 셰이더의 다른 언어 버전에서도 반드시 결합된 이미지 샘플러를 사용해야 한다는 의미는 아닙니다. 특히 이 개념이 모든 언어에 존재하는 것은 아니기 때문입니다. 예를 들어, HLSL 버전은 각각 레지스터 t1과 s1을 사용하는 Texture2D 및 SamplerState 객체를 사용할 가능성이 높습니다.
std::array<uint, 3> QShaderDescription::computeShaderLocalSize() const
컴퓨트 셰이더의 로컬 크기를 반환합니다.
예를 들어, 다음과 같이 선언된 컴퓨트 셰이더의 경우 이 함수는 { 256, 16, 1}을 반환합니다.
layout(local_size_x = 256, local_size_y = 16, local_size_z = 1) in;[static] QShaderDescription QShaderDescription::deserialize(QDataStream *stream, int version)
stream 에서 로드된 새로운 QShaderDescription 객체를 반환합니다. version 는 qsb 버전을 지정합니다.
serialize()도 참조하십시오 .
QList<QShaderDescription::BuiltinVariable> QShaderDescription::inputBuiltinVariables() const
입력으로 사용되는 활성 내장 변수 목록을 반환합니다. 예를 들어, gl_TessCoord와 gl_Position의 값을 읽는 테셀레이션 평가 셰이더의 경우, 여기에는 TessCoordBuiltin 와 PositionBuiltin 가 나열됩니다.
QList<QShaderDescription::InOutVariable> QShaderDescription::inputVariables() const
입력 변수 목록을 반환합니다. 여기에는 정점 단계에 대한 정점 입력(때로는 ‘속성’이라고도 함)과 다른 단계에 대한 입력(때로는 ‘변수’라고도 함)이 포함됩니다.
bool QShaderDescription::isValid() const
QShaderDescription 에 변수 목록이나 블록 목록 중 하나에 적어도 하나의 항목이 포함되어 있으면 true를 반환합니다.
QList<QShaderDescription::BuiltinVariable> QShaderDescription::outputBuiltinVariables() const
입력으로 사용되는 활성 내장 변수 목록을 반환합니다. 예를 들어, 버텍스 셰이더에서는 ` PositionBuiltin `가 출력 내장 변수로 사용되는 경우가 매우 흔합니다.
QList<QShaderDescription::InOutVariable> QShaderDescription::outputVariables() const
출력 변수 목록을 반환합니다.
QList<QShaderDescription::PushConstantBlock> QShaderDescription::pushConstantBlocks() const
푸시 상수 블록의 목록을 반환합니다.
참고: Qt 렌더링 하드웨어 인터페이스와 함께 사용될 셰이더의 경우, 현재 해당 인터페이스에서 푸시 상수 블록을 지원하지 않으므로 이를 사용하는 것을피하십시오 .
void QShaderDescription::serialize(QDataStream *stream, int version) const
이 QShaderDescription 을 stream 로 직렬화합니다. version 는 qsb 버전을 지정합니다.
deserialize() 및 toJson()도 참조하십시오 .
QList<QShaderDescription::StorageBlock> QShaderDescription::storageBlocks() const
셰이더 스토리지 블록 목록을 반환합니다.
예를 들어, GLSL/Vulkan 셰이더를 소스로 사용할 경우, 다음 선언문
struct Stuff {
vec2 a;
vec2 b;
};
layout(std140, binding = 0) buffer StuffSsbo {
vec4 whatever;
Stuff stuff[];
} buf;다음과 같은 결과를 생성합니다. (여기서는 텍스트 형식의 JSON으로 표시됨)
"storageBlocks": [ {
"binding": 0,
"blockName": "StuffSsbo",
"instanceName": "buf",
"knownSize": 16,
"runtimeArrayStride": 16
"members": [
{
"name": "whatever",
"offset": 0,
"size": 16,
"type": "vec4"
},
{
"arrayDims": [
0
],
"name": "stuff",
"offset": 16,
"size": 0,
"structMembers": [
{
"name": "a",
"offset": 0,
"size": 8,
"type": "vec2"
},
{
"name": "b",
"offset": 8,
"size": 8,
"type": "vec2"
}
],
"type": "struct"
}
],
"set": 0
} ]참고: 스토리지 블록의 마지막 멤버크기는 정의되지 않습니다. 이는 ` size `가 0이고, 배열 차원이 ` [0]`로 표시됩니다. 스토리지 블록의 ` knownSize `는 마지막 멤버의 크기를 제외하는데, 이는 런타임에야 비로소 알 수 있기 때문입니다. 배열 크기가 정의되지 않은 마지막 멤버의 경우, 배열 항목 간 바이트 단위의 스트라이드(stride)는 runtimeArrayStride 입니다. 이 값은 지정된 버퍼 메모리 레이아웃 표준(std140, std430) 규칙에 따라 결정됩니다.
참고: SSBO는 OpenGL 2.x나 3.1 이전 버전의 OpenGL ES와 같은 일부 그래픽 API에서는 사용할 수 없습니다.
QList<QShaderDescription::InOutVariable> QShaderDescription::storageImages() const
이미지 변수 목록을 반환합니다.
이러한 변수들은 주로 컴퓨트 셰이더에서 사용됩니다. 예를 들어, ` layout (binding = 0, rgba8) uniform readonly image2D inputImage; `는 다음과 같은 결과를 생성합니다(여기서는 텍스트 형식의 JSON으로 표시됨):
"storageImages": [
{
"binding": 0,
"imageFormat": "rgba8",
"name": "inputImage",
"set": 0,
"type": "image2D"
}
]참고: 개별 이미지 객체는 OpenGL 2.x나 3.1 이전 버전의 OpenGL ES와 같은 일부 그래픽 API와 호환되지 않습니다.
QShaderDescription::TessellationMode QShaderDescription::tessellationMode() const
테셀레이션 제어 셰이더 또는 평가 셰이더에 대한 테셀레이션 실행 모드를 반환합니다.
설정되지 않은 경우, 반환 값은 UnknownTessellationMode 입니다.
예를 들어, 다음과 같이 선언된 테셀레이션 평가 셰이더의 경우 이 함수는 ` TrianglesTessellationMode`을 반환합니다.
layout(triangles) in;uint QShaderDescription::tessellationOutputVertexCount() const
출력 버텍스의 개수를 반환합니다.
예를 들어, 다음과 같이 선언된 테셀레이션 제어 셰이더의 경우 이 함수는 3을 반환합니다.
layout(vertices = 3) out;QShaderDescription::TessellationPartitioning QShaderDescription::tessellationPartitioning() const
테셀레이션 제어 셰이더 또는 평가 셰이더에 대한 테셀레이션 분할 모드를 반환합니다.
설정되지 않은 경우, 반환 값은 ` UnknownTessellationPartitioning`입니다.
예를 들어, 다음과 같이 선언된 테셀레이션 평가 셰이더의 경우, 이 함수는 ` FractionalOddTessellationPartitioning`를 반환합니다.
layout(triangles, fractional_odd_spacing, ccw) in;QShaderDescription::TessellationWindingOrder QShaderDescription::tessellationWindingOrder() const
테셀레이션 제어 셰이더 또는 평가 셰이더에 대한 테셀레이션 와인딩 순서를 반환합니다.
설정되지 않은 경우, 반환 값은 UnknownTessellationWindingOrder 입니다.
예를 들어, 다음과 같이 선언된 테셀레이션 평가 셰이더의 경우, 이 함수는 ` CcwTessellationWindingOrder`를 반환합니다.
layout(triangles, fractional_odd_spacing, ccw) in;QByteArray QShaderDescription::toJson() const
데이터를 직렬화된 JSON 텍스트 형식으로 반환합니다.
참고: JSON 텍스트에 대한 역직렬화 메서드는 제공되지않습니다 .
serialize()도 참조하십시오 .
QList<QShaderDescription::UniformBlock> QShaderDescription::uniformBlocks() const
균일 블록 목록을 반환합니다.
QShaderDescription &QShaderDescription::operator=(const QShaderDescription &other)
이 객체에 ` other `를 할당합니다.
관련 비회원
[noexcept] bool operator==(const QShaderDescription &lhs, const QShaderDescription &rhs)
두 QShaderDescription 객체인 lhs 와 rhs 가 같을 경우 true 를 반환합니다.
© 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.