Java 3d:无法让Shape3D受到灯光的影响

时间:2010-02-11 14:57:46

标签: java-3d lighting

我正在尝试让自定义Shape3D受到java 3D中DirectedLight的影响,但我所做的一切似乎都无法正常工作。

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

我给了外观一个材料(两者都有指定的颜色和光泽,没有)
我也把光照在与Shape相同的BranchGroup上,但它仍然不起作用。

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

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

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

[小怪也 - 如果我翻译球体,如果我在任何方向移动它大于31,它就会消失...... [我的视图设置大约700,因为我正在处理大小达600的对象宽度]


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

  

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

1 个答案:

答案 0 :(得分:1)

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

通过将BoundingBox设置为包含整个区域并将其分配到影响边界来更正此问题