Java 3D:Shape3Dを照明の影響を受けることができません
質問
私はカスタムを取得しようとしています Shape3D
aによって影響を受ける DirectedLight
Java 3dでは、私がしていることは何も機能しないようです。
形状には、andのジオメトリがあります IndexedQuadArray
, 、通常のフラグが設定されて適用され、通常のベクトルが正しい頂点に適用されるようにします - インデックス付きベクトルを使用して
私は外観に素材を与えました(指定された色と光沢のある、そしてそれなしで)
私も同じに光をかけました BranchGroup
形状として、しかしそれはまだ機能しません。
実際、形状に法線を追加すると、オブジェクトが消えてしまうように見えます - それらがなければ、それは平らな日陰であるため、すべての顔が同じ色合いになります。
私は途方もなくシンプルなものを含めることを忘れているか、何か間違ったことをしたと思うことしか考えられません。
ライトをテストするために実際には、私は Sphere
形状の横には、球体が影響を受け、正しく照らされましたが、形状はまだそうではありませんでした。どちらも同じでした BranchGroup
小さな奇妙さも - 球体を翻訳すると、任意の方向に31を超えて移動すると消えます...
編集:おそらく関連する公式チュートリアルでこれを見つけました
ライブシーングラフでシェーディング(つまり、素材を備えたもの)に適切に指定された視覚オブジェクトは、すべての光源オブジェクトの影響境界の外側で黒くなります。
解決
ライト setInfluencingBounds()
シーンの形状が境界に含まれていないように、正しく設定されていませんでした。
これは、設定によって修正されました BoundingBox
エリア全体を包含し、それを影響境界に割り当てる