Jump to content

  • Log In with Google      Sign In   
  • Create Account

Interested in a FREE copy of HTML5 game maker Construct 2?

We'll be giving away three Personal Edition licences in next Tuesday's GDNet Direct email newsletter!

Sign up from the right-hand sidebar on our homepage and read Tuesday's newsletter for details!


We're also offering banner ads on our site from just $5! 1. Details HERE. 2. GDNet+ Subscriptions HERE. 3. Ad upload HERE.


Can't understand camera behavior


Old topic!
Guest, the last post of this topic is over 60 days old and at this point you may not reply in this topic. If you wish to continue this conversation start a new topic.

  • You cannot reply to this topic
3 replies to this topic

#1 GuardianX   Crossbones+   -  Reputation: 1528

Like
0Likes
Like

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? 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!


Edited by GuardianX, 13 July 2013 - 01:18 PM.


Sponsor:

#2 bioglaze   Members   -  Reputation: 588

Like
0Likes
Like

Posted 16 July 2013 - 10:58 AM

2. It's very popular, because almost all modern games use shaders, and to get shaders with OpenGL ES you must use 2.0 or 3.0 which is not yet widely supported.

3. Yes, you can use the resulting matrix in a shader.



#3 ihatesegfault   Members   -  Reputation: 107

Like
0Likes
Like

Posted 18 July 2013 - 12:50 PM


Top, bottom sides of the box rotate around camera, not the opposite way.

 

You need to translate the box away from the camera before rotating the box. It rotates the box around itself, so if the center of the box is at the camera (like it is without a translation) then it rotates around the camera.



#4 kalle_h   Members   -  Reputation: 1472

Like
0Likes
Like

Posted 18 July 2013 - 04:43 PM

There is not that much gles2.0 spesific in shader or in mobile development in general. Just learn something that you can get to start and then any general shader book will teach you. LibGDX is good start for Java android development and author of that framework is also writed book about Android development http://www.amazon.com/Beginning-Android-Games-Mario-Zechner/dp/1430230428






Old topic!
Guest, the last post of this topic is over 60 days old and at this point you may not reply in this topic. If you wish to continue this conversation start a new topic.



PARTNERS