Pregunta

Estoy buscando una manera de reproducir este efecto de niebla-esfera resplandeciente usando Java 3D.

http://bzflag.org/screenshots/bzfi0021.jpg http://bzflag.org/screenshots/bzfi0019.jpg http://bzflag.org/screenshots/bzfi0022.jpg

Estoy creando un grupo de transformación con un punto fuente de luz y un material esfera de emisión, pero no puedo reproducir el foggyness.

Las ideas?

Gracias!

============ solución (Gracias 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(); }
¿Fue útil?

Solución

Estoy bastante seguro de la "esfera" es en realidad un Sprite 2D dibujado en el espacio 3D como una valla publicitaria, y luego una luz de color a juego también 'elaborado' en su posición. La nebulosidad es sólo un gradiente 2D de la imagen.

Esto es sólo mi mejor conjetura de haber jugado el juego, sin embargo, no he mirado en la fuente.

Otros consejos

El artículo Iluminación entendimiento en la API Java 3D explica cómo configurar los parámetros de iluminación. Si no se puede simular el efecto de brillo con una esfera que podría tratar de poner una Brigther más pequeña en una esfera transparente de color.

mirar el código . Incluso tienen un guían .

Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top