Domanda

Sto tentando di ottenere un Shape3D personalizzato di essere colpiti da un DirectedLight in Java 3D, ma niente che faccio sembra funzionare.

La Forma ha una geometria che è un IndexedQuadArray, con il flag NORMAL impostato e applicato, garantendo i vettori normali sono applicati ai vertici corretti - utilizzando vettori indicizzati

Ho dato l'aspetto di un materiale (sia con colori e lucentezza specificati, e senza)
Ho anche messo la luce sullo stesso BranchGroup come la forma, ma ancora non funziona.

In realtà, quando aggiungo nelle normali alla forma, l'oggetto appare a scomparire -. Senza di loro, è piatta ombreggiato, in modo che tutte le facce sono le stesse tonalità

Posso solo pensare che mi sto dimenticando di includere qualcosa ridicolmente semplice, o ho fatto qualcosa di sbagliato.

Per testare le luci erano in realtà, ho messo in una Sphere accanto alla forma, e la sfera è stata influenzata e accesi in modo corretto, ma la forma ancora non lo ero. Entrambi erano sulla stessa BranchGroup

[Piccola stranezza troppo - se traduco la sfera, svanisce se mi muovo più grande di 31 in tutte le direzioni ... [mio punto di vista è impostato su 700 indietro come ho a che fare con oggetti di dimensioni fino a 600 in larghezza]


Edit: trovato questo tutorial ufficiali che è probabilmente legato

  

Un oggetto visuale correttamente specificato per ombreggiatura (cioè, uno con un oggetto materiale) in un grafico scena live ma fuori dei limiti che influenzano di tutti gli oggetti di sorgente luminosa rende nero.

È stato utile?

Soluzione

setInfluencingBounds() La luce non è stato impostato correttamente, in modo che le forme in scena non venivano inclusi nei limiti.

Questo è stato corretto impostando un BoundingBox per comprendere l'intera area, e assegnando che ai contorni influenzano

Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top