Question

Je cherche à obtenir un Shape3D personnalisé pour être affecté par un DirectedLight en Java 3D, mais rien que je ne semble fonctionner.

La forme a une géométrie qui est un IndexedQuadArray, avec le drapeau NORMAL fixé et appliqué, assurant que les vecteurs normaux sont appliqués aux sommets correctes - en utilisant des vecteurs indexés

Je donne l'apparence d'un matériau (à la fois avec des couleurs précises et luisance, et sans)
J'ai aussi mis la lumière sur le même BranchGroup que la forme, mais il ne fonctionne toujours pas.

En fait, quand j'ajoute dans les Normales à la forme, l'objet semble disparaître -. Sans eux, il est plat ombrée, de sorte que toutes les faces sont de la même teinte

Je ne peux penser que j'oublie d'inclure quelque chose ridiculement simple, ou l'ont fait quelque chose de mal.

Pour tester les lumières étaient en fait, je mets dans un Sphere à côté de la forme, et la sphère était touchée et allumé correctement, mais la forme était toujours pas. Tous deux étaient sur le même BranchGroup

[Petite bizarrerie trop - si je traduis la sphère, il disparaît si je le déplacer supérieur à 31 dans toutes les directions ... [mon avis est réglé à 700 que je me fais face à des objets de tailles jusqu'à 600 largeur]


Edit: trouvé cela dans les tutoriels officiels qui est probablement lié

  

Un objet visuel correctement spécifié pour l'ombrage (à savoir, une avec un objet Matériau) dans un graphe de scène en direct, mais en dehors des limites qui influent sur l'ensemble des objets de source de lumière rend noir.

Était-ce utile?

La solution

n'a pas été défini de setInfluencingBounds() de la lumière correctement, de sorte que les formes de la scène n'étaient pas inclus dans les limites.

Ceci a été corrigé par la fixation d'un BoundingBox pour englober toute la surface, et l'affectation que dans les limites influençant

Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top