Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/ios/95.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
iOS 10:Omni类型的SCNLight忽略衰减值?_Ios_Scenekit_Ios10 - Fatal编程技术网

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;