Ios 如何检查节点是否被灯光击中?

Ios 如何检查节点是否被灯光击中?,ios,scenekit,Ios,Scenekit,目前,我有一个灯光、一个平面和一个立方体,还有另一个节点,我想检查它是否没有被灯光击中。我想检查整个节点本身是否没有被光线击中。节点是单个元素,不在层次结构中 照明是发生在GPU上的事情。即使您在自己的引擎中直接使用OpenGL或类似工具,了解照明效果也不是一件非常简单或高效的事情 也就是说,根据您想知道的确切内容(以及您需要知道的频率),有一些近似值可能会有用 对于聚光灯,调用视图的方法,将要了解的节点作为第一个参数传递,将聚光灯作为第二个参数传递。这将告诉您节点边界框的任何部分是否位于灯光

目前,我有一个灯光、一个平面和一个立方体,还有另一个节点,我想检查它是否没有被灯光击中。我想检查整个节点本身是否没有被光线击中。节点是单个元素,不在层次结构中

照明是发生在GPU上的事情。即使您在自己的引擎中直接使用OpenGL或类似工具,了解照明效果也不是一件非常简单或高效的事情

也就是说,根据您想知道的确切内容(以及您需要知道的频率),有一些近似值可能会有用

  • 对于聚光灯,调用视图的方法,将要了解的节点作为第一个参数传递,将聚光灯作为第二个参数传递。这将告诉您节点边界框的任何部分是否位于灯光“看到”的区域中(但如果中间有任何其他节点遮挡灯光,则不会)

  • 根据到节点的
    位置
    (或到其边界框的角)的距离检查灯光

  • 用于检查从灯光开始并在节点(其
    位置
    或边界框角)结束的光线。如果命中测试找到节点,则灯光可以到达节点(模衰减)。如果命中测试首先找到另一个节点,那么您关心的节点至少部分处于阴影中


尝试这些技巧的变化或组合可能会让你找到你想要的,或者是足够接近的东西。但要注意:这些测试需要CPU时间,所以您可能不希望每一帧都执行一个(或多个)测试

照明是发生在GPU上的事情。即使您在自己的引擎中直接使用OpenGL或类似工具,了解照明效果也不是一件非常简单或高效的事情

也就是说,根据您想知道的确切内容(以及您需要知道的频率),有一些近似值可能会有用

  • 对于聚光灯,调用视图的方法,将要了解的节点作为第一个参数传递,将聚光灯作为第二个参数传递。这将告诉您节点边界框的任何部分是否位于灯光“看到”的区域中(但如果中间有任何其他节点遮挡灯光,则不会)

  • 根据到节点的
    位置
    (或到其边界框的角)的距离检查灯光

  • 用于检查从灯光开始并在节点(其
    位置
    或边界框角)结束的光线。如果命中测试找到节点,则灯光可以到达节点(模衰减)。如果命中测试首先找到另一个节点,那么您关心的节点至少部分处于阴影中


尝试这些技巧的变化或组合可能会让你找到你想要的,或者是足够接近的东西。但要注意:这些测试需要CPU时间,所以您可能不希望每一帧都执行一个(或多个)测试

照明是发生在GPU上的事情。即使您在自己的引擎中直接使用OpenGL或类似工具,了解照明效果也不是一件非常简单或高效的事情

也就是说,根据您想知道的确切内容(以及您需要知道的频率),有一些近似值可能会有用

  • 对于聚光灯,调用视图的方法,将要了解的节点作为第一个参数传递,将聚光灯作为第二个参数传递。这将告诉您节点边界框的任何部分是否位于灯光“看到”的区域中(但如果中间有任何其他节点遮挡灯光,则不会)

  • 根据到节点的
    位置
    (或到其边界框的角)的距离检查灯光

  • 用于检查从灯光开始并在节点(其
    位置
    或边界框角)结束的光线。如果命中测试找到节点,则灯光可以到达节点(模衰减)。如果命中测试首先找到另一个节点,那么您关心的节点至少部分处于阴影中


尝试这些技巧的变化或组合可能会让你找到你想要的,或者是足够接近的东西。但要注意:这些测试需要CPU时间,所以您可能不希望每一帧都执行一个(或多个)测试

照明是发生在GPU上的事情。即使您在自己的引擎中直接使用OpenGL或类似工具,了解照明效果也不是一件非常简单或高效的事情

也就是说,根据您想知道的确切内容(以及您需要知道的频率),有一些近似值可能会有用

  • 对于聚光灯,调用视图的方法,将要了解的节点作为第一个参数传递,将聚光灯作为第二个参数传递。这将告诉您节点边界框的任何部分是否位于灯光“看到”的区域中(但如果中间有任何其他节点遮挡灯光,则不会)

  • 根据到节点的
    位置
    (或到其边界框的角)的距离检查灯光

  • 用于检查从灯光开始并在节点(其
    位置
    或边界框角)结束的光线。如果命中测试找到节点,则灯光可以到达节点(模衰减)。如果命中测试首先找到另一个节点,那么您关心的节点至少部分处于阴影中

尝试这些技巧的变化或组合可能会让你找到你想要的,或者是足够接近的东西。但要注意:这些测试需要CPU时间成本,