Тип QML MultiSampleAntiAliasing
Включить сглаживание с помощью нескольких выборок. Подробнее...
| Заявление импорта: | import Qt3D.Render |
| С момента: | Qt 5.7 |
| Создает: | QMultiSampleAntiAliasing |
| Наследует: |
Подробное описание
Тип MultiSampleAntiAliasing включает сглаживание с помощью нескольких выборок.
Его можно добавить к RenderPass:
RenderPass {
shaderProgram: ShaderProgram {
// ...
}
renderStates: [
MultiSampleAntiAliasing {}
]
} Или к RenderStateSet:
RenderStateSet {
renderStates: [
MultiSampleAntiAliasing {}
]
} Для того, чтобы сглаживание с помощью нескольких выборок сработало, целевой рендеринг должен быть выделен с включенным сглаживанием с помощью нескольких выборок:
RenderTarget {
attachments: [
RenderTargetOutput {
attachmentPoint: RenderTargetOutput.Color0
texture: Texture2DMultisample {
width: 1024
height: 1024
format: Texture.RGBA8_UNorm
}
},
RenderTargetOutput {
attachmentPoint: RenderTargetOutput.DepthStencil
texture: Texture2DMultisample{
width: 1024
height: 1024
format: Texture.D24S8
}
}
]
} Кроме того, код шейдера должен использовать типы выборки сглаживания с помощью нескольких выборок и texelFetch() вместо texture().
Кроме того, код шейдера должен использовать типы выборки сглаживания с помощью нескольких выборок и texelFetch() вместо texture().
Например, если у вас есть код вроде
#version 150
uniform sampler2D colorTexture;
in vec2 texCoord;
out vec4 fragColor;
void main()
{
fragColor = texture(colorTexture, texCoord);
} вы можете переписать его как
#version 150
uniform sampler2DMS colorTexture;
in vec2 texCoord;
out vec4 fragColor;
void main()
{
ivec2 tc = ivec2(floor(textureSize(colorTexture) * texCoord));
vec4 c = texelFetch(colorTexture, tc, 0) +
texelFetch(colorTexture, tc, 1) +
texelFetch(colorTexture, tc, 2) +
texelFetch(colorTexture, tc, 3);
fragColor = c / 4.0;
} Примечание: При использовании OpenGL в качестве графического API будет вызван glEnable(GL_MULTISAMPLE), если MultiSampleAntiAliasing был добавлен в состояния рендеринга.
© The Qt Company Ltd
Licensed under the GNU Free Documentation License, Version 1.3.
https://doc.qt.io/qt-6.2/qml-qt3d-render-multisampleantialiasing.html