多样本抗锯齿 QML 类型
启用多样本抗锯齿。更多信息...
导入语句 | 导入 Qt3D.Render 2.7 |
实例化 | QMultiSampleAntiAliasing |
继承 |
详细说明
多样本抗锯齿类型启用多样本抗锯齿。
它可以添加到渲染通道
RenderPass { shaderProgram: ShaderProgram { // ... } renderStates: [ MultiSampleAntiAliasing {} ] }
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 时,如果已将 MultiSampleAntiAliasing 添加到渲染状态,则将调用 glEnable(GL_MULTISAMPLE)。
© 2024 The Qt Company Ltd. 本文档的贡献权归原作者所有。本提供的文档按 Free Software Foundation 发布的 GNU 自由文档许可 第 1.3 版 的条款进行许可。Qt 和相应的标志是芬兰和/或其他国家的 The Qt Company Ltd. 的商标。所有其他商标均为其所有者的财产。