ios - 将纹理映射到 SCNSphere 的正确方法是什么

标签 ios objective-c scenekit

我想将此图像用作 SCKSphere 的 Material :

enter image description here

我可以这样做:

SCNSphere *sphereGeometry = [SCNSphere sphereWithRadius:5];
sphereGeometry.firstMaterial.diffuse.contents = [UIImage imageNamed:@"navball.png"];

但是,当我运行该应用程序时,图像在映射到球体上时发生了变形,并且从球体顶部到底部的线不再是直的:

enter image description here

有没有办法确保 Material 正确映射到球体上并且线条保持笔直?

左下图显示了我的预期,右图显示了我的体验 - 波浪线,而我希望它们是直的:

enter image description here

最佳答案

我通过增加球体几何体的 segmentCount 值解决了这个问题,这增加了用于渲染形状的多边形网格的细节,使其看起来“更平滑”。

有关详细信息,请参阅 SCNSphere documentation .

关于ios - 将纹理映射到 SCNSphere 的正确方法是什么,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/29268000/

相关文章:

swift - 将 GameViewController 指定为 SceneKitView 的数据源

ios - Xcode 10,无法使用特定编码解码输入文件

objective-c - willRotateToInterfaceOrientation 在 Universal MasterDetail 应用程序中不起作用

ios - 定向光的阴影甚至在SceneKit中也可以工作吗?

ios - 如何使用 NSCache

iOS:使用工厂设计模式动态更改可访问属性?

swift - 如何像在 Measure 应用程序中一样在 ARKit (SceneKit) 中绘制虚线?

objective-c - 从 IB、XCode 中的多个按钮创建对象数组

ios - 在 iOS 中通过 AVAssetReaderTrackOutput 获取样本缓冲区时音频丢失?

ios - 如果用户拥有没有 watch 扩展的 Apple Watch,如何在 iOS 应用程序中进行跟踪?