gpt4 book ai didi

qt - QML 字体渲染不正确 - 缺少细节

转载 作者:行者123 更新时间:2023-12-02 05:12:36 31 4
gpt4 key购买 nike

正如标题所说,我在使用 macOS 的 QML 项目中遇到字体渲染问题。

图像示例

enter image description here

该字体位于 asset/fonts(本地文件夹)中,它通过 FontLoader 添加到 main.qml 中,就像其他 3 种字体一样。除此以外的所有字体都正确呈现,正如您在上面的屏幕截图中看到的,我的系统正确读取字体。我加载的所有字体都是 .otf,我不知道这是否与我的问题相关。

预期结果:

enter image description here

我的示例 QML 代码是:

Text { 
id: welcomeMessageTop
color: "blue"
text: "ASDFGHJKLT"
font.family :
fontLoaded.name
font.pixelSize: 110
font.letterSpacing: -0.4
}

谢谢

最佳答案

我怀疑这可能与 QML 中有效渲染动态可调整大小文本的默认方法有关,即通过距离字段。这是平滑调整光栅图形大小并获得几乎像矢量图形的结果的好方法,但它确实会消除相对于字符大小而言不够突出的小细节。

您应该尝试为 Text 元素设置 renderType: Text.NativeRendering 看看是否有帮助。

此外,如果您的文本是动态的(如果它是动画的、旋转的或其大小动态变化),IIRC 原生文本渲染看起来会很糟糕。它对于静态内容最有用,但我认为文本可以以更大的尺寸渲染为不可见的项目,并且该项目可以用作着色器源,然后您可以应用动态行为并获得不 可怕。

如果您要调整文本大小或旋转文本,请注意,还可以修改一些环境变量来调整距离场生成并获得更好的结果:

  qputenv("QT_DISTANCEFIELD_DEFAULT_BASEFONTSIZE", "64");
qputenv("QT_DISTANCEFIELD_DEFAULT_SCALE", "16");
qputenv("QT_DISTANCEFIELD_DEFAULT_RADIUS", "80");

问题是似乎不可能在每个字体的基础上进行调整,所以如果你增加距离场分辨率,即使对于不需要它的字体,它最终也会消耗更多的内存.

关于qt - QML 字体渲染不正确 - 缺少细节,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/48346634/

31 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com