Обновлено: 8 июня 2021 г..
На данный момент в RealityKit 2.0 и RealityFoundation есть 6 типов материалов:
Таким образом, вы можете использовать следующий код с классом 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 2.0 есть 5 методов для создания 3D-примитивов:
generateBox(...)
generateSphere(...)
generatePlane(...)
generateText(...)
generate(...)
- Создание ресурса сетки из списка дескрипторов сетки
Итак, воспользуемся одним из них:
let mesh: MeshResource = .generateBox(size: 2.5)
let component = ModelComponent(mesh: mesh,
materials: [simpleMaterial])
sceneObjects.components.set(component)
arView.scene.anchors.append(sceneObjects)
Как сгенерировать шейдеры SceneKit в RealityKit
Мы знаем, что в SceneKit есть 5 различных моделей затенения, поэтому мы можем использовать SimpleMaterial
, PhysicallyBasedMaterial
и UnlitMaterial
RealityKit для генерации всех этих пяти шейдеров, к которым мы привыкли.
Посмотрим, как это выглядит:
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 – PhysicallyBasedMaterial()
SCNMaterial.LightingModel.constant – UnlitMaterial(color: .gray)
person
Andy Fedoroff
schedule
02.07.2019