FOV fix
This commit is contained in:
parent
3859efff42
commit
98baa36f1a
@ -3561,7 +3561,7 @@ CCamera::CalculateDerivedValues(void)
|
|||||||
{
|
{
|
||||||
m_cameraMatrix = Invert(m_matrix);
|
m_cameraMatrix = Invert(m_matrix);
|
||||||
|
|
||||||
float hfov = DEGTORAD(CDraw::GetFOV()/2.0f);
|
float hfov = DEGTORAD(CDraw::GetScaledFOV()/2.0f);
|
||||||
float c = cos(hfov);
|
float c = cos(hfov);
|
||||||
float s = sin(hfov);
|
float s = sin(hfov);
|
||||||
|
|
||||||
|
@ -111,7 +111,7 @@ inline uint32 ldb(uint32 p, uint32 s, uint32 w)
|
|||||||
#define SCREEN_WIDTH ((float)RsGlobal.width)
|
#define SCREEN_WIDTH ((float)RsGlobal.width)
|
||||||
#define SCREEN_HEIGHT ((float)RsGlobal.height)
|
#define SCREEN_HEIGHT ((float)RsGlobal.height)
|
||||||
#define SCREEN_ASPECT_RATIO (CDraw::GetAspectRatio())
|
#define SCREEN_ASPECT_RATIO (CDraw::GetAspectRatio())
|
||||||
#define SCREEN_VIEWWINDOW (Tan(DEGTORAD(CDraw::GetFOV() * 0.5f)))
|
#define SCREEN_VIEWWINDOW (Tan(DEGTORAD(CDraw::GetScaledFOV() * 0.5f)))
|
||||||
|
|
||||||
// This scales from PS2 pixel coordinates to the real resolution
|
// This scales from PS2 pixel coordinates to the real resolution
|
||||||
#define SCREEN_STRETCH_X(a) ((a) * (float) SCREEN_WIDTH / DEFAULT_SCREEN_WIDTH)
|
#define SCREEN_STRETCH_X(a) ((a) * (float) SCREEN_WIDTH / DEFAULT_SCREEN_WIDTH)
|
||||||
|
@ -6,6 +6,7 @@
|
|||||||
|
|
||||||
#ifdef ASPECT_RATIO_SCALE
|
#ifdef ASPECT_RATIO_SCALE
|
||||||
float CDraw::ms_fAspectRatio = DEFAULT_ASPECT_RATIO;
|
float CDraw::ms_fAspectRatio = DEFAULT_ASPECT_RATIO;
|
||||||
|
float CDraw::ms_fScaledFOV = 45.0f;
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
float CDraw::ms_fNearClipZ;
|
float CDraw::ms_fNearClipZ;
|
||||||
@ -61,8 +62,7 @@ void
|
|||||||
CDraw::SetFOV(float fov)
|
CDraw::SetFOV(float fov)
|
||||||
{
|
{
|
||||||
#ifdef ASPECT_RATIO_SCALE
|
#ifdef ASPECT_RATIO_SCALE
|
||||||
ms_fFOV = ConvertFOV(fov);
|
ms_fScaledFOV = ConvertFOV(fov);
|
||||||
#else
|
|
||||||
ms_fFOV = fov;
|
|
||||||
#endif
|
#endif
|
||||||
|
ms_fFOV = fov;
|
||||||
}
|
}
|
||||||
|
@ -16,14 +16,15 @@ private:
|
|||||||
static float ms_fNearClipZ;
|
static float ms_fNearClipZ;
|
||||||
static float ms_fFarClipZ;
|
static float ms_fFarClipZ;
|
||||||
static float ms_fFOV;
|
static float ms_fFOV;
|
||||||
public:
|
|
||||||
static float ms_fLODDistance; // set but unused?
|
|
||||||
|
|
||||||
#ifdef ASPECT_RATIO_SCALE
|
#ifdef ASPECT_RATIO_SCALE
|
||||||
// we use this variable to scale a lot of 2D elements
|
// we use this variable to scale a lot of 2D elements
|
||||||
// so better cache it
|
// so better cache it
|
||||||
static float ms_fAspectRatio;
|
static float ms_fAspectRatio;
|
||||||
|
// similar thing for 3D rendering
|
||||||
|
static float ms_fScaledFOV;
|
||||||
#endif
|
#endif
|
||||||
|
public:
|
||||||
|
static float ms_fLODDistance; // set but unused?
|
||||||
|
|
||||||
static uint8 FadeValue;
|
static uint8 FadeValue;
|
||||||
static uint8 FadeRed;
|
static uint8 FadeRed;
|
||||||
@ -37,6 +38,11 @@ public:
|
|||||||
|
|
||||||
static void SetFOV(float fov);
|
static void SetFOV(float fov);
|
||||||
static float GetFOV(void) { return ms_fFOV; }
|
static float GetFOV(void) { return ms_fFOV; }
|
||||||
|
#ifdef ASPECT_RATIO_SCALE
|
||||||
|
static float GetScaledFOV(void) { return ms_fScaledFOV; }
|
||||||
|
#else
|
||||||
|
static float GetScaledFOV(void) { return ms_fFOV; }
|
||||||
|
#endif
|
||||||
|
|
||||||
static float FindAspectRatio(void);
|
static float FindAspectRatio(void);
|
||||||
#ifdef ASPECT_RATIO_SCALE
|
#ifdef ASPECT_RATIO_SCALE
|
||||||
|
Loading…
Reference in New Issue
Block a user