Java 3d:No se puede obtener Shape3D a ser afectados por las luces de la
Pregunta
Estoy tratando de conseguir un personalizados Shape3D
a ser afectado por un DirectedLight
en java 3D, pero nada de lo que yo hago parece que funciona.
La Forma tiene una geometría que es un IndexedQuadArray
, con la NORMAL indicador establecido y aplicado, asegurando que los vectores normales se aplican a la correcta vértices - uso de indexado vectores
Me han dado la Apariencia de un Material (tanto con los colores y el brillo, y sin)
También he de poner la luz en el mismo BranchGroup
como la Forma, pero todavía no funciona.
De hecho, cuando me agregue en las normales a la forma, el objeto parece desaparecer, y sin ellos, en un plano de sombra, para que todas las caras son del mismo tono.
Solo puedo pensar en que me estoy olvidando incluir algo ridículamente simple, o ha hecho algo mal.
Para probar las luces estaban, en realidad, me metieron en un Sphere
al lado de la Forma, y la esfera se vio afectada y encendió correctamente, pero la forma no.Los dos estaban en el mismo BranchGroup
[Pequeña rareza demasiado - si yo traduzco de la esfera, se desvanece si me muevo es mayor que 31 en cualquier dirección...[mi punto de vista se establece alrededor de 700 de nuevo como yo estoy tratando con objetos de tamaños de hasta 600 de ancho]
Editar:encontré esto en el oficial tutoriales que está probablemente relacionado
Un objeto visual correctamente especificado para el sombreado (es decir, uno con un objeto Material) en una escena en vivo gráfico, pero fuera de la influencia de los límites de toda fuente de luz de los objetos hace negro.
Solución
La luz del setInfluencingBounds()
no se ha ajustado correctamente, de modo que las formas en la escena de la que no se incluyó en los límites.
Esto fue corregido mediante el establecimiento de un BoundingBox
para abarcar toda la zona, y la asignación que en la influencia de los límites