作者热门文章
- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我正在尝试绘制 UIBezierPaths 并将它们显示在 SCNPlane 上,尽管我得到的结果非常不清晰 (See in the image)我怎样才能让它更锐利?
let displayLayer = CAShapeLayer()
displayLayer.frame = CGRect(x: 0, y: 0, width: 200, height: 200)
displayLayer.path = path.cgPath
displayLayer.fillColor = UIColor.clear.cgColor
displayLayer.strokeColor = stroke.cgColor
displayLayer.lineWidth = lineWidth
let plane = SCNPlane(width:size.width, height: size.height)
let material = SCNMaterial()
material.diffuse.contents = displayLayer
plane.materials = [material]
let node = SCNNode(geometry: plane)
我尝试增加 displayLayer.frame 的大小,但这只会让事情变得更小。
感谢您的回答!安德拉斯
最佳答案
这让我发疯,所以希望这个答案可以帮助其他偶然发现这个问题的人。我将 CALayer
映射到 SCNMaterial
纹理以在 ARKit 场景中使用,但所有内容都是模糊/像素化的。将 CALayer
的 contentsScale
属性设置为 UIScreen.main.scale
没有执行任何操作,也没有使用 shouldRasterize
> 和rasterizationScale
。
解决方案是将图层的框架设置为所需的框架,乘以屏幕的比例,否则 Material 将按比例变换图层以适应纹理。换句话说,图层的大小需要是其所需大小的 3 倍。
让图层 = CALayer()
Layer.frame = CGRect(x: 0, y: 0, 宽度: 500 * UIScreen.main.scale, 高度: 750 * UIScreen.main.scale)
关于ios - SceneKit CALayer 锐化绘图,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/48012414/
我是一名优秀的程序员,十分优秀!