【发布时间】:2015-03-31 18:59:51
【问题描述】:
我正在 Raspberrypi(Raspbian) 上的 Processing 中编写一个程序,以导入 3D STL image 文件。它在 Microsoft (windows7) 和 Linux(Ubuntu) 平台上运行良好,但我正在努力在 Raspberrypi (Raspbian) 平台上运行相同的程序。
当我在 Raspberrypi 上运行此程序时,size(600,600,P3D) 出现错误...
编码
import toxi.geom.*;
import toxi.geom.mesh.*;
import toxi.processing.*;
TriangleMesh mesh;
ToxiclibsSupport gfx;
void setup() {
size(600,600,P3D);
mesh=(TriangleMesh)new STLReader().loadBinary(sketchPath("check.stl"),STLReader.TRIANGLEMESH);
gfx=new ToxiclibsSupport(this);
}
void draw() {
background(51);
lights();
translate(width/2,height/2,0);
rotateX(mouseY*0.01);
rotateY(mouseX*0.01);
gfx.origin(new Vec3D(),200);
noStroke();
gfx.mesh(mesh,false,10);
}
错误
java.lang.NoClassDefFoundError: javax/media/opengl/GLException
at processing.opengl.PGraphicsOpenGL.createPGL(PGraphicsOpenGL.java:1744)
at processing.opengl.PGraphicsOpenGL.<init>(PGraphicsOpenGL.java:518)
at processing.opengl.PGraphics3D.<init>(PGraphics3D.java:37)
at sun.reflect.NativeConstructorAccessorImpl.newInstance0(Native Method)
at sun.reflect.NativeConstructorAccessorImpl.newInstance(NativeConstructorAccessorImpl.java:57)
at sun.reflect.DelegatingConstructorAccessorImpl.newInstance(DelegatingConstructorAccessorImpl.java:45)
at java.lang.reflect.Constructor.newInstance(Constructor.java:526)
at processing.core.PApplet.makeGraphics(PApplet.java:1919)
at processing.core.PApplet.size(PApplet.java:1771)
at processing.core.PApplet.size(PApplet.java:1742)
at project5.setup(project5.java:27)
at processing.core.PApplet.handleDraw(PApplet.java:2361)
at processing.core.PGraphicsJava2D.requestDraw(PGraphicsJava2D.java:240)
at processing.core.PApplet.run(PApplet.java:2256)
at java.lang.Thread.run(Thread.java:724)
Caused by: java.lang.ClassNotFoundException: javax.media.opengl.GLException
at java.net.URLClassLoader$1.run(URLClassLoader.java:366)
at java.net.URLClassLoader$1.run(URLClassLoader.java:355)
at java.security.AccessController.doPrivileged(Native Method)
at java.net.URLClassLoader.findClass(URLClassLoader.java:354)
at java.lang.ClassLoader.loadClass(ClassLoader.java:424)
at sun.misc.Launcher$AppClassLoader.loadClass(Launcher.java:308)
at java.lang.ClassLoader.loadClass(ClassLoader.java:357)
... 15 more
【问题讨论】:
-
您在 Raspian 上安装了哪个版本的 Processing(1.5.1、2.x 等?)。您是否尝试将渲染器设置为 OPENGL(
size(600,600,P3D);) ?未经测试,我的猜测是有毒库的 ToxiclibsSupport 渲染器类依赖于 OpenGL 渲染器,在新版本的处理中,我认为 P3D 和 OPENGL 渲染器在某种程度上是合并的。尝试使用 1.5.1,希望它会起作用。如果没有,那还不算太糟糕。我假设如果您注释掉 ToxiclibsSupport 部分,代码将运行,如果是这种情况,也许您可以在没有它的情况下进行渲染(仅使用普通的处理调用)。 -
我在
Processing-2.2.1上使用了这个命令OPENGL(size(600,600,P3D);)但它给出了另一个错误The function OPENGL(void) does not exist. -
对不起,我的意思是这样使用它:
size(600,600,OPENGL);。尝试一下,尽管它可能仍然会出现低级 OpenGL 错误。您可以尝试运行 Examples > Demos > Graphics > LowLevelGL 并指出应用程序是否可以运行(如果不能,您会遇到什么错误)? -
我也刚刚运行了那个程序
Examples > Demos > Graphics > LowLevelGL,但我仍然遇到同样的错误...... -
我已经更新了答案:您现在可以尝试使用 3D 支持处理。
标签: opengl 3d raspberry-pi processing raspbian