1

我试图让一个自定义Shape3D受到DirectedLightjava 3D 的影响,但我所做的似乎没有任何效果。

Shape 的几何形状为IndexedQuadArray,设置并应用了 NORMAL 标志,确保将法线向量应用于正确的顶点 - 使用索引向量

我为外观赋予了材质(具有指定的颜色和光泽度,以及没有)
我也将灯光置于与BranchGroup形状相同的位置,但它仍然不起作用。

事实上,当我在形状中添加法线时,对象似乎消失了——没有它们,它是平面阴影,因此所有面都是相同的阴影。

我只能认为我忘记了包含一些简单得可笑的东西,或者做错了什么。

实际上,为了测试灯光,我在Sphere形状旁边放了一个,球体受到影响并正确点亮,但形状仍然没有。两者都在同一个BranchGroup

[也有点奇怪 - 如果我平移球体,如果我将它向任何方向移动大于 31,它就会消失...... [我的视图设置为大约 700,因为我正在处理尺寸最大为 600 宽度的对象]


编辑:在可能相关的官方教程中找到了这个

在实时场景图中为着色正确指定的视觉对象(即具有材质对象的对象)但在所有光源对象的影响范围之外会呈现黑色。

4

1 回答 1

1

灯光setInfluencingBounds()设置不正确,因此场景中的形状未包含在边界中。

BoundingBox这已通过设置 a以包含整个区域并将其分配到影响范围内得到纠正

于 2010-02-11T15:30:15.873 回答