mirror of
https://github.com/ZDoom/gzdoom.git
synced 2024-11-18 02:12:00 +00:00
- fixed: with aspect ratio compensation in the view matrix it is necessary to adjust the view pitch for this because the playsim does not know anything about pixel ratio.
This commit is contained in:
parent
4d34e0f548
commit
e6d59ec429
1 changed files with 11 additions and 1 deletions
|
@ -771,7 +771,17 @@ sector_t * FGLRenderer::RenderViewpoint (AActor * camera, GL_IRECT * bounds, flo
|
||||||
sector_t * retval;
|
sector_t * retval;
|
||||||
R_SetupFrame (camera);
|
R_SetupFrame (camera);
|
||||||
SetViewArea();
|
SetViewArea();
|
||||||
mAngles.Pitch = clamp<float>((float)((double)(int)(viewpitch))/ANGLE_1, -90, 90);
|
|
||||||
|
// We have to scale the pitch to account for the pixel stretching, because the playsim doesn't know about this and treats it as 1:1.
|
||||||
|
double radPitch = bam2rad(viewpitch);
|
||||||
|
if (radPitch > PI) radPitch -= 2 * PI;
|
||||||
|
radPitch = clamp(radPitch, -PI / 2, PI / 2);
|
||||||
|
|
||||||
|
double angx = cos(radPitch);
|
||||||
|
double angy = sin(radPitch) * glset.pixelstretch;
|
||||||
|
double alen = sqrt(angx*angx + angy*angy);
|
||||||
|
|
||||||
|
mAngles.Pitch = (float)RAD2DEG(asin(angy / alen));
|
||||||
|
|
||||||
// Scroll the sky
|
// Scroll the sky
|
||||||
mSky1Pos = (float)fmod(gl_frameMS * level.skyspeed1, 1024.f) * 90.f/256.f;
|
mSky1Pos = (float)fmod(gl_frameMS * level.skyspeed1, 1024.f) * 90.f/256.f;
|
||||||
|
|
Loading…
Reference in a new issue