Тип QML MultiSampleAntiAliasing
Включить многообразное сглаживание. Подробнее...
| Заявление об импорте: | import Qt3D.Render 2.1 |
| С момента: | 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.1/qml-qt3d-render-multisampleantialiasing.html