【问题标题】:Java 3d: Unable to get Shape3D to be affected by lightsJava 3d:无法让 Shape3D 受灯光影响
【发布时间】:2010-02-11 23:36:03
【问题描述】:

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

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

我已为外观指定了材质(具有指定的颜色和光泽度,以及没有)
我也将灯放在与 Shape 相同的 BranchGroup 上,但它仍然不起作用。

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

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

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

[也有点奇怪——如果我平移球体,如果我将它向任何方向移动大于 31,它就会消失...... [我的视图设置为大约 700,因为我正在处理大小不超过 600 英寸的物体宽度]


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

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

【问题讨论】:

    标签: java-3d lighting


    【解决方案1】:

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

    已通过设置 BoundingBox 以包含整个区域并将其分配到影响范围内来纠正此问题

    【讨论】:

      猜你喜欢
      • 2015-12-31
      • 2018-04-14
      • 2013-02-27
      • 1970-01-01
      • 2013-12-29
      • 2019-08-09
      • 2018-03-27
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多