没有曲线的 SCNText 渲染,不像字体
SCNText rendering without curves, not font-like
当我运行这个SceneKit代码时:
let txt = SCNText(string: "Hello", extrusionDepth: 0.2)
let textNode = SCNNode(geometry: txt)
scene.rootNode.addChildNode(textNode)
我非常 angular 文本:
似乎不管字体如何,它在设备上的行为方式与在模拟器中的行为方式相同。
这是上下文中的代码:
// 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
属性 使其更平滑,但您不会得到 "sub-pixel smoothness".
要解决此问题,您可以使用更大的字体大小,以便在发生离散化时底层贝塞尔路径更大并生成更多顶点。
我的解决方案是使用大字体,因为有人建议@mnuages 然后在
的文本节点上使用缩放
animatedTextNode.scale = SCNVector3(0.1, 0.1, 0.1)
得到我想要的尺寸。
在那种情况下,当您为文本设置动画并且当它靠近相机时它看起来很平滑。
当我运行这个SceneKit代码时:
let txt = SCNText(string: "Hello", extrusionDepth: 0.2)
let textNode = SCNNode(geometry: txt)
scene.rootNode.addChildNode(textNode)
我非常 angular 文本:
似乎不管字体如何,它在设备上的行为方式与在模拟器中的行为方式相同。
这是上下文中的代码:
// 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
属性 使其更平滑,但您不会得到 "sub-pixel smoothness".
要解决此问题,您可以使用更大的字体大小,以便在发生离散化时底层贝塞尔路径更大并生成更多顶点。
我的解决方案是使用大字体,因为有人建议@mnuages 然后在
的文本节点上使用缩放 animatedTextNode.scale = SCNVector3(0.1, 0.1, 0.1)
得到我想要的尺寸。
在那种情况下,当您为文本设置动画并且当它靠近相机时它看起来很平滑。