Creazione di una sfera incandescente in Java3D
Domanda
Sto cercando un modo per riprodurre questo effetto nebbia-sfera-incandescente utilizzando Java3D.
http://bzflag.org/screenshots/bzfi0021.jpg http://bzflag.org/screenshots/bzfi0019.jpg http://bzflag.org/screenshots/bzfi0022.jpg
Sto creando una trasformazione gruppo con una sorgente luminosa puntiforme e di un materiale sfera emissivo, ma non riesco a riprodurre l'foggyness.
idee?
Grazie!
============ SOLUZIONE (Grazie a Ricket) ===========
try
{
TextureLoader myLoader = new TextureLoader( new File("./data/grad.png").toURI().toURL(), this );
ImageComponent2D myImage = myLoader.getImage( );
Raster raster = new Raster( );
raster.setPosition( new Point3f( 0.0f, 0.0f, 0.0f ) );
raster.setType( Raster.RASTER_COLOR );
raster.setSize( 50, 50);
raster.setImage( myImage );
TransparencyAttributes ta = new TransparencyAttributes( TransparencyAttributes.BLENDED, 0.0f );
Appearance app = new Appearance();
app.setTransparencyAttributes( ta );
objScale.addChild( new OrientedShape3D(raster, app, OrientedShape3D.ROTATE_ABOUT_POINT, new Point3f( 0.0f, 0.0f, 0.0f )));
}
catch (MalformedURLException e) { throw new RuntimeException(); }
Soluzione
Sono abbastanza sicuro che la "sfera" è in realtà uno sprite 2D disegnato nello spazio 3D come un cartellone, e poi una luce di colore di corrispondenza anche 'disegnato' nella sua posizione. Il fogginess è solo un gradiente 2D dell'immagine.
Questa è solo la mia ipotesi migliore dall'aver giocato la partita, però, non ho guardato alla fonte.
Altri suggerimenti
L'articolo Illuminazione intesa nel API Java 3D spiega come impostare i parametri di illuminazione. Se non è possibile simulare l'effetto luminoso con una sfera si potrebbe provare a mettere un porteranno la luce, più piccola in una sfera trasparente colorato.
Si potrebbe provare a guardando il codice . Hanno anche un guidare .