Coder Social home page Coder Social logo

Comments (15)

GoogleCodeExporter avatar GoogleCodeExporter commented on September 18, 2024
well when I upgraded my sample work with andar from G1 to Samsung Galaxy 9000 
my textures got white as well, I put the texture files in res/drawable-hdpi 
instead of drawable and it worked agein so maybe that's a possibility for u as 
well

Original comment by [email protected] on 21 Jul 2010 at 1:37

from andar.

GoogleCodeExporter avatar GoogleCodeExporter commented on September 18, 2024
and u don't use vertex coordinates so that'll be a prob for sure

that's how I do it

public void draw(GL10 gl, float x, float y, float w, float h)
    {
        float vertex[] = new float[] {
                 x - w/2, y - h/2, 0,
                 x + w/2, y - h/2, 0,
                 x - w/2, y + h/2, 0,
                 x + w/2, y + h/2, 0
            };

         float texel[] = new float[] {
                 0, 1,
                 1, 1,
                 0, 0,
                 1, 0
           };

          ByteBuffer vb = ByteBuffer.allocateDirect(vertex.length * 4);
          vb.order(ByteOrder.nativeOrder());
          FloatBuffer vertexBuffer = vb.asFloatBuffer();
          vertexBuffer.put(vertex);
          vertexBuffer.position(0);

          ByteBuffer tb = ByteBuffer.allocateDirect(texel.length * 4);
          tb.order(ByteOrder.nativeOrder());
          FloatBuffer texelBuffer = tb.asFloatBuffer();
          texelBuffer.put(texel);
          texelBuffer.position(0);

          gl.glDisable(GL10.GL_BLEND);
          gl.glEnable(GL10.GL_TEXTURE_2D);
          bindTexture(gl); // this is my own funtction but just binds an allocated tex
          gl.glVertexPointer(3, GL10.GL_FLOAT, 0, vertexBuffer);
          gl.glEnableClientState(GL10.GL_VERTEX_ARRAY);
          gl.glTexCoordPointer(2, GL10.GL_FLOAT, 0, texelBuffer);
          gl.glEnableClientState(GL10.GL_TEXTURE_COORD_ARRAY);
          gl.glDrawArrays(GL10.GL_TRIANGLE_STRIP, 0, 4);
    }

Original comment by [email protected] on 21 Jul 2010 at 7:04

from andar.

GoogleCodeExporter avatar GoogleCodeExporter commented on September 18, 2024
Thanks banschare for your promt reply. basically in my coding I used vertex 
coordinates.like:

        gl.glVertexPointer(3, GL10.GL_FLOAT, 0, verticesBuffer);
        gl.glNormalPointer(GL10.GL_FLOAT, 0, normalsBuffer);    
        gl.glTexCoordPointer(2, GL10.GL_FLOAT, 0, textureCoordsBuffer);
        gl.glDrawArrays(GL10.GL_TRIANGLES, 0, 6);

after that a four square drawn and also can coloring it by using 
glcolor4f..anyway i still trouble bind it with texture image.

I already tried your drawable-hdpi method but got error:

Bitmap bm = BitmapFactory.decodeResource(res, 
R.drawable-hdpi.nehe1);//error:hdpi cannot be resolved and also R.drawable 
cannot be resolved

I also tried your coding but program exit when marker detect.if i ignored 
super.draw(gl);then not exit but nonthing draw in the scree.

if you are free can you check my coiding again..i am afraid whatever i have 
decalared is right or not.like:
package edu.dhbw.andar.pub;
public class CustomObject extends ARObject {
....
....
    @Override
    public void draw (GL10) {
        super.draw(gl);
         ....
         ....
            gl.glDrawArrays(GL10.GL_TRIANGLES, 0, 6);
}
    @Override
    public void init(GL10 gl) {

        gl.glEnable(GL10.GL_TEXTURE_2D);

        gl.glGenTextures(1, textureIDs, 0);
        //load the textures into the graphics memory

        Bitmap bm = BitmapFactory.decodeResource(res, R.drawable.nehe1);
        gl.glBindTexture(GL10.GL_TEXTURE_2D, textureIDs[0]);
        //GLUtils.texImage2D(GL10.GL_TEXTURE_2D, 0, bm,0);
        gl.glTexParameterx(GL10.GL_TEXTURE_2D, GL10.GL_TEXTURE_MIN_FILTER, GL10.GL_LINEAR);
        gl.glTexParameterx(GL10.GL_TEXTURE_2D, GL10.GL_TEXTURE_MAG_FILTER, GL10.GL_LINEAR);

        bm.recycle();


    }


I think there is something mismatch my declaration/wrong in my coding.So I am 
trying to figure out.If anybody can help me I will be very much thankful...

Thanks
Rassall

Original comment by [email protected] on 22 Jul 2010 at 5:08

from andar.

GoogleCodeExporter avatar GoogleCodeExporter commented on September 18, 2024
have you debugged the reference of Bitmap bm is there actually a valid 
reference or is it 0, non square texture will make problems as well, so your 
texture should be for example 256x256

and why have you commented this line //GLUtils.texImage2D(GL10.GL_TEXTURE_2D, 
0, bm,0);

this is very important otherwise your bitmap doesn't get loaded in texture 
memory

best,
banschare


Original comment by [email protected] on 22 Jul 2010 at 9:53

from andar.

GoogleCodeExporter avatar GoogleCodeExporter commented on September 18, 2024
Thanks Banschare for continuous supporting me..

how can i can do debug to understand bitmap bm is 0 or 1?

Yes I used 256x256 texture for this case...

basically in main coding I used also

GLUtils.texImage2D(GL10.GL_TEXTURE_2D, 0, bm,0);

but still same white box texture on the marker..Even I tried to load texture in 
CustomActivity.java also  but still same result white box...such that

public class CustomActivity extends AndARActivity {

....
....
    @Override
    public void init(GL10 gl) {
        gl.glGenTextures(1, textureIDs, 0);
        Bitmap bm = BitmapFactory.decodeResource(res, R.drawable.image);
        gl.glBindTexture(GL10.GL_TEXTURE_2D, textureIDs[0]);
        GLUtils.texImage2D(GL10.GL_TEXTURE_2D, 0, bm,0);
        bm.recycle();

    }
}

For me I think the problem is the loading texture. and this line under 

public void init(GL10 gl) {

gl.glBindTexture(GL10.GL_TEXTURE_2D, textureIDs[0]);///has no effect in my 
coding

}
has no effect in my coding

So I am really not understand what is the problem here...If you are free can i 
send this application to you for check...

Thanks again..

Regards
Rassall


Original comment by [email protected] on 23 Jul 2010 at 3:53

from andar.

GoogleCodeExporter avatar GoogleCodeExporter commented on September 18, 2024
[deleted comment]

from andar.

GoogleCodeExporter avatar GoogleCodeExporter commented on September 18, 2024
Rassall,

After the execution of this line:
Bitmap bm = BitmapFactory.decodeResource(res, R.drawable.image);

you should check the value of bm to make sure it is non-zero. It is possible 
that your bitmap isn't loading correctly. 

also, have you examined the output from logcat to see if there are any errors 
in it? 

Original comment by [email protected] on 19 Aug 2010 at 1:25

from andar.

GoogleCodeExporter avatar GoogleCodeExporter commented on September 18, 2024
Thanks Suzyque,

Actaully I don't understand how i can check value of bm ?because in logcat 
there is no information of about bm.

Anyway I tried to load texture followed by pingpong game(Tdomahan).And now 
problem seems in following two line:

Bitmap bm = BitmapFactory.decodeResource(res, R.drawable.nehe1);
GLUtils.texImage2D(GL10.GL_TEXTURE_2D, 0, bm,0); 

If i ignore this two line then program can open and draw white cube during 
marker detection time. otherwise if use these two functions then program open 
and exit automatically.

I did not find any thing about this two line in log.cat. Anyway I have attached 
my logcat of this program.

I have attached my program also..So if you check it will very helpful for me.

Thanks

Regards
Rassall

Original comment by [email protected] on 20 Aug 2010 at 9:10

from andar.

GoogleCodeExporter avatar GoogleCodeExporter commented on September 18, 2024
[deleted comment]

from andar.

GoogleCodeExporter avatar GoogleCodeExporter commented on September 18, 2024
Thanks 

I able to solved it.

Regards
Rassall

Original comment by [email protected] on 27 Aug 2010 at 6:18

from andar.

GoogleCodeExporter avatar GoogleCodeExporter commented on September 18, 2024
alright so I will close this issue. It would be great if you could tell others 
what the problem was and how you solved it.
regards
tobi

Original comment by tdomhan on 2 Oct 2010 at 11:11

  • Changed state: Done

from andar.

GoogleCodeExporter avatar GoogleCodeExporter commented on September 18, 2024
// Get a new texture id:
    private static int newTextureID(GL10 gl) {
        int[] temp = new int[1];
        gl.glGenTextures(1, temp, 0);
        return temp[0];        
    }


    private int loadTexture(GL10 gl, Context context, int resource) {       

        gl.glEnable(GL10.GL_TEXTURE_2D);

        int id = newTextureID(gl);

        Matrix flip = new Matrix();
        flip.postScale(1f, -1f);

        BitmapFactory.Options opts = new BitmapFactory.Options();
        opts.inScaled = true;

        // Load up, and flip the texture:
        //Bitmap temp = BitmapFactory.decodeResource(context.getResources(), resource, opts);
       // Bitmap bmp = Bitmap.createBitmap(temp, 0, 0, temp.getWidth(), temp.getHeight(), flip, true);
        //temp.recycle(); 

        InputStream is = context.getResources().openRawResource( resource);
        Bitmap bmp = null;
        try {           
            bmp = BitmapFactory.decodeStream(is);

        } finally {
            //Always clear and close
            try {
                is.close();
                is = null;
            } catch (IOException e) {
            }
        }

        gl.glBindTexture(GL10.GL_TEXTURE_2D, id);       

        gl.glTexParameterf(GL10.GL_TEXTURE_2D, GL10.GL_TEXTURE_MIN_FILTER, GL10.GL_LINEAR_MIPMAP_NEAREST);
        gl.glTexParameterf(GL10.GL_TEXTURE_2D, GL10.GL_TEXTURE_MAG_FILTER, GL10.GL_LINEAR_MIPMAP_NEAREST);
        gl.glTexParameterf(GL10.GL_TEXTURE_2D, GL10.GL_TEXTURE_WRAP_S, GL10.GL_REPEAT);
        gl.glTexParameterf(GL10.GL_TEXTURE_2D, GL10.GL_TEXTURE_WRAP_T, GL10.GL_REPEAT);

        int[] crop = {0, bmp.getWidth(), bmp.getHeight(), - bmp.getHeight()};

        ((GL11) gl).glTexParameteriv(GL10.GL_TEXTURE_2D, GL11Ext.GL_TEXTURE_CROP_RECT_OES, crop, 0);

        for(int level=0, height = bmp.getHeight(), width = bmp.getWidth(); true; level++) {

            GLUtils.texImage2D(GL10.GL_TEXTURE_2D, level, bmp, 0);

            if(height==1 && width==1) break;

            width >>= 1; height >>= 1;
            if(width<1)  width = 1;
            if(height<1) height = 1;

            Bitmap bmp2 = Bitmap.createScaledBitmap(bmp, width, height, true);
            bmp.recycle();
            bmp = bmp2;
        }

        bmp.recycle();

        return id;
    }
Please check this will work

Original comment by [email protected] on 11 Jan 2011 at 7:10

from andar.

GoogleCodeExporter avatar GoogleCodeExporter commented on September 18, 2024
Im having trouble with this section 

I finding it difficult to understand your solution did you place the load 
textures method inside your CustomObject  I'm sorta a noob at this and would 
appreciate any help with loading textures in AndAR


Original comment by [email protected] on 17 Mar 2012 at 9:58

from andar.

GoogleCodeExporter avatar GoogleCodeExporter commented on September 18, 2024
How are you getting the context? And where are you finally calling loadtexture? 
The problem I'm having in my project is that I need access to the projects 
Context, but I don't have access to it (at least not in my CustomOjbect class). 

Original comment by [email protected] on 23 Mar 2012 at 1:31

from andar.

GoogleCodeExporter avatar GoogleCodeExporter commented on September 18, 2024
Hi guys, may I see the code that is working so that I can see it in my phone, 
I'm having a problem too in adding a texture in sample cube in the project, 
help me please

Original comment by [email protected] on 27 Oct 2012 at 12:38

from andar.

Related Issues (20)

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.