gpt4 book ai didi

ios - 没有曲线的 SCNText 渲染,不像字体

转载 作者:可可西里 更新时间:2023-11-01 04:41:03 25 4
gpt4 key购买 nike

当我运行这段 SceneKit 代码时:

let txt = SCNText(string: "Hello", extrusionDepth: 0.2)
let textNode = SCNNode(geometry: txt)
scene.rootNode.addChildNode(textNode)

我得到非常棱角分明的文字:

Poorly rendered text

它似乎与字体无关地执行此操作,并且它在设备上的行为方式与在模拟器中的行为方式相同。

这是上下文中的代码:

    // create a new scene
let scene = SCNScene()

// create and add a camera to the scene
let cameraNode = SCNNode()
cameraNode.camera = SCNCamera()
scene.rootNode.addChildNode(cameraNode)

// place the camera
cameraNode.position = SCNVector3(x: 10, y: 0, z: 75)

// create and add a light to the scene
let lightNode = SCNNode()
lightNode.light = SCNLight()
lightNode.light!.type = SCNLightTypeOmni
lightNode.position = SCNVector3(x: 0, y: 10, z: 10)
scene.rootNode.addChildNode(lightNode)

// create and add an ambient light to the scene
let ambientLightNode = SCNNode()
ambientLightNode.light = SCNLight()
ambientLightNode.light!.type = SCNLightTypeAmbient
ambientLightNode.light!.color = UIColor.darkGrayColor()
scene.rootNode.addChildNode(ambientLightNode)

let txt = SCNText(string: "Hello", extrusionDepth: 0.2)

let textNode = SCNNode(geometry: txt)
scene.rootNode.addChildNode(textNode)



// retrieve the SCNView
let scnView = self.view as! SCNView

// set the scene to the view
scnView.scene = scene

最佳答案

SCNText 分割文本的 2D Bézier 路径,就像 Core Graphics 在绘制文本时所做的那样。您始终可以使用 flatness 属性使其更平滑,但您不会获得“亚像素平滑度”。

要解决此问题,您可以使用更大的字体大小,以便在发生离散化时底层贝塞尔路径更大并生成更多顶点。

关于ios - 没有曲线的 SCNText 渲染,不像字体,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/36436745/

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