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

Started by
4 comments, last by elliotpotts 10 years, 2 months ago
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.
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

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 :)

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!

Go on, feed your brain: http://poroba.com/flip/flipz.php

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.

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.

This topic is closed to new replies.

Advertisement