【发布时间】:2016-10-27 08:30:10
【问题描述】:
我想知道 Metal API 中是否只有 Point Light 和 Ambient Light,或者我也可以在我的 3D 环境中使用 Spot Light 和 Directional Light?
struct Light {
var color: (Float, Float, Float)
var ambientIntensity: Float
static func size() -> Int {
return sizeof(Float) * 4
}
func raw() -> [Float] {
let raw = [color.0, color.1, color.2, ambientIntensity]
return raw
}
}
如果
Spot Light和Directional Light存在于Apple的Metal API中,如何实现?
【问题讨论】:
-
MetalKit 可轻松与 Model I/O 框架交互。模型 I/O 有一个类 MDLLight,您可以使用它来创建这些灯光类型。 developer.apple.com/reference/modelio/mdlllight
-
@Marius 非常感谢。
-
ModelIO 对光渲染没有多大帮助——它在一定程度上与 Metal 具有互操作性,但主要用于从模型数据创建可用缓冲区之类的事情。