Efectos JavaFX - Iluminación (fuente predeterminada)

El efecto de iluminación se utiliza para simular una luz de una fuente de luz. Hay diferentes tipos de fuentes de luz que incluyen:Point, Distant y Spot.

Si no mencionamos ninguna fuente de iluminación, utiliza la fuente predeterminada de JavaFX.

La clase nombrada Lighting del paquete javafx.scene.effect representa el efecto de iluminación, esta clase contiene diez propiedades, que son:

  • bumpInput - Esta propiedad es del tipo Efecto y representa una entrada de mapa de relieve opcional para el efecto de iluminación.

  • contentInput - Esta propiedad es del tipo Efecto y representa una entrada de contenido al efecto de iluminación.

  • diffuseConstant - Esta propiedad es del tipo double y representa la constante difusa de la luz.

  • SpecularConstant - Esta propiedad es del tipo double y representa la constante especular de la luz.

  • SpecularExponent - Esta propiedad es del tipo double y representa el exponente especular de la luz.

  • SurfaceScale - Esta propiedad es del tipo double y representa el factor de escala de superficie de la luz.

Ejemplo

El siguiente programa es un ejemplo que demuestra el efecto de iluminación de JavaFX. Aquí estamos dibujando un texto "Bienvenido a Tutorialspoint" y un círculo en una escena.

A estos, les estamos aplicando el efecto de iluminación. Aquí, como no mencionamos ninguna fuente, JavaFX usa su fuente predeterminada.

Guarde este código en un archivo con el nombre LightingEffectExample.java.

import javafx.application.Application; 
import javafx.scene.Group; 
import javafx.scene.Scene; 
import javafx.scene.effect.Lighting; 
import javafx.scene.paint.Color; 
import javafx.scene.shape.Circle; 
import javafx.stage.Stage; 
import javafx.scene.text.Font; 
import javafx.scene.text.FontWeight; 
import javafx.scene.text.Text; 
         
public class LightingEffectExample extends Application { 
   @Override 
   public void start(Stage stage) {  
      //Creating a Text object 
      Text text = new Text();       
      
      //Setting font to the text 
      text.setFont(Font.font(null, FontWeight.BOLD, 40));       
      
      //setting the position of the text 
      text.setX(60); 
      text.setY(50); 
      
      //Setting the text to be embedded. 
      text.setText("Welcome to Tutorialspoint");       
      
      //Setting the color of the text 
      text.setFill(Color.RED);   
       
      //Drawing a Circle 
      Circle circle = new Circle();         
      
      //Setting the center of the circle
      circle.setCenterX(300.0f); 
      circle.setCenterY(160.0f); 
      
      //Setting the radius of the circle 
      circle.setRadius(100.0f); 
      
      //setting the fill color of the circle 
      circle.setFill(Color.CORNFLOWERBLUE);   
       
      //Instantiating the Lighting class  
      Lighting lighting = new Lighting(); 
  
      //Applying lighting effect to the text 
      text.setEffect(lighting);      
      
      //Applying lighting effect to the circle 
      circle.setEffect(lighting); 
         
      //Creating a Group object  
      Group root = new Group(text,circle);   
               
      //Creating a scene object 
      Scene scene = new Scene(root, 600, 300);  
      
      //Setting title to the Stage 
      stage.setTitle("Distant light effect example"); 
         
      //Adding scene to the stage 
      stage.setScene(scene); 
         
      //Displaying the contents of the stage 
      stage.show();         
   } 
   public static void main(String args[]){ 
      launch(args); 
   } 
}

Compile y ejecute el archivo java guardado desde el símbolo del sistema utilizando los siguientes comandos.

javac LightingEffectExample.java 
java LightingEffectExample

Al ejecutarse, el programa anterior genera una ventana JavaFX como se muestra a continuación.