• Advertisement
Sign in to follow this  

Android + GLES 2.0 - Why Can't I See Anything? (SOLVED)

This topic is 1437 days old which is more than the 365 day threshold we allow for new replies. Please post a new topic.

If you intended to correct an error in the post then please contact us.

Recommended Posts

Hi everyone - this is my first post on GameDev.net and I apologise that it is just asking for help! I cannot for the life of me get this code to display anything. All I want is a quad on the screen (or anything, then I can work from there!)

Here is the code: https://gist.github.com/elliotpotts/8983783

I don't understand what is wrong - I thought I'd done everything:
  • Compiled shaders
  • Linked program
  • Generated index + vertex buffers
  • Put data into the buffers
  • Bound the buffers and used the programme
  • Set up the vertex layout
  • Drawn with `glDrawElements`
But still all I can see is the orange screen from `glClear`! I can't find any errors in the log either.

Any help or insight would be much appreciated!
Thanks. Ell.

Share this post


Link to post
Share on other sites
Advertisement

Here are some things to try:

 

* Use your Projection. You are not calling your method to build the projection matrix, but you are pushing it to the shader.  Yet, you are not using it in the shader (mutiply that vec4(...) with it).

 

* Turn off culling explicitly.

 

* Push your geometry a little positive from 0 in the Z direction.

 

* Change the 2 to a 4 in the glDrawElements call; this number represents the number of indices, not triangles

 

* Try changing from GL_TRIANGLE_STRIP to GL_TRIANGLES

Share this post


Link to post
Share on other sites
Thanks for the tips - I don't gave access to my computer until the morning now (GMT) but as soon as I can I will try those things out and report with the results - if you think of anything in the mean time please post it here and I will check this thread to see if anyone has come up wit anything else. Thanks again :)

Share this post


Link to post
Share on other sites

Hi elliotpotts,

 

welcome to the special hell that is graphics programming ;)

 

Since I haven't found anything particularly wrong with your code, try the following:

* Add a GLES20.glGetError() after every single GLES20 function call you do. It it ever returns anything but 0, you've found your problem.

 

Otherwise, try to dumb it down:

* Do not use a vertex buffer, but push the vertices directly

* Use a simple orthographic projection

* Play with the z-value (negate it, +10, -10, ...). It may be that your geometry simply is not in the viewing area.

* Swear

 

Hope that helps!

Share this post


Link to post
Share on other sites

Okay, so I tried doing `GLES20.glGetError()` after every GLES20 function call and all of them were 0. I've tried fiddling with the z values - still can't see anything. I've now tried without any matrices at all which should draw the vertices in window coordinates - https://gist.github.com/elliotpotts/9005362

 

I don't want to try without a vertex & element buffer because this is what I need to achieve! I still have no clue why I'm not seeing anything because the above code is very minimal.

Share this post


Link to post
Share on other sites

Ahh I fixed the issue - I was trying to use the `GLES20` as if it were a C api therefore I was not using native `ByteBuffer`s! I have to allocate buffers with `ByteBuffer.allocateDirect` and then fill them with data.

Share this post


Link to post
Share on other sites
Sign in to follow this  

  • Advertisement