Java 3DShape3D
の影響を受けるカスタムを取得しようとしていますが、何も機能していないようです。DirectedLight
シェイプにはIndexedQuadArray
、 NORMAL フラグが設定されて適用された であるジオメトリがあり、インデックス付きベクトルを使用して、法線ベクトルが正しい頂点に適用されるようにします。
外観にマテリアルを指定しました (指定された色と光沢のあるものとないものの両方) 。形状
と同じようにライトも配置しましたBranchGroup
が、まだ機能しません。
実際、シェイプに法線を追加すると、オブジェクトが消えたように見えます。法線がないと、フラット シェーディングになり、すべての面が同じシェーディングになります。
とてつもなく単純なものを含めるのを忘れているか、何か間違ったことをしたとしか思えません。
実際にライトをテストするためSphere
に、Shape の横に を配置しました。球は影響を受けて正しく照らされましたが、シェイプはまだ正しく点灯していませんでした。どちらも同じでしたBranchGroup
[ちょっと変わったことも - 球体を平行移動すると、どの方向にも 31 を超えて移動すると消えてしまいます... [幅が 600 までのサイズのオブジェクトを扱っているため、ビューは約 700 後ろに設定されています]
編集:おそらく関連している公式チュートリアルでこれを見つけました
ライブ シーン グラフでシェーディング用に適切に指定されたビジュアル オブジェクト (つまり、マテリアル オブジェクトを含むオブジェクト) は、影響を与えるすべての光源オブジェクトの境界の外にあり、黒くレンダリングされます。