如何解决我们如何在SceneKit的场景中创建半球形状?
我需要在ARKit
/ SceneKit
场景中创建一个半球(圆顶)形状,我们在SceneKit中具有SCNSphere基本形状,但是不确定如何创建半球(圆顶)。
立即回复。
解决方法
SceneKit没有现成的半球原语,而且SceneKit不是Maya或3dsMax之类的3D编辑工具。但是您可以使用ModelIO框架生成hemisphere:
tags
当参数class func newEllipsoid(withRadii radii: vector_float3,radialSegments: Int,verticalSegments: Int,geometryType: MDLGeometryType,inwardNormals: Bool,hemisphere: Bool = true,allocator: MDLMeshBufferAllocator?) -> Self
时,它仅允许我们生成椭球或球体(圆顶)的上半部分。如果是hemisphere = true
,则可以生成完整的椭球或球体。
Thanks Andy. Following is coded on basis of ur suggestion which create dome
import ModelIO
func adddome() {
let mesh = MDLMesh.newEllipsoid(withRadii: vector_float3(0.1,0.1,0.1),radialSegments: 100,verticalSegments: 50,geometryType: MDLGeometryType.lines,inwardNormals: false,hemisphere: true,allocator: nil)
let node = SCNNode()
node.geometry = MeshToGeometry.convert(mesh)
node.geometry?.firstMaterial?.diffuse.contents = UIColor.blue
node.geometry?.firstMaterial?.specular.contents = UIColor.orange
node.position = SCNVector3(0,0)
sceneView.scene.rootNode.addChildNode(node)
}
#import <Foundation/Foundation.h>
#import <ModelIO/MDLMesh.h>
#import <SceneKit/SceneKit.h>
#import <SceneKit/ModelIO.h>
@interface MeshToGeometry : NSObject
+ (SCNGeometry*) convert:(MDLMesh*)mesh;
@end
#import "MESHToGEO.h"
@implementation MeshToGeometry
+ (SCNGeometry*) convert:(MDLMesh*)mesh {
return [SCNGeometry geometryWithMDLMesh:mesh];
}
@end
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。