问题标签 [scnlight]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
1 回答
1290 浏览

swift - SceneKit - 为什么添加聚光灯会使地板变黑?

屏幕截图 #1 显示了一个简单的 SceneKit 场景,其中只有一个环境光(明确添加,不是默认的)。

屏幕截图 #2 显示了添加聚光灯后发生的情况。整个地板都变黑了。在 SceneKit 编辑器中添加聚光灯后,此聚光灯具有默认属性。

定向光也会发生这种情况。

需要明确的是,场景默认包含环境光。但是,我们在添加聚光灯/定向光之前明确添加了环境光(甚至测试了两个) 。所以这个问题中提到的默认光理论不再适用。因此混乱。

聚光灯和定向灯应该为场景的特定区域添加光,这是可以理解的。但他们不应该把他们范围之外的区域变黑,对吧?

3D 图形和 SceneKit 的新手,因此非常感谢任何建议。

截图#1: 在此处输入图像描述

截图#2: 在此处输入图像描述

0 投票
1 回答
485 浏览

ios - SceneKit:zFar 或 Far Clipping 值会影响定向光及其阴影?

希望有助于理解 Scene Kit 中的定向灯和场景阴影。

SCNLight 上的类引用表示zFar表示the maximum distance between the light and a visible surface for casting shadows.它进一步表明该值仅适用于聚光灯。

但是,在 Xcode 场景编辑器中,在 Attributes Inspector 下,有一个Far Clipping. 更改此值会影响定向光投射的阴影,如下面的屏幕截图所示。

下面的场景是通过将定向光拖到场景中并将X Euler Angle值更改为 -60 并勾选“投射阴影”框来生成的。地板纹理取自 WWDC Fox 演示,

  • Far Clipping 和 zFar 一样吗?如果不是,有什么区别?

  • 既然定向光忽略了位置属性,为什么改变 Far Clipping 值会影响定向光产生的阴影?

  • 目标是照亮整个场景,并在节点上投射阴影,就好像晴天下午 3 点的太阳一样。是否可以使用定向光来实现这一点?到目前为止,使用定向灯可以实现整个场景被照亮的外观,但不能像聚光灯一样控制阴影。

屏幕截图 #1:Far Clipping 值为 10。

在此处输入图像描述

屏幕截图 #2:Far Clipping 值为 30。

在此处输入图像描述

0 投票
2 回答
1075 浏览

ios - SceneKit 定向光导致闪烁

我正在尝试在 Scenekit 中添加定向光来投射阴影,但它会在物体上造成奇怪的伪影。

下面的橙色块具有默认设置的材质,并且漫反射设置为橙色。定向灯指向下方,比例增加,否则为默认设置。(使规模更小仍然有同样的问题)。

当我在纹理周围平移相机时,纹理上覆盖着闪烁的线条和点,看起来很糟糕。

在此处输入图像描述

这在模拟器上不可见,仅在设备上可见。发生了什么事,我该如何解决?

0 投票
1 回答
1655 浏览

scenekit - 是否可以用鲜红色的 SCNSpotlight 画出清晰的 SCNSphere?

最近几天我在 SceneKit 上有点挣扎。我正在尝试绘制一个清晰/透明的 SCNSphere,带有红色聚光灯。如果我将 SCNSphere 设置为透明/清晰的颜色,我的红色聚光灯似乎也变得透明。是否可以取消 SCNLight 节点与 SCNSphereNode 的链接,以便在 SCNSphere 透明的情况下保留光斑的鲜红色?两个球体的图像都在代码下方。

我的代码:

带有亮红色聚光灯的较暗球体:

带有亮红色聚光灯的较暗球体

更透明的球体,带有柔和的红色聚光灯:

更透明的球体,带有柔和的红色聚光灯

0 投票
3 回答
350 浏览

scenekit - 如何更改 SceneKit 中黑点的颜色?

如何改变光线无法到达的区域的颜色?

默认情况下它是黑色的,那么我怎样才能让它变成白色呢?我找不到它,如果它重复,请让我知道如何形成我的问题以便找到正确的答案!

先感谢您

0 投票
2 回答
584 浏览

objective-c - 有没有办法在 Scenekit 上制作移动/变化的阴影(如初升的太阳)?

我的基本代码在该教程中几乎是这样的: https ://code.tutsplus.com/tutorials/an-introduction-to-scenekit-fundamentals--cms-23847

我想做一个日出行为。像 lightNode 这样的东西从与受约束的 cubeNode 相同的高度开始并将其向上移动,以便阴影随着时间的推移变得更小。因此我尝试通过 SCNAction.move(to...) 移动节点。

lightNode 上的操作 -> 没有任何反应

受约束的 cubeNode -> shadow 上的操作开始闪烁,但没有变化

我尝试了shadowModes。我想我误解了这一点。没有出现有用的结果。

有谁知道scenekit是否支持动态变化的阴影之类的东西?

0 投票
1 回答
534 浏览

scenekit - SCNNode clone() 在克隆节点时为场景添加更多光

我正在尝试在我的 ARKit 代码中添加多个带有阴影的 3d 对象。

我这样创建节点

一旦 ARKIT 检测到飞机,我就会创建一个这样的飞机:

并且在飞机的水龙头上,我正在向它添加带有阴影的树对象。但问题是当我一次又一次地克隆这些对象时,树下的平面会变得更加明亮,我认为我添加的光节点会继续为每个节点添加,尽管我试图按名称删除它。

我还尝试仅向第一个节点添加光,然后通过仅更新第一个光节点为其余节点添加光。但这也行不通。我希望树木添加阴影,其下方的平面保持不变。阴影也不完美,有没有办法让它们变得更好?

查看屏幕截图树下的平面如何随着一棵树的添加而变化。

第一张图片

第二张图片

第三张图片

0 投票
0 回答
667 浏览

ios - ARKit / SceneKit:阴影在视图边缘被切断

我正在尝试使用定向光和投射阴影的平面在 ARKit 中添加阴影。然而,当移动相机时,部分阴影(不是平面)会被切断。

我正在使用阴影模式设置为延迟的定向光。飞机的光照模型设置为常数。

我认为这与 zNear 和 zFar 值有关,但更改它们并没有任何效果。但是,当我将灯光的 automaticAdjustsShadowProjection 属性设置为 false 时,它​​不再被切断,但阴影本身看起来很糟糕。

ARKit 阴影

我能做些什么来解决这个问题?

0 投票
1 回答
869 浏览

ios - 如何将 ScnNode 用作 ScnLight?

我想使用太阳 SCNSphere 作为全向光源。

但是如果我运行这段代码,太阳是全黑的。

0 投票
1 回答
704 浏览

ios - iOS SceneKit 灯在模拟器中不起作用

当我运行包含 SCNView、包含一些对象和一些 SCNLight(添加了键光和环境光)的应用程序时,它确实可以在真实的 iOS 设备上正确运行。

但是,当我尝试在 iOS 模拟器中运行时,灯光不起作用。当我设置场景背景颜色时,我仍然可以在模拟器中看到对象为黑色剪影。

有谁知道是什么原因造成的,是否有任何解决方案可以让 SCNLights 在 iOS 模拟器上正常工作?

我已经尝试使用各种选项更改渲染引擎模式:

其中 X 是:

正如这里提到的。但是,这似乎没有任何区别(当我重置 iOS 模拟器时)。

一些上下文:

  • 运行 iOS 11.1
  • 这是一个相当高级的应用程序,带有另一个(单独的)SceneView(准确地说是 ARSCNView)。会不会是因为应用程序中基本上有两个SCNView而引起的?(尽管它们从未同时显示)。