MultiSampleAntiAliasing QML Type

Multisample-Antialiasing einschalten. Mehr...

Import Statement: import Qt3D.Render 2.8
In C++: QMultiSampleAntiAliasing
Inherits:

RenderState

Status: Deprecated

Detaillierte Beschreibung

Ein MultiSampleAntiAliasing-Typ aktiviert Multisample-Antialiasing.

Er kann zu einer RenderPass hinzugefügt werden:

RenderPass {
    shaderProgram: ShaderProgram {
        // ...
    }
    renderStates: [
        MultiSampleAntiAliasing {}
    ]
}

Oder einer RenderStateSet:

RenderStateSet {
    renderStates: [
        MultiSampleAntiAliasing {}
    ]
}

Damit Multisampling wirksam wird, muss das Rendering-Ziel mit aktiviertem Multisampling zugewiesen worden sein:

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
            }
        }
    ]
}

Außerdem muss der Shader-Code Multisampling-Sampler-Typen und texelFetch() anstelle von texture() verwenden.

Außerdem muss der Shader-Code Multisampling-Sampler-Typen und texelFetch() anstelle von texture() verwenden.

Wenn Sie zum Beispiel einen Code wie

#version 150

uniform sampler2D colorTexture;
in vec2 texCoord;
out vec4 fragColor;

void main()
{
    fragColor = texture(colorTexture, texCoord);
}

haben, können Sie ihn umschreiben als

#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;
}

Hinweis: Bei der Verwendung von OpenGL als Grafik-API wird glEnable(GL_MULTISAMPLE) aufgerufen, wenn MultiSampleAntiAliasing zu den Render-States hinzugefügt wurde.

© 2025 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.