MultiSampleAntiAliasing QML Type

マルチサンプル・アンチエイリアスを有効にする。詳細...

Import Statement: import Qt3D.Render 2.8
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 を使用する場合、MultiSampleAntiAliasing がレンダリングステートに追加されていると、glEnable(GL_MULTISAMPLE) が呼び出されます。

©2024 The Qt Company Ltd. 本書に含まれるドキュメントの著作権は、それぞれの所有者に帰属します。 本書で提供されるドキュメントは、Free Software Foundation が発行したGNU Free Documentation License version 1.3に基づいてライセンスされています。 Qtおよびそれぞれのロゴは、フィンランドおよびその他の国におけるThe Qt Company Ltd.の 商標です。その他すべての商標は、それぞれの所有者に帰属します。