Show Posts

This section allows you to view all posts made by this member. Note that you can only see posts made in areas you currently have access to.

Topics - rbj

Pages: [1]

I am experiencing an exception on a S5 which does not occur on another S5.

There is an older similar thread from 2015 here: Re: Object3D's transparency issue,4232.45.html

This is the problem that occurs in a world.draw(fb) statement:
java.lang.NullPointerException: Attempt to invoke virtual method 'int com.threed.jpct.Texture.getOpenGLID(int)' on a null object reference
        at com.threed.jpct.GLRenderer.setTextures(
        at com.threed.jpct.GLRenderer.drawVertexArray(
        at com.threed.jpct.World.draw(
        at com.threed.jpct.World.draw(
        at android.opengl.GLSurfaceView$GLThread.guardedRun(
        at android.opengl.GLSurfaceView$

If I look at the code in GLRenderer I wonder why there is no check for a null texture:

   private void setTextures(Object3D obj, int number, int modeNumber, FrameBuffer buffer, World world) {
        int texInd = false;
        if (obj.oneTextureSet) {
            number = 0;
        Texture texture = this.texMan.textures[obj.texture[number]];
        if (texture.getOpenGLID(this.myID) == 0 || texture.getMarker(this.myID) == Texture.MARKER_DELETE_AND_UPLOAD) {

Of course the deeper question is why the texture is missing on one device and not on another.
Any tips?

Support / Relationship TextureManager with multiple objects
« on: February 13, 2019, 01:47:46 pm »

I am showing several 3d objects at the same time, this works fine.
Next, some objects need to be grayed out, some should have color/texture, depending on being selected or not.
I do this by replacing the textures in the TextureManager with a Texture from gray.png file.

However, how do I find out which Textures in TextureManager belong to which Object3D?

Or is there a simpler method of not using the color and textures of a 3D object?
(All objects are read from *.3DS exports from Blender)

Hope someone can point me in the right direction...


Hi all!

I am importing *.3ds files from Blender to JPCT-AE
Using the code below to get the textures names I see that the textures can not be loaded because the filenames are truncated:
-> Texture file not found:
-> Texture file not found: flagtexture.
These should be alienmat1.jpg and flagtexture.jpg
The names are truncated at 12 characters (old DOS 8.3 file names?)

        private void checkTextures() {
            int texCnt = TextureManager.getInstance().getTextureCount();
            Log.d(TAG, ">> Have " + texCnt + " textures");
            if (texCnt > 0) {
                Set<String> texNames = TextureManager.getInstance().getNames();
                Iterator itr = texNames.iterator();
                while (itr.hasNext()) {
                    String tex =;
                    Log.d(TAG, "Texture " + tex);
                    try {
                        TextureManager.getInstance().replaceTexture(tex, new Texture(mContext.getAssets().open(tex.toLowerCase())));
                    } catch ( e ) {
                        Log.d(TAG,"-> Texture file not found: "+tex);
                    } catch ( e) {

Why? Anyone also experiencing this?


Pages: [1]