对于RealityKit的文档包括结构:OcclusionMaterial
,SimpleMaterial
,和UnlitMaterial
用于添加材料到ModelEntity
。
或者,您可以在模型中加载带有附加材料的模型。
我想以ModelEntity
编程方式添加自定义材料/纹理。如何在不向Reality
Composer或其他3D软件的模型中添加材料的情况下即时实现这一目标?
已更新:2020年6月23日 。
目前,RealityKit 2.0中有4种类型的材料 :
因此,您可以将以下代码用于一个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图元:
generateBox()
generateSphere()
generatePlane()
generateText()
因此,让我们使用其中之一:
let mesh: MeshResource = .generateBox(size: 2.5)
let component = ModelComponent(mesh: mesh,
materials: [simpleMaterial])
sceneObjects.components.set(component)
arView.scene.anchors.append(sceneObjects)
我们知道在SceneKit中有5种不同的着色模型,因此我们可以使用RealityKit
SimpleMaterial
并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)
我正在尝试在Android上添加Wifi网络,我想知道如何连接到不广播其SSID的Wifi网络(它是否有空SSID或带有\0s的清晰SSID)。 这是我目前用于广播其SSID的Wifi网络的内容:
AndroidR、 属性。selectableItemBackground存在,但如何通过编程将其添加到ImageButton? 此外,我如何在文档中找到答案?这里提到过,但我看不到任何关于它实际如何使用的解释。实际上,我似乎很少发现文档有用,但我希望这是我的错,而不是文档的错。
问题内容: 我试图自定义现有的JS库,而不修改原始JS代码。这段代码将加载一些我可以访问的外部JS文件,而我想做的就是更改原始文件中包含的功能之一,而无需将整个内容复制并粘贴到第二个JS文件中。 因此,例如,禁区JS可能具有以下功能: 我希望能够以某种方式在该函数中追加或添加一些JS代码。原因主要是在原始的不可触摸的JS中,该功能非常庞大,如果该JS得到更新,则我用它覆盖的功能将过时。 我不确定这
Spring非常出色地为注释提供了一个属性。我希望以编程方式提供带有时区的方法。 例如,假设我想在当地时间午夜打开洛杉矶和芝加哥大楼的灯。我想从我的存储库中获取建筑物。 时区可以在运行时提供还是以其他方式注入? 比如: 我知道方法不能接受任何参数,所以以这种方式提供时区是不行的。
问题内容: 由于采用了插件架构,因此我试图以编程方式将bean添加到我的webapp中。我有一个通过注释创建的Spring bean ,并且正在实现接口。 我的覆盖函数如下所示: 基本上,我不知道如何向给setApplicationContext的applicationContext对象添加一个bean。谁能告诉我我将如何处理错误的方法? 好的,这就是我最终得到的解决方案: 问题答案: 在Spri
问题内容: 是否可以通过编程将xml属性设置为标题,然后使用将该属性用于动画? 这就是我声明我的方式: 这是我的xml声明: 为了添加动画,我必须使用以下代码: 如何将(?)标题传递给函数? 问题答案: 是的,这是可能的: 扩展的类能够调用 例如: 更新 似乎您专门尝试共享标题,因此我将执行以下操作: MainActivity的示例xml: 然后在“活动”参考中,该视图: 然后在您的SecondA