# OpenGL Camera Intilization in OpenGL ES 2.0

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

## Recommended Posts

Can somebody help me intilizarion of camera in OpenGL ES 2.0

I mean matrix calculation for Camera LookAt, Position and Up vector ?

Mahesh

##### Share on other sites
Here's my lookat() implementation:
 void Matrix::makeLookAt( const Vec3& aEye, const Vec3& aCenter, const Vec3& aUp, float* aMatrix ) { assert( aMatrix ); Vec3 forward = aCenter - aEye; forward.normalize(); Vec3 right = forward.cross( aUp ); right.normalize(); const Vec3 up = right.cross( forward ); aMatrix[ 0 ] = right.x; aMatrix[ 4 ] = right.y; aMatrix[ 8 ] = right.z; aMatrix[ 12 ] = 0; aMatrix[ 1 ] = up.x; aMatrix[ 5 ] = up.y; aMatrix[ 9 ] = up.z; aMatrix[13 ] = 0; aMatrix[ 2 ] = -forward.x; aMatrix[ 6 ] = -forward.y; aMatrix[10 ] = -forward.z; aMatrix[14 ] = 0; aMatrix[ 3 ] = aMatrix[ 7 ] = aMatrix[ 11 ] = 0.0f; aMatrix[15 ] = 1.0f; float translate[ 16 ]; Matrix::identity( translate ); translate[ 12 ] = -aEye.x; translate[ 13 ] = -aEye.y; translate[ 14 ] = -aEye.z; multiply( translate, aMatrix, aMatrix ); } 

##### Share on other sites
In MathGeoLib float3x4 class, you can find an implementation of a LookAt matrix. The derivation is identical, up to translation, to the function float3x3::LookAt, and the code and documentation on how it is done is available here. This matrix will map from the local space of the object (object==camera in this case) to the world space, so for the camera, this mapping will be a View->World space mapping. To produce a World->View space mapping as is usually needed, take the inverse of the resulting matrix. Edited by clb

##### Share on other sites

Here's my lookat() implementation:
 void Matrix::makeLookAt( const Vec3& aEye, const Vec3& aCenter, const Vec3& aUp, float* aMatrix ) { assert( aMatrix ); Vec3 forward = aCenter - aEye; forward.normalize(); Vec3 right = forward.cross( aUp ); right.normalize(); const Vec3 up = right.cross( forward ); aMatrix[ 0 ] = right.x; aMatrix[ 4 ] = right.y; aMatrix[ 8 ] = right.z; aMatrix[ 12 ] = 0; aMatrix[ 1 ] = up.x; aMatrix[ 5 ] = up.y; aMatrix[ 9 ] = up.z; aMatrix[13 ] = 0; aMatrix[ 2 ] = -forward.x; aMatrix[ 6 ] = -forward.y; aMatrix[10 ] = -forward.z; aMatrix[14 ] = 0; aMatrix[ 3 ] = aMatrix[ 7 ] = aMatrix[ 11 ] = 0.0f; aMatrix[15 ] = 1.0f; float translate[ 16 ]; Matrix::identity( translate ); translate[ 12 ] = -aEye.x; translate[ 13 ] = -aEye.y; translate[ 14 ] = -aEye.z; multiply( translate, aMatrix, aMatrix ); } 

Thank you very much

##### Share on other sites
This may be helpful:
http://db-in.com/blog/2011/04/cameras-on-opengl-es-2-x/

1. 1
Rutin
37
2. 2
3. 3
4. 4
5. 5

• 11
• 10
• 13
• 103
• 11
• ### Forum Statistics

• Total Topics
632976
• Total Posts
3009672
• ### Who's Online (See full list)

There are no registered users currently online

×