。
:
因此,您可以将以下代码用于一个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种不同的着色模型,因此我们可以使用RealityKitSimpleMaterial
并UnlitMaterial
生成我们习惯的所有这五个着色器。
让我们看一下它的样子:
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)