ios - 将 SCNGeometry 渲染为线框

标签 ios shader fragment-shader scenekit

我在 iOS 上使用 SceneKit,并且我有一个几何体要渲染为线框。所以基本上我只想画线,所以没有纹理。

我发现我可以使用 SCNMaterialshaderModifiers 属性来完成此操作。着色器修改器示例:

material.shaderModifiers = [
    SCNShaderModifierEntryPointFragment: "_output.color.rgb = vec3(1.0) - _output.color.rgb;"
]

这个例子显然只是简单地反转了输出颜色。我对必须用于着色器片段的“GLSL”语言一无所知。

谁能告诉我应该使用什么代码作为着色器片段来仅在边缘附近绘制,以使几何体看起来像线框?

或者也许还有其他方法可以将几何图形渲染为线框。我很想听听。

最佳答案

尝试设置 Material fillMode到 .lines(iOS 11+ 和 macOS 10.13+):

sphereNode.geometry?.firstMaterial?.fillMode = .lines

关于ios - 将 SCNGeometry 渲染为线框,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/28793982/

相关文章:

javascript - WebGL/GLSL - ShaderToy 是如何工作的?

iphone - scrollview 不改变 contentOffset

ios - 如何从 UITableView 数据填充电子邮件正文?

c++ - 如何在 Visual Studio 界面中创建 "Shader"文件夹

android - 通过 fragment 着色器将 YUV 转换为 RGB

Three.js使用framebuffer作为纹理

ios - 在 UITableViewCell 中的不同大小的 UIView 上放置一个 mask 层

ios - SwiftUI:Spacer 在 ScrollView 中不起作用

javascript - 如何在 THREE.js 中正确制作法线贴图?

c++ - 将 1d 纹理传递到片段着色器 - 全为零?