iOS 10:Omni类型的SCNLight忽略衰减值?
我有一个简单的iOS 10:Omni类型的SCNLight忽略衰减值?,ios,scenekit,ios10,Ios,Scenekit,Ios10,我有一个简单的SceneKit场景,只有两个光源(环境光源和全向光源)和一个模型。我注意到在ios10上运行时,我的场景看起来完全黑暗(甚至在我用ios10SDK重新编译我的应用程序之前)。经过调查,我意识到我的环境光是唯一一个影响我的模型 使泛光灯影响我的模型的唯一方法是使其非常接近它,或者将其强度(使用新的setIntensity:选择器)增加一倍5000000 更改衰减起始距离、衰减和距离和衰减衰减衰减指数的值并没有改变结果,这真的很奇怪,考虑到如果我对这两个距离都使用0.0,那么我不应该
SceneKit
场景,只有两个光源(环境光源和全向光源)和一个模型。我注意到在ios10
上运行时,我的场景看起来完全黑暗(甚至在我用ios10
SDK重新编译我的应用程序之前)。经过调查,我意识到我的环境光是唯一一个影响我的模型
使泛光灯影响我的模型的唯一方法是使其非常接近它,或者将其强度(使用新的setIntensity:
选择器)增加一倍5000000
更改衰减起始距离
、衰减和距离
和衰减衰减衰减指数
的值并没有改变结果,这真的很奇怪,考虑到如果我对这两个距离都使用0.0
,那么我不应该期望任何衰减,但它发生了(因此需要使用这个巨大的强度值)
即使将SCNDisableLinearSpaceRendering
键添加到我的Info.plist
或SCNDisableWideGamut
键,此结果也不会更改
我是否丢失了一些新参数,或者它是一个
iOS 10
错误?在更改衰减起始距离
、衰减起始距离
、和衰减衰减衰减指数
的值后,我成功地更改了结果,但仅在使用该巨大的强度
值时。iOS 10
才被取消有限不忽略这些参数
然而,ios10
似乎在前一个基础上应用了另一个衰减。它还自动衰减强度
值,而不考虑这些参数。也许它将这个新的强度
参数视为在基于物理的渲染器中,即使它不是
因此,如果你有一个遥远的泛光光源,看起来你仍然需要一个大的强度
,使它从远处足够明亮,即使你禁用了衰减
编辑
iOS 10
确实使用了基于物理的照明模型作为新的默认设置!加载模型后,iOS 9
将为材质的lightingModelName
属性提供SCNLightModelBlinn
,而iOS 10
将提供SCNLightingModelPhysicallybase
。您可以实现>iOS 9
在加载模型后通过更改该属性的值来执行行为
for(SCNMaterial * mt in model.geometry.materials)
mt.lightingModelName = SCNLightingModelBlinn;