首页 > 解决方案 > 使用灯光效果和透视相机时窗格被切断

问题描述

我遇到了 javaFX 灯光效果的另一个问题。在 2D 世界中使用透视相机跟随玩家时,一切正常,直到我添加灯光效果!

青色代表背景。当灯光效果打开时,关卡窗格不会在场景边缘渲染,而是可以看到背景。这使我的关卡的底部和右侧不可见,因此无法播放。在全屏模式下更糟糕!

这是我的演示代码:

import javafx.application.Application;
import javafx.scene.PerspectiveCamera;
import javafx.scene.Scene;
import javafx.scene.effect.Light;
import javafx.scene.effect.Lighting;
import javafx.scene.layout.Pane;
import javafx.scene.paint.Color;
import javafx.scene.shape.Rectangle;
import javafx.stage.Stage;

public class dd extends Application {

PerspectiveCamera cam = new PerspectiveCamera(false);

public void start(Stage alku) throws Exception {
    Pane testpane = new Pane();

    Rectangle background = new Rectangle(500, 500);
    background.setFill(Color.CYAN);

    Rectangle rec = new Rectangle(500, 300);

    Lighting lig = new Lighting();
    Light.Point l = new Light.Point();
    l.setX(200);
    l.setY(150);
    l.setZ(20);
    l.setColor(Color.WHITE);
    lig.setLight(l);

    rec.setFill(Color.RED);

    testpane.getChildren().addAll(background, rec);

    Scene scene = new Scene(testpane, 300, 300);
    cam.setTranslateX(30);
    cam.setTranslateY(30);

    alku.setTitle("TEST");
    alku.setScene(scene);

    rec.setEffect(lig);
    scene.setCamera(cam);
    alku.show();

}

public static void main(String[] args) {

    launch(args);
}

}

如果您移除相机或灯光,“rec”会再次正常渲染。只需调整窗口大小以更好地查看问题。所以我的主要问题是:这是一个错误吗?如果不是,如何在不牺牲灯光和相机的情况下解决这个渲染问题?

标签: javafxlight

解决方案


推荐阅读