如何在加工库中制作3D

How to make 3D in processing library

我在一个简单的 Java 项目中使用 Processing 库,我尝试制作 3D 但出现错误,这是我的代码:

package fr.ayfri;
import processing.core.PApplet;
import processing.core.PConstants;

public class Main extends PApplet {

    public void settings() {
        size(1600, 900, PConstants.P3D); // <--- P3D this tells Processing to work with 3D
    }

    public void draw() {
        background(140, 190, 255);
    }

    public static void main(String[] args) {

        String[] processingArgs = { "Main" };
        Main main = new Main();
        PApplet.runSketch(processingArgs, main);

    }
}

但是当我 运行 代码时,我得到了这个错误:

java.lang.NoClassDefFoundError: com/jogamp/opengl/GLCapabilitiesImmutable
    at processing.opengl.PGraphicsOpenGL.createPGL(PGraphicsOpenGL.java:712)
    at processing.opengl.PGraphicsOpenGL.<init>(PGraphicsOpenGL.java:569)
    at processing.opengl.PGraphics3D.<init>(PGraphics3D.java:35)
    at java.base/jdk.internal.reflect.NativeConstructorAccessorImpl.newInstance0(Native Method)
    at java.base/jdk.internal.reflect.NativeConstructorAccessorImpl.newInstance(NativeConstructorAccessorImpl.java:62)
    at java.base/jdk.internal.reflect.DelegatingConstructorAccessorImpl.newInstance(DelegatingConstructorAccessorImpl.java:45)
    at java.base/java.lang.reflect.Constructor.newInstanceWithCaller(Constructor.java:500)
    at java.base/java.lang.reflect.Constructor.newInstance(Constructor.java:481)
    at processing.core.PApplet.makeGraphics(PApplet.java:2266)
    at processing.core.PApplet.createPrimaryGraphics(PApplet.java:2345)
    at processing.core.PApplet.initSurface(PApplet.java:10983)
    at processing.core.PApplet.runSketch(PApplet.java:10922)
    at fr.ayfri.Main.main(Main.java:20)
Caused by: java.lang.ClassNotFoundException: com.jogamp.opengl.GLCapabilitiesImmutable
    at java.base/jdk.internal.loader.BuiltinClassLoader.loadClass(BuiltinClassLoader.java:602)
    at java.base/jdk.internal.loader.ClassLoaders$AppClassLoader.loadClass(ClassLoaders.java:178)
    at java.base/java.lang.ClassLoader.loadClass(ClassLoader.java:521)
    ... 13 more
java.lang.RuntimeException: com/jogamp/opengl/GLCapabilitiesImmutable
    at processing.core.PApplet.makeGraphics(PApplet.java:2299)
    at processing.core.PApplet.createPrimaryGraphics(PApplet.java:2345)
    at processing.core.PApplet.initSurface(PApplet.java:10983)
    at processing.core.PApplet.runSketch(PApplet.java:10922)
    at fr.ayfri.Main.main(Main.java:20)

Process finished with exit code 1

所以我只是不知道该怎么做?

P3D 在幕后使用 OpenGL,您需要 link 针对本机库。

在这种情况下,它是 Processing/Java/core/libraries 中存在的 joglgluegen-rt 库:只需为您的平台复制正确的 jars(或者如果您想 运行多个平台上的项目)并将它们添加到构建路径。

这是一个日食 OSX 示例: