如何在SceneKit的SCNNodeRendererDelegate中使用OpenGL进行绘制

3

目前我正在使用以下代码创建线段(通过line原语.Line):

line = SCNGeometry(sources: [source], elements: [element])

我需要支持线宽,但我不能使用gllinewidth,因为它会将线宽应用于所有线段,每个线段(对象)有不同的线宽。因此,我考虑使用OpenGL进行自定义绘制,因为SceneKit提供了一种使用以下代码进行自定义绘制的方法。

extension MarkupViewController: SCNNodeRendererDelegate {

    func renderNode(_ node: SCNNode, renderer: SCNRenderer, arguments: [String : Any]) {

    }
}

我花了将近一天的时间尝试在renderNode方法内使用OpenGL命令,但是无论我做什么都不能在我的节点上绘制任何东西。 是否有绘制线条或其他内容的示例代码可用于renderNode方法。

1个回答

0

使用纯SceneKit解决方案如何?

如果您使用瘦的SCNPlane、SCNCylinder或SCNBox,您可以控制连接器的宽度。

如果您使用SCNCylinder,请考虑降低段数。高分辨率不会有明显的效果。


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接