SCNGeometry/SCNCylinder仅渲染边缘/边框(存储颜色,内容清晰)

Dav*_*mes 6 render opengl-es ios scenekit metal

我试图找出如何在只有边框/笔划/边缘可见的情况下使用SCNScylinder.我场景中的所有东西都工作得很好,我正在考虑为specular.contents应用一个清晰​​的颜色

是否需要使用SCNNode委托/金属代码(我在我的场景中没有使用opengl)

有什么指针吗?帮助表示赞赏

Hal*_*ler 5

WWDC 2014 演示文稿展示了只有线框的轨道立方体。该技术是使用具有绿色边缘但内部透明的图像作为材料。来自 AAPLSlideScenegraphSummary.m:

        // A node that will help visualize the position of the stars
        _wireframeBoxNode = [SCNNode node];
        _wireframeBoxNode.rotation = SCNVector4Make(0, 1, 0, M_PI_4);
        _wireframeBoxNode.geometry = [SCNBox boxWithWidth:1 height:1 length:1 chamferRadius:0];
        _wireframeBoxNode.geometry.firstMaterial.diffuse.contents = [NSImage imageNamed:@"box_wireframe"];
        _wireframeBoxNode.geometry.firstMaterial.lightingModelName = SCNLightingModelConstant; // no lighting
        _wireframeBoxNode.geometry.firstMaterial.doubleSided = YES; // double sided
Run Code Online (Sandbox Code Playgroud)

在此处输入图片说明

对于与 SCNCylinder 类似的效果,您可能需要传递一系列材料,有些有边框,有些没有。

编辑

对于 High Sierra/iOS 11 及更高版本,@mnuages 的答案是一种更简单/更好的方法。


mnu*_*ges 5

它需要一些努力,但你可以检查你的缸geometryElements,并geometrySources建立一个新的SCNGeometry具有primitiveTypeSCNGeometryPrimitiveTypeLine

编辑

启动iOS 11会SCNMaterial公开fillMode可用于将几何体渲染为线框的属性.