• ### Announcements

• #### Wondering what's new and changed at GameDev.net?06/20/17

Check out the latest Staff Blog update that talks about what's changed, what's new, and what's up with these "Pixels".
Followers 0

# FPS Camera calculations problem

## 3 posts in this topic

I got this information below from a blog that explains the view matrix and its properties.

To make a FPS camera, I can use one view matrix, the pitch, and the yaw.

By obtaining the eye coordinate in the 3D world, I can use the following pseudocode to create the view matrix:

yaw.toRadians()

Vec3 xAxis = {cos(yaw), -sin(pitch)*sin(yaw), -cos(pitch)*sin(yaw)}
Vec3 yAxis = {0, cos(pitch), -sin(pitch)}
Vec3 zAxis = {sin(yaw), sin(pitch)*cos(yaw), cos(pitch)*cos(yaw)}

viewMatrix = {
xAxis.x, yAxis.y, zAxis.x, 0,
xAxis.y, yAxis.y, zAxis.y, 0,
xAxis.z, yAxis.y, zAxis.z, 0,
-dot(xAxis, eye), -dot(yAxis, eye), -dot(zAxis, eye), 1
}



However, when I try to implement this in my code, I get weird results:

I can't turn left and right correctly to see the entire green rectangle box. I can look up and down, but the view would get distorted and revolves around my head like a planet revolving around a star. My view is stuck facing at a specific field of view, and I don't know why.

My eye vector is {0, 0, 40f}.

The green rectangular box is 112 wide, 16 high. When looked upon from the eye position, I should be able to see all of the box.

I don't really know how to fix this. How do I turn and look up/down properly?

Edited by tom_mai78101
0

##### Share on other sites

viewMatrix = {
xAxis.x, yAxis.y, zAxis.x, 0,
xAxis.y, yAxis.y, zAxis.y, 0,
xAxis.z, yAxis.y, zAxis.z, 0,
-dot(xAxis, eye), -dot(yAxis, eye), -dot(zAxis, eye), 1
}

1

##### Share on other sites

You threw me offguard with those boldfaced text. I thought that was the answer.

Thanks for your difficult answer, the problem is now fixed, and took a long time to see it.

0

##### Share on other sites
Well, I was highlighting the problem, not trying to confuse you... Maybe I should have written some text describing the problem, instead of just showing it. Edited by Álvaro
0

## 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