您好, 欢迎来到 !    登录 | 注册 | | 设为首页 | 收藏本站

RealityKit –以编程方式将材料添加到ModelEntity

RealityKit –以编程方式将材料添加到ModelEntity

因此,您可以将以下代码用于一个SimpleMaterial()类:

@IBOutlet var arView: ARView!

let sceneObjects = try! Experience.loadAllMyObjects()

var simpleMaterial = SimpleMaterial()

simpleMaterial.baseColor = try! MaterialColorParameter.texture(
                                          TextureResource.load(named: "img.jpg"))

simpleMaterial.Metallic = MaterialScalarParameter(floatLiteral: 0.9)
simpleMaterial.roughness = MaterialScalarParameter(floatLiteral: 0.1)
simpleMaterial.tintColor = UIColor.yellow

/*

simpleMaterial.baseColor = MaterialColorParameter.color(UIColor(red: 0.7,
                                                              green: 0.5,
                                                               blue: 0.2,
                                                              alpha: 1.0))
*/

目前,RealityKit中只有4种方法可以创建简单的3D图元:

因此,让我们使用其中之一:

let mesh: MeshResource = .generate@R_440_2419@(size: 2.5)

let component = ModelComponent(mesh: mesh, 
                          materials: [simpleMaterial])

sceneObjects.components.set(component)
arView.scene.anchors.append(sceneObjects)

我们知道在SceneKit中有5种不同的着色模型,因此我们可以使用RealityKitSimpleMaterialUnlitMaterial生成我们习惯的所有这五个着色器。

让我们看一下它的样子:

SCNMaterial.LightingModel.blinn            –  SimpleMaterial(color: . gray,
                                                         roughness: .float(0.5),
                                                        isMetallic: false)

SCNMaterial.LightingModel.lAmbert          –  SimpleMaterial(color: . gray,
                                                         roughness: .float(1.0),
                                                        isMetallic: false)

SCNMaterial.LightingModel.phong            –  SimpleMaterial(color: . gray,
                                                         roughness: .float(0.0),
                                                        isMetallic: false)

SCNMaterial.LightingModel.physicallyBased  –  SimpleMaterial(color: . gray,
                                                         roughness: .float(0.0),
                                                        isMetallic: true)

SCNMaterial.LightingModel.constant         –  UnlitMaterial(color: .gray)
其他 2022/1/1 18:14:47 有663人围观

撰写回答


你尚未登录,登录后可以

和开发者交流问题的细节

关注并接收问题和回答的更新提醒

参与内容的编辑和改进,让解决方法与时俱进

请先登录

推荐问题


联系我
置顶