Sign in to follow this  
ballmar

OpenGL Can't understand camera behavior

Recommended Posts

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

Share this post


Link to post
Share on other sites


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.

Share this post


Link to post
Share on other sites

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

Share this post


Link to post
Share on other sites

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!

Register a new account

Sign in

Already have an account? Sign in here.

Sign In Now

Sign in to follow this