このページでは

MultiSampleAntiAliasing QML Type

マルチサンプルアンチエイリアシングを有効にします。詳細...

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

RenderState

Status: Deprecated

この型は非推奨です。新しいコードでの使用は強く推奨しません。

詳細な説明

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

さらに、シェーダーコードでは、texture()の代わりにマルチサンプリング対応のサンプラー型およびtexelFetch()を使用する必要があります。

また、シェーダーコードでは、texture() の代わりにマルチサンプリング用サンプラー型と texelFetch() を使用する必要があります。

たとえば、次のようなコードがある場合

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

注: グラフィックス API として OpenGLを使用する場合 、レンダリング状態(render states)に MultiSampleAntiAliasing が追加されていると、glEnable(GL_MULTISAMPLE) が呼び出されます。

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