【发布时间】:2021-08-27 16:05:04
【问题描述】:
我需要灯光在我的场景中保持“静止”。到目前为止我发现的最好的照明方法是实际使用scnView.autoenablesDefaultLighting = true 但是,我不知道是否有任何方法可以控制某些属性。光的强度有点太亮了,光的位置与我想要的位置有点不同,这些属性。
我尝试过使用各种其他灯光,将它们单独编码,但是因为它们作为节点添加到场景中,所以当我设置 scnView.allowsCameraControl = true 时,灯光(在这些情况下)本身会移动。一旦用户开始四处移动相机,默认照明是唯一保持“静止”的照明。您可以访问/控制默认照明的属性吗?
【问题讨论】:
-
这里的诀窍是将新灯光添加到相机节点或其子节点。这样,当相机移动时,光线也会移动。尝试通过
scnView.pointOfViewproperty 访问默认相机节点。 -
让你的灯光成为相机的孩子,让相机成为根的孩子。将几何节点放入容器中,使其成为根的子节点。保持几何独立于相机。 (永远不要移动根!)默认照明和相机在选项中是基本的。自己创建会更好,也不会那么难。
-
谢谢!我试试看!
-
@lock,@bpedit,好的,我刚刚尝试了这两个,但我仍然遇到同样的问题。首先,我将我的灯光设为相机
cameraNode.addChild(Omnilight)的子级,同时将相机设为主场景scene.rootnode.addChild(cameraNode)的子级。毕竟,scnView.allowsCameraControl仍然在移动场景,灯光也随之移动。我还尝试访问视点属性scnView.pointOfView = cameraNode,即使它没有标记错误,最终结果也是一样的!场景移动,灯光随之移动!!想法?? -
allowsCameraControl正在移动您的整个场景。您需要操作并查看您的SCNCamera。