我正在尝试让自定义Shape3D
受到java 3D中DirectedLight
的影响,但我所做的一切似乎都无法正常工作。
Shape的几何体为IndexedQuadArray
,并设置并应用NORMAL标志,确保法线向量应用于正确的顶点 - 使用索引向量
我给了外观一个材料(两者都有指定的颜色和光泽,没有)
我也把光照在与Shape相同的BranchGroup
上,但它仍然不起作用。
事实上,当我将法线添加到形状中时,对象似乎消失了 - 没有它们,它是平面阴影,因此所有面都是相同的阴影。
我只能认为我忘记包含一些荒谬简单的东西,或者做错了什么。
为了测试灯光实际上,我在Shape旁边放了Sphere
,球体受到影响并正确点亮,但形状仍然没有。两者都在同一个BranchGroup
[小怪也 - 如果我翻译球体,如果我在任何方向移动它大于31,它就会消失...... [我的视图设置大约700,因为我正在处理大小达600的对象宽度]
编辑:在可能相关的官方教程中找到了这个
在实景场景图中为阴影(即带有“材质”对象的阴影)正确指定的视觉对象,但在所有光源对象的影响范围之外呈现黑色。
答案 0 :(得分:1)
灯光setInfluencingBounds()
未正确设置,因此场景中的形状未包含在边界内。
通过将BoundingBox
设置为包含整个区域并将其分配到影响边界来更正此问题