Добавление материала в ModelEntity программно
Документы для RealityKit включают структуры: OcclusionMaterial
, SimpleMaterial
, а также UnlitMaterial
для добавления материалов в ModelEntity
,
В качестве альтернативы вы можете загрузить модель с прикрепленным к ней материалом.
Я хочу добавить пользовательский материал / текстуру к ModelEntity
программно. Как я могу достичь этого на лету, не добавляя материал к модели в Reality Composer или каком-либо другом программном обеспечении 3D?
1 ответ
Как вы сказали, на данный момент в RealityKit есть 3 типа материалов: SimpleMaterial
, UnlitMaterial
а также OcclusionMaterial
,
Таким образом, вы можете попробовать следующий код, используя SimpleMaterial
класс:
var material = SimpleMaterial()
material.baseColor = try! .texture(.load(named: "image.jpg"))
material.metallic = MaterialScalarParameter(floatLiteral: 0.9)
material.roughness = MaterialScalarParameter(floatLiteral: 0.1)
/*
material.baseColor = MaterialColorParameter.color(UIColor(red: 0.7,
green: 0.5,
blue: 0.2,
alpha: 1.0))
*/
На данный момент в RealityKit есть 4 метода для создания простых 3D-примитивов: generateBox()
, generateSphere()
, generatePlane()
а также generateText()
,
let mesh: MeshResource = .generateBox(size: 2.5)
let component = ModelComponent(mesh: mesh, materials: [material])
print("\(component.mesh.bounds)")
print("\(component.materials.count)")
PS На данный момент у меня нет возможности протестировать этот код в iOS 13, но я надеюсь, что все в порядке.