|
|
@ -1914,10 +1914,10 @@ void BeginMode3D(Camera3D camera) |
|
|
|
float aspect = (float)CORE.Window.currentFbo.width/(float)CORE.Window.currentFbo.height; |
|
|
|
|
|
|
|
double top = 0; |
|
|
|
if (camera.type == CAMERA_PERSPECTIVE) top = RL_CULL_DISTANCE_NEAR*tan(camera.fovy*0.5*DEG2RAD); |
|
|
|
else if (camera.type == CAMERA_ORTHOGRAPHIC) top = camera.fovy/2.0; |
|
|
|
if (camera.projection == CAMERA_PERSPECTIVE) top = RL_CULL_DISTANCE_NEAR*tan(camera.fovy*0.5*DEG2RAD); |
|
|
|
else if (camera.projection == CAMERA_ORTHOGRAPHIC) top = camera.fovy/2.0; |
|
|
|
|
|
|
|
rlFrustum(-right, top*aspect, -top, top, RL_CULL_DISTANCE_NEAR, RL_CULL_DISTANCE_FAR); |
|
|
|
rlFrustum(-top*aspect, top*aspect, -top, top, RL_CULL_DISTANCE_NEAR, RL_CULL_DISTANCE_FAR); |
|
|
|
|
|
|
|
// NOTE: zNear and zFar values are important when computing depth buffer values |
|
|
|
|
|
|
@ -2026,12 +2026,12 @@ Ray GetMouseRay(Vector2 mouse, Camera camera) |
|
|
|
|
|
|
|
Matrix matProj = MatrixIdentity(); |
|
|
|
|
|
|
|
if (camera.type == CAMERA_PERSPECTIVE) |
|
|
|
if (camera.projection == CAMERA_PERSPECTIVE) |
|
|
|
{ |
|
|
|
// Calculate projection matrix from perspective |
|
|
|
matProj = MatrixPerspective(camera.fovy*DEG2RAD, ((double)GetScreenWidth()/(double)GetScreenHeight()), RL_CULL_DISTANCE_NEAR, RL_CULL_DISTANCE_FAR); |
|
|
|
} |
|
|
|
else if (camera.type == CAMERA_ORTHOGRAPHIC) |
|
|
|
else if (camera.projection == CAMERA_ORTHOGRAPHIC) |
|
|
|
{ |
|
|
|
float aspect = (float)CORE.Window.screen.width/(float)CORE.Window.screen.height; |
|
|
|
double top = camera.fovy/2.0; |
|
|
@ -2053,8 +2053,8 @@ Ray GetMouseRay(Vector2 mouse, Camera camera) |
|
|
|
// Calculate normalized direction vector |
|
|
|
Vector3 direction = Vector3Normalize(Vector3Subtract(farPoint, nearPoint)); |
|
|
|
|
|
|
|
if (camera.type == CAMERA_PERSPECTIVE) ray.position = camera.position; |
|
|
|
else if (camera.type == CAMERA_ORTHOGRAPHIC) ray.position = cameraPlanePointerPos; |
|
|
|
if (camera.projection == CAMERA_PERSPECTIVE) ray.position = camera.position; |
|
|
|
else if (camera.projection == CAMERA_ORTHOGRAPHIC) ray.position = cameraPlanePointerPos; |
|
|
|
|
|
|
|
// Apply calculated vectors to ray |
|
|
|
ray.direction = direction; |
|
|
@ -2110,12 +2110,12 @@ Vector2 GetWorldToScreenEx(Vector3 position, Camera camera, int width, int heigh |
|
|
|
// Calculate projection matrix (from perspective instead of frustum |
|
|
|
Matrix matProj = MatrixIdentity(); |
|
|
|
|
|
|
|
if (camera.type == CAMERA_PERSPECTIVE) |
|
|
|
if (camera.projection == CAMERA_PERSPECTIVE) |
|
|
|
{ |
|
|
|
// Calculate projection matrix from perspective |
|
|
|
matProj = MatrixPerspective(camera.fovy * DEG2RAD, ((double)width/(double)height), RL_CULL_DISTANCE_NEAR, RL_CULL_DISTANCE_FAR); |
|
|
|
} |
|
|
|
else if (camera.type == CAMERA_ORTHOGRAPHIC) |
|
|
|
else if (camera.projection == CAMERA_ORTHOGRAPHIC) |
|
|
|
{ |
|
|
|
float aspect = (float)CORE.Window.screen.width/(float)CORE.Window.screen.height; |
|
|
|
double top = camera.fovy/2.0; |
|
|
|