Jump to content

  • Log In with Google      Sign In   
  • Create Account

FREE SOFTWARE GIVEAWAY

We have 4 x Pro Licences (valued at $59 each) for 2d modular animation software Spriter to give away in this Thursday's GDNet Direct email newsletter.


Read more in this forum topic or make sure you're signed up (from the right-hand sidebar on the homepage) and read Thursday's newsletter to get in the running!


#ActualGuardianX

Posted 13 July 2013 - 01:18 PM

Hello.

I'm quite new person in OpenGL graphics. Recently I started to learn OpenGL ES 2.0 technology to be able to make some games on my Android devices. I have a few questions to clear some things up for me.

 

1. Where can I find comprehensive OpenGL ES 2.0 tutorials, or book for making games on Android by means of Java/Android SDK, not C++/NDK? A lot of resources are dedicated to OpenGL ES 1.0 technology, not 2.0 one. In fact it's very hard to find complete tutorials for 2.0 with good non-contradictory code base.

 

2. Why there are almost no 2.0 tutorials? Is it any popular? Google says that devices starting from Android 2.2 can use this new version, so if no one uses it, why? At the first glance it gives more flexible way of doing things.

 

3. I'm a bit confused with the way matrix multiplication system works.

 

Do I have to use:

 

Matrix.setIdentityM( mModelMatrix, 0 );
Matrix.multiplyMM( mMVPMatrix, 0, mViewMatrix, 0, mModelMatrix, 0 );
Matrix.multiplyMM( mMVPMatrix, 0, mProjectionMatrix, 0, mMVPMatrix, 0 );

To get simple mMVPMatrix = mModelMatrix * mMviewMatrix * mProjectionMatrix equation done? Can I use this result matrix as uniform variable in shader?

 
4. Is this the right code to rotate my object around Y axis by some angle 'mAngle':
 
Matrix.setRotateM( mRotationMatrix, 0, mAngle, 0.0f, -1.0f, 0.0f );
Matrix.setIdentityM( mModelMatrix, 0 );
Matrix.multiplyMM( mModelmatrix, 0, mRotationMatrix, 0, mModelMatrix, 0 );
Matrix.multiplyMM( mMVPMatrix, 0, mViewMatrix, 0, mModelMatrix, 0 );
Matrix.multiplyMM( mMVPMatrix, 0, mProjectionMatrix, 0, mMVPMatrix, 0 );

To me it seems legit, but I get really weird results on my phone when I try to render simple textured box. Top, bottom sides of the box rotate around camera, not the opposite way.

 

This is my renderer and simple textured cube classes:

http://pastebin.com/Phd2ym3Z - renderer

http://pastebin.com/i9rb3r6v - textured cube

 

Thanks for your time!


#1GuardianX

Posted 13 July 2013 - 01:17 PM

Hello.

I'm quite new person in OpenGL graphics. Recently I started to learn OpenGL ES 2.0 technology to be able to make some games on my Android devices. I have a few questions to clear some things up for me.

 

1. Where can I find comprehensive OpenGL ES 2.0 tutorials, or book for making games on Android by means of Java/Android SDK, not C++/NDK? A lot of resources are dedicated to OpenGL ES 1.0 technology, not 2.0 one. In fact it's very hard to find complete tutorials for 2.0 with good non-contradictory code base.

2. Why there are almost no 2.0 tutorials? Is it any popular? Google says that devices starting from Android 2.2 can use this new version, so if no one uses it, why?

3. I'm a bit confused with the way matrix multiplication system works.

 

Do I have to use:

 

Matrix.setIdentityM( mModelMatrix, 0 );
Matrix.multiplyMM( mMVPMatrix, 0, mViewMatrix, 0, mModelMatrix, 0 );
Matrix.multiplyMM( mMVPMatrix, 0, mProjectionMatrix, 0, mMVPMatrix, 0 );

To get simple mMVPMatrix = mModelMatrix * mMviewMatrix * mProjectionMatrix equation done? Can I use this result matrix as uniform variable in shader?

 
3. Is this the right code to rotate my object around Y axis by some angle 'mAngle':
 
Matrix.setRotateM( mRotationMatrix, 0, mAngle, 0.0f, -1.0f, 0.0f );
Matrix.setIdentityM( mModelMatrix, 0 );
Matrix.multiplyMM( mModelmatrix, 0, mRotationMatrix, 0, mModelMatrix, 0 );
Matrix.multiplyMM( mMVPMatrix, 0, mViewMatrix, 0, mModelMatrix, 0 );
Matrix.multiplyMM( mMVPMatrix, 0, mProjectionMatrix, 0, mMVPMatrix, 0 );

To me it seems legit, but I get really weird results on my phone when I try to render simple textured box. Top, bottom sides of the box rotate around camera, not the opposite way.

 

This is my renderer and simple textured cube classes:

http://pastebin.com/Phd2ym3Z - renderer

http://pastebin.com/i9rb3r6v - textured cube

 

Thanks for your time!

 


PARTNERS