How to make non-default renderers work

edited May 2016 in Arduino

Hello, mates from Processing community,

I am new to all the processing environment, got in first contact with it a couple weeks ago. I intend to use the 3D renderers to an Arduino project I am currently working on, but every single time I try to run a sketch in Processing while using a non-default renderer, the drawings/graphics window just doesn't open. I don't get an actual console warning, no errors, is just that nothing happens - and this happens even when using the "P2D" renderer.

For being so new to processing I'd think I am the one making some sort of mistake, but it has been almost one week of researching into what is this issue, and I just can't get it solved. Can you guys give me some help in this?

Things I have already tried:

  • Updating video board drivers (btw I have a nVidia GeForce 840M)

  • Configure Processing to use the nVidia board instead of the integrated one

  • Uninstalling and re-installing Processing

  • Importing "processing.opengl" library

  • Using different codes from various sources from throughout the internet

Cheers and thank you all,

Jonas

Answers

  • Bumping, anyone with a solution?

  • edited August 2015

    You say it's a GeForce. GeForce video boards got excellent OpenGL support.
    I dunno what could be the problem either. Sorry! :(

  • I intend to use the 3D renderers to an Arduino project

    I'm not sure I understand this bit. Are you running processing on an arduino?

    Post a simple example. Also, tell us the operating system and version of processing.

  • edited August 2015

    Sorry for that. I mean I want to visualize 3D movement in Processing using data coming from an Arduino and a gyroscope / accelerometer - which, by the way, is GY-521 MPU-6050. This exact implementation has been done by many people and is available in YouTube in some videos, like this one:

    But whenever I try running the function size( ) using a non-default renderer, the drawing window simply does not open. I've tried pre-made codes as well as codes like the following:

    void setup()
    {
         size(300, 300, P3D);
    }
    
    void draw()
    {
         background(0);
    }
    

    In these cases, the code runs perfectly when using the default renderer (by calling function size() with the first and second parameters only), but any other kind of renderer I try to use (even the 2D ones) results in the drawing window not opening, although Processing creates a process called jogamp_xxxxx.exe; Initially, there is no error message printed on the console, but when I close the jogamp process, comes a message I'm gonna attach as a screenshot.

    My laptop is a Dell Inspiron 15 3000. The specs are:

    Intel CORE i7-4510U
    8GB RAM
    nVidia GeForce 840M (drives were recently updated)
    running on Windows 7 Professional 64 bits
    

    default_rend non_default error_1 error_2

    definitely looks like a x86 - x64 implementation conflict. But I don't have any ideas on how to actually solve it.

    Cheers,

    Jonas

  • edited August 2015
    • This time you gave much more details but the Processing's version! :(|)
    • But from those shots it's the latest beta 3.0b3. Dunno whether it's 32 or 64 bits though! :-@
    • You should know that using beta versions are prone to bugs, dontcha? [-X
    • Latest official stable is v2.2.1. But if you manage to find, your best option is v3.0a5! :-\"
    • Also try out both 32 & 64 bits. That can make a huge diff. in achieving hardware compatibility.
    • 1 last observation: P2D renderer is OpenGL too. Only the default JAVA2D isn't.
    • We can test whether current canvas is using OpenGL by invoking isGL() btW.
  • the problem with pasting screenshots of errors is that they get resized and become unreadable.

    looks like a missing gluegen dll. i think these are supplied with processing but i have no clue about v3 on windows 7. is the file it mentions actually there?

  • Hello again, mates,

    Let me paste the error messages here then.

    Warning: Caught Exception while retrieving executable temp base directory: java.io.IOException: Could not determine a temporary executable directory at com.jogamp.common.util.IOUtil.getTempDir(IOUtil.java:1168) at com.jogamp.common.util.cache.TempFileCache.<clinit>(TempFileCache.java:80) at com.jogamp.common.util.cache.TempJarCache.initSingleton(TempJarCache.java:88) at com.jogamp.common.os.Platform$1.run(Platform.java:309) at java.security.AccessController.doPrivileged(Native Method) at com.jogamp.common.os.Platform.<clinit>(Platform.java:287) at com.jogamp.nativewindow.NativeWindowFactory$2.run(NativeWindowFactory.java:180) at java.security.AccessController.doPrivileged(Native Method) at com.jogamp.nativewindow.NativeWindowFactory.<clinit>(NativeWindowFactory.java:177) at com.jogamp.newt.NewtFactory$1.run(NewtFactory.java:67) at java.security.AccessController.doPrivileged(Native Method) at com.jogamp.newt.NewtFactory.<clinit>(NewtFactory.java:64) at processing.opengl.PSurfaceJOGL.initIcons(PSurfaceJOGL.java:408) at processing.opengl.PSurfaceJOGL.initFrame(PSurfaceJOGL.java:104) at processing.core.PApplet.initSurface(PApplet.java:10295) at processing.core.PApplet.runSketch(PApplet.java:10182) at processing.core.PApplet.main(PApplet.java:9947) java.lang.UnsatisfiedLinkError: Can't load library: H:\Disrupt\processing-3.0b3\gluegen-rt.dll at java.lang.ClassLoader.loadLibrary(ClassLoader.java:1825) at java.lang.Runtime.load0(Runtime.java:809) at java.lang.System.load(System.java:1086) at com.jogamp.common.jvm.JNILibLoaderBase.loadLibraryInternal(JNILibLoaderBase.java:596) at com.jogamp.common.jvm.JNILibLoaderBase.access$000(JNILibLoaderBase.java:63) at com.jogamp.common.jvm.JNILibLoaderBase$DefaultAction.loadLibrary(JNILibLoaderBase.java:95) at com.jogamp.common.jvm.JNILibLoaderBase.loadLibrary(JNILibLoaderBase.java:459) at com.jogamp.common.os.DynamicLibraryBundle$GlueJNILibLoader.loadLibrary(DynamicLibraryBundle.java:421) at com.jogamp.common.os.Platform$1.run(Platform.java:317) at java.security.AccessController.doPrivileged(Native Method) at com.jogamp.common.os.Platform.<clinit>(Platform.java:287) at com.jogamp.nativewindow.NativeWindowFactory$2.run(NativeWindowFactory.java:180) at java.security.AccessController.doPrivileged(Native Method) at com.jogamp.nativewindow.NativeWindowFactory.<clinit>(NativeWindowFactory.java:177) A library relies on native code that's not available. Or only works properly when the sketch is run as a 32-bit application. at com.jogamp.newt.NewtFactory$1.run(NewtFactory.java:67) at java.security.AccessController.doPrivileged(Native Method) at com.jogamp.newt.NewtFactory.<clinit>(NewtFactory.java:64) at processing.opengl.PSurfaceJOGL.initIcons(PSurfaceJOGL.java:408) at processing.opengl.PSurfaceJOGL.initFrame(PSurfaceJOGL.java:104) at processing.core.PApplet.initSurface(PApplet.java:10295) at processing.core.PApplet.runSketch(PApplet.java:10182) at processing.core.PApplet.main(PApplet.java:9947)

  • is the file it mentions actually there?

    this file: H:\Disrupt\processing-3.0b3\gluegen-rt.dll

  • Damn. It isn't. Haven't noticed that!

  • Just got to know the JOGL library needs to be installed in order to run such applications. I tried searching for some good, simple tutorials at how to install these Java libraries, but just found intrincated stuff that doesn't show a step-by-step procedure. So at the end, I have no idea on how to install JOGL.

  • edited August 2015 Answer ✓

    Earlier versions of processing came with jogl jars and associated libraries (I have windows 32 and 64 bit jars in my Linux download...). Don't know about v3 but it could be you have them, just not where it's looking for them.

  • edited August 2015

    Thank you all, mates. I downloaded version 2.2.1 and it works perfectly. I have already imported my .obj file into processing. Will post another question later about the PShape setStroke() method which is not working. Thank you again!

Sign In or Register to comment.